From 1ecdfb4ece81cd63f8f29a62950844807e3e693e Mon Sep 17 00:00:00 2001 From: Ycblue <yuchialan@gmail.com> Date: Tue, 11 Jul 2023 09:56:05 +0200 Subject: [PATCH] no more real changes --- .gitignore | 1 + DeepGraft/AttMIL_feat_norm_rej_rest.yaml | 16 +- DeepGraft/AttMIL_feat_norm_rest.yaml | 18 +- DeepGraft/AttMIL_feat_rej_rest.yaml | 10 +- DeepGraft/AttMIL_simple_norm_rej_rest.yaml | 6 +- DeepGraft/AttMIL_simple_norm_rest.yaml | 10 +- DeepGraft/AttMIL_simple_rej_rest.yaml | 8 +- DeepGraft/AttTrans_resnet50_norm_rest.yaml | 6 +- DeepGraft/EfficientNet_classic_norm_rest.yaml | 55 + ...t.yaml => Resnet18_classic_norm_rest.yaml} | 4 +- DeepGraft/Resnet18_classic_rej_rest.yaml | 55 + DeepGraft/Resnet50_classic_norm_rest.yaml | 55 + DeepGraft/Resnet50_classic_rej_rest.yaml | 55 + DeepGraft/TransMIL_feat_no_other.yaml | 55 + DeepGraft/TransMIL_feat_norm_rej_rest.yaml | 6 +- DeepGraft/TransMIL_feat_norm_rest.yaml | 10 +- DeepGraft/TransMIL_feat_rej_rest.yaml | 10 +- DeepGraft/TransMIL_feat_rejections.yaml | 21 +- DeepGraft/TransMIL_feat_rest_rej.yaml | 55 + DeepGraft/TransformerMIL_feat_norm_rest.yaml | 11 +- DeepGraft/Vit_classic_norm_rej_rest.yaml | 55 + DeepGraft/Vit_classic_norm_rest.yaml | 55 + ...rm_rest.yaml => Vit_classic_rej_rest.yaml} | 8 +- README.md | 6 + .../__pycache__/test_visualize.cpython-39.pyc | Bin 16159 -> 17584 bytes code/__pycache__/visualize_mil.cpython-39.pyc | Bin 0 -> 10642 bytes .../4963265a-2a0d-4f2f-9b52-398556005ce9 | 1 + .../f06ea21a-6e0c-4c10-9734-4ec8b9157c64 | 1 + code/co2log/impacttracker/data.json | 126 ++ .../impacttracker/impact_tracker_log.log | 20 + code/co2log/impacttracker/info.pkl | Bin 0 -> 611684 bytes code/cufile.log | 1123 +++++++++++++++++ code/datasets/__init__.py | 1 + .../__pycache__/__init__.cpython-39.pyc | Bin 322 -> 386 bytes .../classic_jpg_dataloader.cpython-39.pyc | Bin 6368 -> 6507 bytes .../__pycache__/data_interface.cpython-39.pyc | Bin 9452 -> 9372 bytes .../feature_dataloader.cpython-39.pyc | Bin 11196 -> 6758 bytes .../__pycache__/jpg_dataloader.cpython-39.pyc | Bin 6399 -> 7312 bytes code/datasets/classic_jpg_dataloader.py | 95 +- code/datasets/data_interface.py | 68 +- code/datasets/feature_dataloader.py | 495 ++------ code/datasets/jpg_dataloader.py | 344 ++--- code/datasets/utils/__init__.py | 1 + .../utils/__pycache__/__init__.cpython-39.pyc | Bin 162 -> 191 bytes code/datasets/utils/merge_hdf5.py | 90 ++ code/datasets/utils/move_to_hdf5.py | 54 + code/fine_tune.py | 370 ++++++ code/models/AttMIL.py | 53 +- code/models/MonaiMILModel.py | 233 ++++ code/models/ResNet.py | 4 +- code/models/TransMIL.py | 33 +- code/models/TransformerMIL.py | 40 +- code/models/__init__.py | 3 + code/models/__pycache__/AttMIL.cpython-39.pyc | Bin 1560 -> 1980 bytes .../__pycache__/MonaiMILModel.cpython-39.pyc | Bin 0 -> 6477 bytes code/models/__pycache__/ResNet.cpython-39.pyc | Bin 12594 -> 12594 bytes .../__pycache__/TransMIL.cpython-39.pyc | Bin 3888 -> 4048 bytes .../__pycache__/TransformerMIL.cpython-39.pyc | Bin 3740 -> 4193 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 346 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 244 -> 346 bytes .../__pycache__/model_clam.cpython-39.pyc | Bin 0 -> 8214 bytes .../model_interface.cpython-38.pyc | Bin 0 -> 27594 bytes .../model_interface.cpython-39.pyc | Bin 21335 -> 28069 bytes .../model_interface_classic.cpython-39.pyc | Bin 18846 -> 26594 bytes code/models/ckpt/vit-base-patch16-224 | 1 + code/models/model_clam.py | 280 ++++ code/models/model_interface.py | 921 +++++++++----- code/models/model_interface_classic.py | 511 ++++++-- code/plotter.ipynb | 88 ++ code/sustainability_plot.ipynb | 0 code/sustainability_test.py | 135 ++ code/test_visualize.py | 731 +++++++---- code/train.py | 136 +- code/utils/__init__.py | 3 +- .../utils/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 210 bytes .../utils/__pycache__/__init__.cpython-39.pyc | Bin 210 -> 232 bytes .../custom_resnet50.cpython-38.pyc | Bin 0 -> 4059 bytes code/utils/__pycache__/utils.cpython-38.pyc | Bin 0 -> 9588 bytes code/utils/__pycache__/utils.cpython-39.pyc | Bin 4526 -> 9439 bytes code/utils/export_metrics.ipynb | 1 + code/utils/export_metrics.py | 191 +++ code/utils/utils.py | 390 +++++- code/visualize_classic.py | 382 ++++++ code/visualize_dff.py | 521 ++++++++ code/visualize_feature.py | 551 ++++++++ code/visualize_mil.py | 374 ++++++ code/visualize_old.py | 555 ++++++++ cufile.log | 14 + nohup.out | 24 + paper_structure.md | 47 +- project_plan.md | 28 +- 91 files changed, 8154 insertions(+), 1476 deletions(-) create mode 100644 DeepGraft/EfficientNet_classic_norm_rest.yaml rename DeepGraft/{Resnet18_img_norm_rest.yaml => Resnet18_classic_norm_rest.yaml} (96%) create mode 100644 DeepGraft/Resnet18_classic_rej_rest.yaml create mode 100644 DeepGraft/Resnet50_classic_norm_rest.yaml create mode 100644 DeepGraft/Resnet50_classic_rej_rest.yaml create mode 100644 DeepGraft/TransMIL_feat_no_other.yaml create mode 100644 DeepGraft/TransMIL_feat_rest_rej.yaml create mode 100644 DeepGraft/Vit_classic_norm_rej_rest.yaml create mode 100644 DeepGraft/Vit_classic_norm_rest.yaml rename DeepGraft/{Vit_norm_rest.yaml => Vit_classic_rej_rest.yaml} (79%) create mode 100644 code/__pycache__/visualize_mil.cpython-39.pyc create mode 100644 code/co2log/4963265a-2a0d-4f2f-9b52-398556005ce9 create mode 100644 code/co2log/f06ea21a-6e0c-4c10-9734-4ec8b9157c64 create mode 100644 code/co2log/impacttracker/data.json create mode 100644 code/co2log/impacttracker/impact_tracker_log.log create mode 100644 code/co2log/impacttracker/info.pkl create mode 100644 code/datasets/utils/merge_hdf5.py create mode 100644 code/datasets/utils/move_to_hdf5.py create mode 100644 code/fine_tune.py create mode 100644 code/models/MonaiMILModel.py create mode 100644 code/models/__pycache__/MonaiMILModel.cpython-39.pyc create mode 100644 code/models/__pycache__/__init__.cpython-38.pyc create mode 100644 code/models/__pycache__/model_clam.cpython-39.pyc create mode 100644 code/models/__pycache__/model_interface.cpython-38.pyc create mode 160000 code/models/ckpt/vit-base-patch16-224 create mode 100644 code/models/model_clam.py create mode 100644 code/plotter.ipynb create mode 100644 code/sustainability_plot.ipynb create mode 100644 code/sustainability_test.py create mode 100644 code/utils/__pycache__/__init__.cpython-38.pyc create mode 100644 code/utils/__pycache__/custom_resnet50.cpython-38.pyc create mode 100644 code/utils/__pycache__/utils.cpython-38.pyc create mode 100644 code/utils/export_metrics.ipynb create mode 100644 code/utils/export_metrics.py create mode 100644 code/visualize_classic.py create mode 100644 code/visualize_dff.py create mode 100644 code/visualize_feature.py create mode 100644 code/visualize_mil.py create mode 100644 code/visualize_old.py create mode 100644 cufile.log create mode 100644 nohup.out diff --git a/.gitignore b/.gitignore index 104287f..6087ecd 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ lightning_logs/* test/* DeepGraft_Project_Plan_12.7.22.pdf monai_test.json +wandb \ No newline at end of file diff --git a/DeepGraft/AttMIL_feat_norm_rej_rest.yaml b/DeepGraft/AttMIL_feat_norm_rej_rest.yaml index 4eda25f..0ac5032 100644 --- a/DeepGraft/AttMIL_feat_norm_rej_rest.yaml +++ b/DeepGraft/AttMIL_feat_norm_rej_rest.yaml @@ -9,15 +9,17 @@ General: epochs: &epoch 500 grad_acc: 2 frozen_bn: False - patience: 50 - server: test #train #test + patience: 100 + server: train #train #test log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ Data: dataset_name: custom data_shuffle: False - data_dir: '/home/ylan/data/DeepGraft/224_128um_v2/' - label_file: '/home/ylan/DeepGraft/training_tables/dg_limit_20_split_PAS_HE_Jones_norm_rej_rest.json' + mixup: True + aug: True + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rej_rest.json' fold: 1 nfold: 3 cross_val: False @@ -34,13 +36,13 @@ Model: name: AttMIL n_classes: 3 backbone: features - in_features: 1024 + in_features: 2048 out_features: 512 Optimizer: - opt: Adam - lr: 0.0002 + opt: lookahead_radam + lr: 0.002 opt_eps: null opt_betas: null momentum: null diff --git a/DeepGraft/AttMIL_feat_norm_rest.yaml b/DeepGraft/AttMIL_feat_norm_rest.yaml index fefbe5e..bb69512 100644 --- a/DeepGraft/AttMIL_feat_norm_rest.yaml +++ b/DeepGraft/AttMIL_feat_norm_rest.yaml @@ -10,20 +10,22 @@ General: grad_acc: 2 frozen_bn: False patience: 100 - server: test #train #test + server: train #train #test log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ Data: dataset_name: custom data_shuffle: False - data_dir: '/home/ylan/data/DeepGraft/224_128um_v2/' - label_file: '/home/ylan/DeepGraft/training_tables/dg_limit_20_split_PAS_HE_Jones_norm_rest.json' + mixup: True + aug: True + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest.json' fold: 1 nfold: 3 cross_val: False train_dataloader: - batch_size: 1 + batch_size: 1 num_workers: 4 test_dataloader: @@ -34,13 +36,13 @@ Model: name: AttMIL n_classes: 2 backbone: features - in_features: 512 - out_features: 1024 + in_features: 2048 + out_features: 512 Optimizer: - opt: Adam - lr: 0.0001 + opt: adam + lr: 0.002 opt_eps: null opt_betas: null momentum: null diff --git a/DeepGraft/AttMIL_feat_rej_rest.yaml b/DeepGraft/AttMIL_feat_rej_rest.yaml index 3d854be..fd142f0 100644 --- a/DeepGraft/AttMIL_feat_rej_rest.yaml +++ b/DeepGraft/AttMIL_feat_rej_rest.yaml @@ -16,8 +16,10 @@ General: Data: dataset_name: custom data_shuffle: False - data_dir: '/home/ylan/data/DeepGraft/224_128um_v2/' - label_file: '/home/ylan/DeepGraft/training_tables/dg_limit_20_split_PAS_HE_Jones_rej_rest.json' + mixup: True + aug: True + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_rej_rest_val_1.json' fold: 1 nfold: 3 cross_val: False @@ -34,12 +36,12 @@ Model: name: AttMIL n_classes: 2 backbone: features - in_features: 1024 + in_features: 2048 out_features: 512 Optimizer: - opt: Adam + opt: lookahead_radam lr: 0.0002 opt_eps: null opt_betas: null diff --git a/DeepGraft/AttMIL_simple_norm_rej_rest.yaml b/DeepGraft/AttMIL_simple_norm_rej_rest.yaml index 8d27c5e..2e02e94 100644 --- a/DeepGraft/AttMIL_simple_norm_rej_rest.yaml +++ b/DeepGraft/AttMIL_simple_norm_rej_rest.yaml @@ -16,8 +16,8 @@ General: Data: dataset_name: custom data_shuffle: False - data_dir: '/home/ylan/data/DeepGraft/224_128um_v2/' - label_file: '/home/ylan/DeepGraft/training_tables/limit_20_split_PAS_HE_Jones_norm_rej_rest.json' + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_limit_20_split_PAS_HE_Jones_norm_rej_rest.json' fold: 1 nfold: 3 cross_val: False @@ -34,7 +34,7 @@ Model: name: AttMIL n_classes: 3 backbone: simple - in_features: 512 + in_features: 1024 out_features: 512 diff --git a/DeepGraft/AttMIL_simple_norm_rest.yaml b/DeepGraft/AttMIL_simple_norm_rest.yaml index 8dafb65..a0f2215 100644 --- a/DeepGraft/AttMIL_simple_norm_rest.yaml +++ b/DeepGraft/AttMIL_simple_norm_rest.yaml @@ -10,20 +10,20 @@ General: grad_acc: 2 frozen_bn: False patience: 50 - server: test #train #test + server: train #train #test log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ Data: dataset_name: custom data_shuffle: False - data_dir: '/home/ylan/data/DeepGraft/224_128um_v2/' - label_file: '/home/ylan/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest.json' + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest_val_1.json' fold: 1 nfold: 3 cross_val: False train_dataloader: - batch_size: 1 + batch_size: 1 num_workers: 4 test_dataloader: @@ -39,7 +39,7 @@ Model: Optimizer: - opt: lookahead_radam + opt: adam lr: 0.0004 opt_eps: null opt_betas: null diff --git a/DeepGraft/AttMIL_simple_rej_rest.yaml b/DeepGraft/AttMIL_simple_rej_rest.yaml index b65afc6..e775cfa 100644 --- a/DeepGraft/AttMIL_simple_rej_rest.yaml +++ b/DeepGraft/AttMIL_simple_rej_rest.yaml @@ -16,8 +16,8 @@ General: Data: dataset_name: custom data_shuffle: False - data_dir: '/home/ylan/data/DeepGraft/224_128um_v2/' - label_file: '/home/ylan/DeepGraft/training_tables/dg_limit_20_split_PAS_HE_Jones_rej_rest.json' + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_rej_rest_val_1.json' fold: 1 nfold: 3 cross_val: False @@ -34,12 +34,12 @@ Model: name: AttMIL n_classes: 2 backbone: simple - in_features: 512 + in_features: 1024 out_features: 512 Optimizer: - opt: lookahead_radam + opt: adam lr: 0.0002 opt_eps: null opt_betas: null diff --git a/DeepGraft/AttTrans_resnet50_norm_rest.yaml b/DeepGraft/AttTrans_resnet50_norm_rest.yaml index cfffa7d..15bbadc 100644 --- a/DeepGraft/AttTrans_resnet50_norm_rest.yaml +++ b/DeepGraft/AttTrans_resnet50_norm_rest.yaml @@ -16,14 +16,14 @@ General: Data: dataset_name: custom data_shuffle: False - data_dir: '/home/ylan/data/DeepGraft/224_128uM_annotated/' - label_file: '/home/ylan/DeepGraft/training_tables/dg_limit_100_split_PAS_HE_Jones_norm_rest.json' + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest_val_1.json' fold: 1 nfold: 3 cross_val: False train_dataloader: - batch_size: 1 + batch_size: 10 num_workers: 4 test_dataloader: diff --git a/DeepGraft/EfficientNet_classic_norm_rest.yaml b/DeepGraft/EfficientNet_classic_norm_rest.yaml new file mode 100644 index 0000000..aaf8f31 --- /dev/null +++ b/DeepGraft/EfficientNet_classic_norm_rest.yaml @@ -0,0 +1,55 @@ +General: + comment: + seed: 2021 + fp16: True + amp_level: O2 + precision: 16 + multi_gpu_mode: ddp + gpus: [0, 1] + epochs: &epoch 500 + grad_acc: 2 + frozen_bn: False + patience: 50 + server: train #train #test + log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ + +Data: + dataset_name: custom + data_shuffle: False + mixup: True + aug: True + cache: False + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest_val_1.json' + fold: 1 + nfold: 3 + cross_val: False + + train_dataloader: + batch_size: 500 + num_workers: 4 + + test_dataloader: + batch_size: 1 + num_workers: 4 + +Model: + name: efficientnet + n_classes: 2 + backbone: efficientnet + in_features: 2048 + out_features: 512 + + +Optimizer: + opt: Adam + lr: 0.0002 + opt_eps: null + opt_betas: null + momentum: null + weight_decay: 0.01 + +Loss: + base_loss: CrossEntropyLoss + + diff --git a/DeepGraft/Resnet18_img_norm_rest.yaml b/DeepGraft/Resnet18_classic_norm_rest.yaml similarity index 96% rename from DeepGraft/Resnet18_img_norm_rest.yaml rename to DeepGraft/Resnet18_classic_norm_rest.yaml index d2183e4..dfdfb1a 100644 --- a/DeepGraft/Resnet18_img_norm_rest.yaml +++ b/DeepGraft/Resnet18_classic_norm_rest.yaml @@ -38,12 +38,12 @@ Model: n_classes: 2 backbone: resnet18 in_features: 2048 - out_features: 1024 + out_features: 512 Optimizer: opt: Adam - lr: 0.0001 + lr: 0.0002 opt_eps: null opt_betas: null momentum: null diff --git a/DeepGraft/Resnet18_classic_rej_rest.yaml b/DeepGraft/Resnet18_classic_rej_rest.yaml new file mode 100644 index 0000000..2b3dc33 --- /dev/null +++ b/DeepGraft/Resnet18_classic_rej_rest.yaml @@ -0,0 +1,55 @@ +General: + comment: + seed: 2021 + fp16: True + amp_level: O2 + precision: 16 + multi_gpu_mode: ddp + gpus: [0, 1] + epochs: &epoch 500 + grad_acc: 2 + frozen_bn: False + patience: 50 + server: train #train #test + log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ + +Data: + dataset_name: custom + data_shuffle: False + mixup: True + aug: True + cache: False + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_rej_rest_val_1.json' + fold: 1 + nfold: 3 + cross_val: False + + train_dataloader: + batch_size: 1000 + num_workers: 4 + + test_dataloader: + batch_size: 1 + num_workers: 4 + +Model: + name: resnet18 + n_classes: 2 + backbone: resnet18 + in_features: 2048 + out_features: 512 + + +Optimizer: + opt: Adam + lr: 0.0001 + opt_eps: null + opt_betas: null + momentum: null + weight_decay: 0.01 + +Loss: + base_loss: CrossEntropyLoss + + diff --git a/DeepGraft/Resnet50_classic_norm_rest.yaml b/DeepGraft/Resnet50_classic_norm_rest.yaml new file mode 100644 index 0000000..a894a79 --- /dev/null +++ b/DeepGraft/Resnet50_classic_norm_rest.yaml @@ -0,0 +1,55 @@ +General: + comment: + seed: 2021 + fp16: True + amp_level: O2 + precision: 16 + multi_gpu_mode: ddp + gpus: [0, 1] + epochs: &epoch 500 + grad_acc: 2 + frozen_bn: False + patience: 50 + server: train #train #test + log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ + +Data: + dataset_name: custom + data_shuffle: False + mixup: True + aug: True + cache: False + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest_val_1.json' + fold: 1 + nfold: 3 + cross_val: False + + train_dataloader: + batch_size: 500 + num_workers: 4 + + test_dataloader: + batch_size: 1 + num_workers: 4 + +Model: + name: resnet50 + n_classes: 2 + backbone: resnet50 + in_features: 2048 + out_features: 512 + + +Optimizer: + opt: lookahead_radam + lr: 0.001 + opt_eps: null + opt_betas: null + momentum: null + weight_decay: 0.01 + +Loss: + base_loss: CrossEntropyLoss + + diff --git a/DeepGraft/Resnet50_classic_rej_rest.yaml b/DeepGraft/Resnet50_classic_rej_rest.yaml new file mode 100644 index 0000000..d27be48 --- /dev/null +++ b/DeepGraft/Resnet50_classic_rej_rest.yaml @@ -0,0 +1,55 @@ +General: + comment: + seed: 2021 + fp16: True + amp_level: O2 + precision: 16 + multi_gpu_mode: ddp + gpus: [0, 1] + epochs: &epoch 500 + grad_acc: 2 + frozen_bn: False + patience: 50 + server: train #train #test + log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ + +Data: + dataset_name: custom + data_shuffle: False + mixup: True + aug: True + cache: False + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_internal_split_PAS_HE_Jones_rej_rest_DEEPGRAFT_RU.json' + fold: 1 + nfold: 3 + cross_val: False + + train_dataloader: + batch_size: 500 + num_workers: 4 + + test_dataloader: + batch_size: 1 + num_workers: 4 + +Model: + name: resnet50 + n_classes: 2 + backbone: resnet50 + in_features: 2048 + out_features: 512 + + +Optimizer: + opt: lookahead_radam + lr: 0.001 + opt_eps: null + opt_betas: null + momentum: null + weight_decay: 0.01 + +Loss: + base_loss: CrossEntropyLoss + + diff --git a/DeepGraft/TransMIL_feat_no_other.yaml b/DeepGraft/TransMIL_feat_no_other.yaml new file mode 100644 index 0000000..7264213 --- /dev/null +++ b/DeepGraft/TransMIL_feat_no_other.yaml @@ -0,0 +1,55 @@ +General: + comment: + seed: 2021 + fp16: True + amp_level: O2 + precision: 16-mixed + multi_gpu_mode: dp + gpus: [0] + epochs: &epoch 500 + grad_acc: 2 + frozen_bn: False + patience: 50 + server: train #train #test + log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ + +Data: + dataset_name: custom + data_shuffle: False + mixup: True + aug: True + cache: False + data_dir: '/raid/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_no_other_ext.json' + fold: 1 + nfold: 3 + cross_val: False + + train_dataloader: + batch_size: 50 + num_workers: 4 + + test_dataloader: + batch_size: 1 + num_workers: 4 + +Model: + name: TransMIL + n_classes: 5 + backbone: features + in_features: 2048 + out_features: 512 + + +Optimizer: + opt: radam + lr: 0.002 + opt_eps: null + opt_betas: null + momentum: null + weight_decay: 0.01 + +Loss: + base_loss: CrossEntropyLoss + + diff --git a/DeepGraft/TransMIL_feat_norm_rej_rest.yaml b/DeepGraft/TransMIL_feat_norm_rej_rest.yaml index 3a9886f..6af5de7 100644 --- a/DeepGraft/TransMIL_feat_norm_rej_rest.yaml +++ b/DeepGraft/TransMIL_feat_norm_rej_rest.yaml @@ -3,7 +3,7 @@ General: seed: 2021 fp16: True amp_level: O2 - precision: 32 + precision: 16-mixed multi_gpu_mode: ddp gpus: [0, 1] epochs: &epoch 1000 @@ -20,13 +20,13 @@ Data: aug: True cache: False data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' - label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rej_rest_val_1.json' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_norm_rej_rest_ext.json' fold: 1 nfold: 3 cross_val: False train_dataloader: - batch_size: 100 + batch_size: 50 num_workers: 4 test_dataloader: diff --git a/DeepGraft/TransMIL_feat_norm_rest.yaml b/DeepGraft/TransMIL_feat_norm_rest.yaml index 1651aa4..598adf6 100644 --- a/DeepGraft/TransMIL_feat_norm_rest.yaml +++ b/DeepGraft/TransMIL_feat_norm_rest.yaml @@ -3,7 +3,7 @@ General: seed: 2021 fp16: True amp_level: O2 - precision: 16 + precision: 16-mixed multi_gpu_mode: ddp gpus: [0, 1] epochs: &epoch 1000 @@ -20,13 +20,13 @@ Data: aug: True cache: False data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' - label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest_val_1.json' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_norm_rest_ext.json' fold: 1 nfold: 3 cross_val: False train_dataloader: - batch_size: 100 + batch_size: 50 num_workers: 4 test_dataloader: @@ -37,12 +37,12 @@ Model: name: TransMIL n_classes: 2 backbone: features - in_features: 2048 + in_features: 768 out_features: 512 Optimizer: - opt: lookahead_radam + opt: radam lr: 0.002 opt_eps: null opt_betas: null diff --git a/DeepGraft/TransMIL_feat_rej_rest.yaml b/DeepGraft/TransMIL_feat_rej_rest.yaml index 4a054f2..79f56ca 100644 --- a/DeepGraft/TransMIL_feat_rej_rest.yaml +++ b/DeepGraft/TransMIL_feat_rej_rest.yaml @@ -3,13 +3,13 @@ General: seed: 2021 fp16: True amp_level: O2 - precision: 16 + precision: 16-mixed multi_gpu_mode: ddp gpus: [0, 1] epochs: &epoch 1000 grad_acc: 2 frozen_bn: False - patience: 50 + patience: 200 server: train #train #test log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ @@ -20,13 +20,13 @@ Data: aug: True cache: False data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' - label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_rej_rest_val_1.json' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_rest_rej_ext.json' fold: 1 nfold: 3 cross_val: False train_dataloader: - batch_size: 100 + batch_size: 50 num_workers: 4 test_dataloader: @@ -42,7 +42,7 @@ Model: Optimizer: - opt: lookahead_radam + opt: radam lr: 0.002 opt_eps: null opt_betas: null diff --git a/DeepGraft/TransMIL_feat_rejections.yaml b/DeepGraft/TransMIL_feat_rejections.yaml index a1d2ae6..71dbc8d 100644 --- a/DeepGraft/TransMIL_feat_rejections.yaml +++ b/DeepGraft/TransMIL_feat_rejections.yaml @@ -3,44 +3,47 @@ General: seed: 2021 fp16: True amp_level: O2 - precision: 16 + precision: 16-mixed multi_gpu_mode: dp gpus: [0] epochs: &epoch 500 grad_acc: 2 frozen_bn: False patience: 50 - server: test #train #test + server: train #train #test log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ Data: dataset_name: custom data_shuffle: False - data_dir: '/home/ylan/data/DeepGraft/224_128um_v2/' - label_file: '/home/ylan/DeepGraft/training_tables/split_PAS_HE_Jones_rejections.json' + mixup: True + aug: True + cache: False + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_rejections_mixin_1.json' fold: 1 nfold: 3 cross_val: False train_dataloader: - batch_size: 1 - num_workers: 8 + batch_size: 100 + num_workers: 4 test_dataloader: batch_size: 1 - num_workers: 8 + num_workers: 4 Model: name: TransMIL n_classes: 3 backbone: features - in_features: 1024 + in_features: 2048 out_features: 512 Optimizer: opt: lookahead_radam - lr: 0.0002 + lr: 0.002 opt_eps: null opt_betas: null momentum: null diff --git a/DeepGraft/TransMIL_feat_rest_rej.yaml b/DeepGraft/TransMIL_feat_rest_rej.yaml new file mode 100644 index 0000000..79f56ca --- /dev/null +++ b/DeepGraft/TransMIL_feat_rest_rej.yaml @@ -0,0 +1,55 @@ +General: + comment: + seed: 2021 + fp16: True + amp_level: O2 + precision: 16-mixed + multi_gpu_mode: ddp + gpus: [0, 1] + epochs: &epoch 1000 + grad_acc: 2 + frozen_bn: False + patience: 200 + server: train #train #test + log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ + +Data: + dataset_name: custom + data_shuffle: False + mixup: True + aug: True + cache: False + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_rest_rej_ext.json' + fold: 1 + nfold: 3 + cross_val: False + + train_dataloader: + batch_size: 50 + num_workers: 4 + + test_dataloader: + batch_size: 1 + num_workers: 4 + +Model: + name: TransMIL + n_classes: 2 + backbone: features + in_features: 2048 + out_features: 512 + + +Optimizer: + opt: radam + lr: 0.002 + opt_eps: null + opt_betas: null + momentum: null + weight_decay: 0.01 + +Loss: + base_loss: CrossEntropyLoss + + diff --git a/DeepGraft/TransformerMIL_feat_norm_rest.yaml b/DeepGraft/TransformerMIL_feat_norm_rest.yaml index 2f86ef1..8562629 100644 --- a/DeepGraft/TransformerMIL_feat_norm_rest.yaml +++ b/DeepGraft/TransformerMIL_feat_norm_rest.yaml @@ -16,14 +16,17 @@ General: Data: dataset_name: custom data_shuffle: False + mixup: True + aug: True + cache: False data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' - label_file: '/home/ylan/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest_val_1.json' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_norm_rest_ext.json' fold: 1 nfold: 3 cross_val: False train_dataloader: - batch_size: 1 + batch_size: 25 num_workers: 4 test_dataloader: @@ -39,8 +42,8 @@ Model: Optimizer: - opt: lookahead_radam - lr: 0.0001 + opt: radam + lr: 0.002 opt_eps: null opt_betas: null momentum: null diff --git a/DeepGraft/Vit_classic_norm_rej_rest.yaml b/DeepGraft/Vit_classic_norm_rej_rest.yaml new file mode 100644 index 0000000..feda1e6 --- /dev/null +++ b/DeepGraft/Vit_classic_norm_rej_rest.yaml @@ -0,0 +1,55 @@ +General: + comment: + seed: 2021 + fp16: True + amp_level: O2 + precision: 16 + multi_gpu_mode: ddp + gpus: [0, 1] + epochs: &epoch 500 + grad_acc: 2 + frozen_bn: False + patience: 50 + server: train #train #test + log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ + +Data: + dataset_name: custom + data_shuffle: False + mixup: True + aug: True + cache: False + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_norm_rej_rest_ext.json' + fold: 1 + nfold: 3 + cross_val: False + + train_dataloader: + batch_size: 200 + num_workers: 4 + + test_dataloader: + batch_size: 1 + num_workers: 4 + +Model: + name: vit + n_classes: 3 + backbone: vit + in_features: 2048 + out_features: 1024 + + +Optimizer: + opt: Adam + lr: 0.00002 + opt_eps: null + opt_betas: null + momentum: null + weight_decay: 0.01 + +Loss: + base_loss: CrossEntropyLoss + + diff --git a/DeepGraft/Vit_classic_norm_rest.yaml b/DeepGraft/Vit_classic_norm_rest.yaml new file mode 100644 index 0000000..8ad0032 --- /dev/null +++ b/DeepGraft/Vit_classic_norm_rest.yaml @@ -0,0 +1,55 @@ +General: + comment: + seed: 2021 + fp16: True + amp_level: O2 + precision: 16 + multi_gpu_mode: ddp + gpus: [0, 1] + epochs: &epoch 500 + grad_acc: 2 + frozen_bn: False + patience: 50 + server: train #train #test + log_path: /home/ylan/workspace/TransMIL-DeepGraft/logs/ + +Data: + dataset_name: custom + data_shuffle: False + mixup: True + aug: True + cache: False + data_dir: '/raid/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_norm_rest_ext.json' + fold: 1 + nfold: 3 + cross_val: False + + train_dataloader: + batch_size: 200 + num_workers: 4 + + test_dataloader: + batch_size: 1 + num_workers: 4 + +Model: + name: vit + n_classes: 2 + backbone: vit + in_features: 2048 + out_features: 1024 + + +Optimizer: + opt: Adam + lr: 0.00002 + opt_eps: null + opt_betas: null + momentum: null + weight_decay: 0.01 + +Loss: + base_loss: CrossEntropyLoss + + diff --git a/DeepGraft/Vit_norm_rest.yaml b/DeepGraft/Vit_classic_rej_rest.yaml similarity index 79% rename from DeepGraft/Vit_norm_rest.yaml rename to DeepGraft/Vit_classic_rej_rest.yaml index ae4a0e5..2513e1f 100644 --- a/DeepGraft/Vit_norm_rest.yaml +++ b/DeepGraft/Vit_classic_rej_rest.yaml @@ -19,14 +19,14 @@ Data: mixup: True aug: True cache: False - data_dir: '/home/ylan/data/DeepGraft/224_128uM_annotated/' - label_file: '/home/ylan/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest_val_1.json' + data_dir: '/home/ylan/data/DeepGraft/224_256uM_annotated/' + label_file: '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_rej_rest_ext.json' fold: 1 nfold: 3 cross_val: False train_dataloader: - batch_size: 500 + batch_size: 200 num_workers: 4 test_dataloader: @@ -43,7 +43,7 @@ Model: Optimizer: opt: Adam - lr: 0.0001 + lr: 0.00002 opt_eps: null opt_betas: null momentum: null diff --git a/README.md b/README.md index 810ff74..3cab1da 100644 --- a/README.md +++ b/README.md @@ -35,3 +35,9 @@ wd = 0.01 * +# Instructions + +* Train model +* Validate model to generate topk patient lists for each patient +* Test model +* visualize with visualize_classic.py or visualize_mil.py \ No newline at end of file diff --git a/code/__pycache__/test_visualize.cpython-39.pyc b/code/__pycache__/test_visualize.cpython-39.pyc index e06f73a4c5069d526f1bbf4449d7223a191e5e73..337b9a6e9632309e97da90cea85bcae8b6182bc3 100644 GIT binary patch delta 10906 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 Iohl<c01z&Q_y7O^ delta 9673 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 WX=aF1xER@(co-#ExEMJYIT!&WM*?R6 diff --git a/code/__pycache__/visualize_mil.cpython-39.pyc b/code/__pycache__/visualize_mil.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96a9d9809a9fd8369e5d7cec0acddc5c80b106ce GIT binary patch literal 10642 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 literal 0 HcmV?d00001 diff --git a/code/co2log/4963265a-2a0d-4f2f-9b52-398556005ce9 b/code/co2log/4963265a-2a0d-4f2f-9b52-398556005ce9 new file mode 100644 index 0000000..798a9fa --- /dev/null +++ b/code/co2log/4963265a-2a0d-4f2f-9b52-398556005ce9 @@ -0,0 +1 @@ +The quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dog \ No newline at end of file diff --git a/code/co2log/f06ea21a-6e0c-4c10-9734-4ec8b9157c64 b/code/co2log/f06ea21a-6e0c-4c10-9734-4ec8b9157c64 new file mode 100644 index 0000000..798a9fa --- /dev/null +++ b/code/co2log/f06ea21a-6e0c-4c10-9734-4ec8b9157c64 @@ -0,0 +1 @@ +The quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dogThe quick brown fox jumps over the lazy dog \ No newline at end of file diff --git a/code/co2log/impacttracker/data.json b/code/co2log/impacttracker/data.json new file mode 100644 index 0000000..d54cc75 --- /dev/null +++ b/code/co2log/impacttracker/data.json @@ -0,0 +1,126 @@ +{"timestamp":1678266959.040295,"rapl_power_draw_absolute":167.76056638601327,"rapl_estimated_attributable_power_draw":7.9736426089289445,"cpu_time_seconds":{"2113736":{"user":14.42,"system":6.65,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":0.01,"system":0.14,"children_user":0.06,"children_system":2.21,"iowait":0.0}},"average_relative_cpu_utilization":0.05446020129732738,"absolute_cpu_utilization":0.98364281267462,"relative_mem_usage":0.01547746115333204,"absolute_mem_usage":3151345664.0,"absolute_mem_percent_usage":0.005825802639104576,"mem_info_per_process":{"2113736":{"rss":3245826048,"vms":23024664576,"shared":805019648,"text":2633728,"lib":0,"data":5191630848,"dirty":0,"uss":2695884800,"pss":2921940992,"swap":0},"2113939":{"rss":432562176,"vms":11097341952,"shared":8335360,"text":2633728,"lib":0,"data":2827988992,"dirty":0,"uss":31375360,"pss":229404672,"swap":0}},"nvidia_draw_absolute":461.33,"nvidia_estimated_attributable_power_draw":67.68,"average_gpu_estimated_utilization_absolute":0.222,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":12.0,"mem":8.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":8.25,"mem":4.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.2,"mem":15.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":67.68},"cpu_count_adjusted_average_load":[0.22374999999999998,0.21787499999999999,0.214875],"cpu_freq":[{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2694.366,"min":1200.0,"max":3600.0},{"current":2695.4,"min":1200.0,"max":3600.0},{"current":2702.883,"min":1200.0,"max":3600.0},{"current":2681.55,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2689.213,"min":1200.0,"max":3600.0},{"current":2695.998,"min":1200.0,"max":3600.0},{"current":2700.774,"min":1200.0,"max":3600.0},{"current":2699.191,"min":1200.0,"max":3600.0},{"current":2658.429,"min":1200.0,"max":3600.0},{"current":2679.789,"min":1200.0,"max":3600.0},{"current":2702.724,"min":1200.0,"max":3600.0},{"current":2694.074,"min":1200.0,"max":3600.0},{"current":2694.39,"min":1200.0,"max":3600.0},{"current":2648.024,"min":1200.0,"max":3600.0},{"current":2751.554,"min":1200.0,"max":3600.0},{"current":2701.609,"min":1200.0,"max":3600.0},{"current":2738.594,"min":1200.0,"max":3600.0},{"current":2695.266,"min":1200.0,"max":3600.0},{"current":2695.998,"min":1200.0,"max":3600.0},{"current":2694.374,"min":1200.0,"max":3600.0},{"current":2695.385,"min":1200.0,"max":3600.0},{"current":2698.749,"min":1200.0,"max":3600.0},{"current":2697.151,"min":1200.0,"max":3600.0},{"current":2695.023,"min":1200.0,"max":3600.0},{"current":2681.535,"min":1200.0,"max":3600.0},{"current":2696.965,"min":1200.0,"max":3600.0},{"current":2700.694,"min":1200.0,"max":3600.0},{"current":2696.046,"min":1200.0,"max":3600.0},{"current":2699.003,"min":1200.0,"max":3600.0},{"current":2695.079,"min":1200.0,"max":3600.0},{"current":2697.637,"min":1200.0,"max":3600.0},{"current":2786.61,"min":1200.0,"max":3600.0},{"current":2696.069,"min":1200.0,"max":3600.0},{"current":2761.709,"min":1200.0,"max":3600.0},{"current":2696.804,"min":1200.0,"max":3600.0},{"current":2692.502,"min":1200.0,"max":3600.0},{"current":2628.842,"min":1200.0,"max":3600.0},{"current":2693.469,"min":1200.0,"max":3600.0},{"current":2696.454,"min":1200.0,"max":3600.0},{"current":2694.602,"min":1200.0,"max":3600.0},{"current":2765.357,"min":1200.0,"max":3600.0},{"current":2697.102,"min":1200.0,"max":3600.0},{"current":2757.593,"min":1200.0,"max":3600.0},{"current":2698.914,"min":1200.0,"max":3600.0},{"current":2695.684,"min":1200.0,"max":3600.0},{"current":2695.661,"min":1200.0,"max":3600.0},{"current":2694.074,"min":1200.0,"max":3600.0},{"current":2696.162,"min":1200.0,"max":3600.0},{"current":2827.255,"min":1200.0,"max":3600.0},{"current":2627.299,"min":1200.0,"max":3600.0},{"current":2715.392,"min":1200.0,"max":3600.0},{"current":2707.844,"min":1200.0,"max":3600.0},{"current":2724.69,"min":1200.0,"max":3600.0},{"current":2850.828,"min":1200.0,"max":3600.0},{"current":2692.911,"min":1200.0,"max":3600.0},{"current":2697.591,"min":1200.0,"max":3600.0},{"current":2844.569,"min":1200.0,"max":3600.0},{"current":2754.802,"min":1200.0,"max":3600.0},{"current":2685.923,"min":1200.0,"max":3600.0},{"current":2694.118,"min":1200.0,"max":3600.0},{"current":2693.555,"min":1200.0,"max":3600.0},{"current":2694.509,"min":1200.0,"max":3600.0},{"current":2694.63,"min":1200.0,"max":3600.0},{"current":2694.984,"min":1200.0,"max":3600.0},{"current":2781.731,"min":1200.0,"max":3600.0},{"current":2695.026,"min":1200.0,"max":3600.0},{"current":2695.251,"min":1200.0,"max":3600.0},{"current":2694.15,"min":1200.0,"max":3600.0},{"current":2694.106,"min":1200.0,"max":3600.0},{"current":2697.707,"min":1200.0,"max":3600.0},{"current":2694.875,"min":1200.0,"max":3600.0},{"current":2772.211,"min":1200.0,"max":3600.0},{"current":2776.903,"min":1200.0,"max":3600.0},{"current":2660.414,"min":1200.0,"max":3600.0},{"current":2721.185,"min":1200.0,"max":3600.0},{"current":2661.613,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2672.316,"min":1200.0,"max":3600.0}],"disk_write_speed":58.243382481593706,"process_ids":[2113736,2113939]} +{"timestamp":1678266974.452139,"rapl_power_draw_absolute":165.95274442191985,"rapl_estimated_attributable_power_draw":8.548183859617911,"cpu_time_seconds":{"2113736":{"user":26.35,"system":10.06,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":0.29,"system":0.49,"children_user":0.15,"children_system":5.34,"iowait":0.28}},"average_relative_cpu_utilization":0.058259450353834875,"absolute_cpu_utilization":1.0037497058240283,"relative_mem_usage":0.018956098337848077,"absolute_mem_usage":3869073408.0,"absolute_mem_percent_usage":0.007152645401204626,"mem_info_per_process":{"2113736":{"rss":3944648704,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3409899520,"pss":3634009088,"swap":0},"2113939":{"rss":439644160,"vms":11098390528,"shared":14217216,"text":2633728,"lib":0,"data":2829037568,"dirty":0,"uss":39231488,"pss":235064320,"swap":0}},"nvidia_draw_absolute":472.87,"nvidia_estimated_attributable_power_draw":68.16,"average_gpu_estimated_utilization_absolute":0.21,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":8.666666666666666,"mem":5.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":22.0,"mem":12.666666666666666,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":21.0,"mem":13.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":68.16},"cpu_count_adjusted_average_load":[0.22675,0.21887500000000001,0.21525],"cpu_freq":[{"current":2695.736,"min":1200.0,"max":3600.0},{"current":2729.573,"min":1200.0,"max":3600.0},{"current":2601.632,"min":1200.0,"max":3600.0},{"current":2695.903,"min":1200.0,"max":3600.0},{"current":2691.513,"min":1200.0,"max":3600.0},{"current":2696.327,"min":1200.0,"max":3600.0},{"current":2799.671,"min":1200.0,"max":3600.0},{"current":2740.103,"min":1200.0,"max":3600.0},{"current":2696.89,"min":1200.0,"max":3600.0},{"current":2709.023,"min":1200.0,"max":3600.0},{"current":2693.327,"min":1200.0,"max":3600.0},{"current":2813.943,"min":1200.0,"max":3600.0},{"current":2748.175,"min":1200.0,"max":3600.0},{"current":2695.788,"min":1200.0,"max":3600.0},{"current":2764.205,"min":1200.0,"max":3600.0},{"current":2696.012,"min":1200.0,"max":3600.0},{"current":2847.673,"min":1200.0,"max":3600.0},{"current":2695.696,"min":1200.0,"max":3600.0},{"current":2694.167,"min":1200.0,"max":3600.0},{"current":2708.61,"min":1200.0,"max":3600.0},{"current":2694.236,"min":1200.0,"max":3600.0},{"current":2696.471,"min":1200.0,"max":3600.0},{"current":2701.941,"min":1200.0,"max":3600.0},{"current":2756.898,"min":1200.0,"max":3600.0},{"current":2695.841,"min":1200.0,"max":3600.0},{"current":2698.261,"min":1200.0,"max":3600.0},{"current":2623.129,"min":1200.0,"max":3600.0},{"current":2697.36,"min":1200.0,"max":3600.0},{"current":2694.884,"min":1200.0,"max":3600.0},{"current":2701.158,"min":1200.0,"max":3600.0},{"current":2694.464,"min":1200.0,"max":3600.0},{"current":2694.212,"min":1200.0,"max":3600.0},{"current":2695.423,"min":1200.0,"max":3600.0},{"current":2695.803,"min":1200.0,"max":3600.0},{"current":2697.839,"min":1200.0,"max":3600.0},{"current":2781.63,"min":1200.0,"max":3600.0},{"current":2698.026,"min":1200.0,"max":3600.0},{"current":2633.592,"min":1200.0,"max":3600.0},{"current":2697.066,"min":1200.0,"max":3600.0},{"current":2695.309,"min":1200.0,"max":3600.0},{"current":2748.939,"min":1200.0,"max":3600.0},{"current":2701.728,"min":1200.0,"max":3600.0},{"current":2856.604,"min":1200.0,"max":3600.0},{"current":2705.906,"min":1200.0,"max":3600.0},{"current":2844.161,"min":1200.0,"max":3600.0},{"current":2711.059,"min":1200.0,"max":3600.0},{"current":2693.834,"min":1200.0,"max":3600.0},{"current":2756.645,"min":1200.0,"max":3600.0},{"current":2698.264,"min":1200.0,"max":3600.0},{"current":2694.317,"min":1200.0,"max":3600.0},{"current":2739.873,"min":1200.0,"max":3600.0},{"current":2695.014,"min":1200.0,"max":3600.0},{"current":2698.669,"min":1200.0,"max":3600.0},{"current":2694.19,"min":1200.0,"max":3600.0},{"current":2694.372,"min":1200.0,"max":3600.0},{"current":2685.878,"min":1200.0,"max":3600.0},{"current":2694.064,"min":1200.0,"max":3600.0},{"current":2694.783,"min":1200.0,"max":3600.0},{"current":2707.374,"min":1200.0,"max":3600.0},{"current":2694.111,"min":1200.0,"max":3600.0},{"current":2756.655,"min":1200.0,"max":3600.0},{"current":2694.775,"min":1200.0,"max":3600.0},{"current":2693.843,"min":1200.0,"max":3600.0},{"current":2694.647,"min":1200.0,"max":3600.0},{"current":2694.628,"min":1200.0,"max":3600.0},{"current":2695.51,"min":1200.0,"max":3600.0},{"current":2735.986,"min":1200.0,"max":3600.0},{"current":2693.733,"min":1200.0,"max":3600.0},{"current":2694.285,"min":1200.0,"max":3600.0},{"current":2693.969,"min":1200.0,"max":3600.0},{"current":2693.439,"min":1200.0,"max":3600.0},{"current":2694.701,"min":1200.0,"max":3600.0},{"current":2697.356,"min":1200.0,"max":3600.0},{"current":2772.746,"min":1200.0,"max":3600.0},{"current":2763.199,"min":1200.0,"max":3600.0},{"current":2691.977,"min":1200.0,"max":3600.0},{"current":2691.131,"min":1200.0,"max":3600.0},{"current":2766.188,"min":1200.0,"max":3600.0},{"current":2754.666,"min":1200.0,"max":3600.0},{"current":2763.276,"min":1200.0,"max":3600.0}],"disk_write_speed":72.15064163659407,"process_ids":[2113736,2113939]} +{"timestamp":1678266990.012206,"rapl_power_draw_absolute":167.04746515270946,"rapl_estimated_attributable_power_draw":8.580439966300094,"cpu_time_seconds":{"2113736":{"user":39.34,"system":12.64,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":0.5,"system":0.79,"children_user":0.24,"children_system":8.45,"iowait":0.63}},"average_relative_cpu_utilization":0.05815749808056529,"absolute_cpu_utilization":1.0036714681688517,"relative_mem_usage":0.018006703346263125,"absolute_mem_usage":3672772608.0,"absolute_mem_percent_usage":0.006789749724045949,"mem_info_per_process":{"2113736":{"rss":3743866880,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3213832192,"pss":3437935616,"swap":0},"2113939":{"rss":439410688,"vms":11098390528,"shared":14217216,"text":2633728,"lib":0,"data":2829037568,"dirty":0,"uss":39010304,"pss":234836992,"swap":0}},"nvidia_draw_absolute":566.67,"nvidia_estimated_attributable_power_draw":68.64,"average_gpu_estimated_utilization_absolute":0.17800000000000002,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":3.0,"mem":1.5,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":17.8,"mem":11.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":68.64},"cpu_count_adjusted_average_load":[0.2265,0.21912500000000001,0.215375],"cpu_freq":[{"current":2694.316,"min":1200.0,"max":3600.0},{"current":2697.771,"min":1200.0,"max":3600.0},{"current":2696.565,"min":1200.0,"max":3600.0},{"current":2698.33,"min":1200.0,"max":3600.0},{"current":2693.664,"min":1200.0,"max":3600.0},{"current":2695.489,"min":1200.0,"max":3600.0},{"current":2767.273,"min":1200.0,"max":3600.0},{"current":2697.103,"min":1200.0,"max":3600.0},{"current":2704.234,"min":1200.0,"max":3600.0},{"current":2698.35,"min":1200.0,"max":3600.0},{"current":2663.193,"min":1200.0,"max":3600.0},{"current":2778.158,"min":1200.0,"max":3600.0},{"current":2696.17,"min":1200.0,"max":3600.0},{"current":2709.602,"min":1200.0,"max":3600.0},{"current":2697.582,"min":1200.0,"max":3600.0},{"current":2698.324,"min":1200.0,"max":3600.0},{"current":2697.281,"min":1200.0,"max":3600.0},{"current":2742.907,"min":1200.0,"max":3600.0},{"current":2693.752,"min":1200.0,"max":3600.0},{"current":2694.124,"min":1200.0,"max":3600.0},{"current":2689.43,"min":1200.0,"max":3600.0},{"current":2696.433,"min":1200.0,"max":3600.0},{"current":2682.701,"min":1200.0,"max":3600.0},{"current":2696.884,"min":1200.0,"max":3600.0},{"current":2697.014,"min":1200.0,"max":3600.0},{"current":2694.676,"min":1200.0,"max":3600.0},{"current":2697.891,"min":1200.0,"max":3600.0},{"current":2695.656,"min":1200.0,"max":3600.0},{"current":2695.859,"min":1200.0,"max":3600.0},{"current":2698.442,"min":1200.0,"max":3600.0},{"current":2697.737,"min":1200.0,"max":3600.0},{"current":2698.114,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2687.719,"min":1200.0,"max":3600.0},{"current":2690.931,"min":1200.0,"max":3600.0},{"current":2680.472,"min":1200.0,"max":3600.0},{"current":2695.314,"min":1200.0,"max":3600.0},{"current":2693.415,"min":1200.0,"max":3600.0},{"current":2691.596,"min":1200.0,"max":3600.0},{"current":2681.908,"min":1200.0,"max":3600.0},{"current":2694.349,"min":1200.0,"max":3600.0},{"current":2693.989,"min":1200.0,"max":3600.0},{"current":2734.257,"min":1200.0,"max":3600.0},{"current":2695.866,"min":1200.0,"max":3600.0},{"current":2747.624,"min":1200.0,"max":3600.0},{"current":2696.935,"min":1200.0,"max":3600.0},{"current":2746.568,"min":1200.0,"max":3600.0},{"current":2694.287,"min":1200.0,"max":3600.0},{"current":2695.687,"min":1200.0,"max":3600.0},{"current":2694.002,"min":1200.0,"max":3600.0},{"current":2764.296,"min":1200.0,"max":3600.0},{"current":2669.665,"min":1200.0,"max":3600.0},{"current":2696.399,"min":1200.0,"max":3600.0},{"current":2694.33,"min":1200.0,"max":3600.0},{"current":2711.525,"min":1200.0,"max":3600.0},{"current":2768.005,"min":1200.0,"max":3600.0},{"current":2695.185,"min":1200.0,"max":3600.0},{"current":2683.367,"min":1200.0,"max":3600.0},{"current":2759.295,"min":1200.0,"max":3600.0},{"current":2694.093,"min":1200.0,"max":3600.0},{"current":2694.697,"min":1200.0,"max":3600.0},{"current":2694.763,"min":1200.0,"max":3600.0},{"current":2695.003,"min":1200.0,"max":3600.0},{"current":2693.923,"min":1200.0,"max":3600.0},{"current":2694.551,"min":1200.0,"max":3600.0},{"current":2697.02,"min":1200.0,"max":3600.0},{"current":2745.508,"min":1200.0,"max":3600.0},{"current":2693.915,"min":1200.0,"max":3600.0},{"current":2697.63,"min":1200.0,"max":3600.0},{"current":2695.468,"min":1200.0,"max":3600.0},{"current":2694.2,"min":1200.0,"max":3600.0},{"current":2695.672,"min":1200.0,"max":3600.0},{"current":2716.937,"min":1200.0,"max":3600.0},{"current":2756.692,"min":1200.0,"max":3600.0},{"current":2775.012,"min":1200.0,"max":3600.0},{"current":2632.241,"min":1200.0,"max":3600.0},{"current":2694.653,"min":1200.0,"max":3600.0},{"current":2758.652,"min":1200.0,"max":3600.0},{"current":2778.668,"min":1200.0,"max":3600.0},{"current":2728.465,"min":1200.0,"max":3600.0}],"disk_write_speed":72.66315718008086,"process_ids":[2113736,2113939]} +{"timestamp":1678267005.3562,"rapl_power_draw_absolute":168.51320539919513,"rapl_estimated_attributable_power_draw":8.18795223963625,"cpu_time_seconds":{"2113736":{"user":52.11,"system":15.21,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":0.71,"system":1.09,"children_user":0.34,"children_system":11.56,"iowait":0.97}},"average_relative_cpu_utilization":0.055368883200932834,"absolute_cpu_utilization":0.9987305937505976,"relative_mem_usage":0.01641522296456452,"absolute_mem_usage":3348462592.0,"absolute_mem_percent_usage":0.006190207068765577,"mem_info_per_process":{"2113736":{"rss":3417366528,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2889240576,"pss":3113342976,"swap":0},"2113939":{"rss":439693312,"vms":11098652672,"shared":14217216,"text":2633728,"lib":0,"data":2829299712,"dirty":0,"uss":39292928,"pss":235119616,"swap":0}},"nvidia_draw_absolute":477.61,"nvidia_estimated_attributable_power_draw":69.13,"average_gpu_estimated_utilization_absolute":0.242,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":17.666666666666668,"mem":11.333333333333334,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":8.0,"mem":4.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.2,"mem":16.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.13},"cpu_count_adjusted_average_load":[0.22599999999999998,0.21949999999999997,0.21549999999999997],"cpu_freq":[{"current":2695.992,"min":1200.0,"max":3600.0},{"current":2699.757,"min":1200.0,"max":3600.0},{"current":2695.273,"min":1200.0,"max":3600.0},{"current":2694.505,"min":1200.0,"max":3600.0},{"current":2710.344,"min":1200.0,"max":3600.0},{"current":2698.488,"min":1200.0,"max":3600.0},{"current":2817.348,"min":1200.0,"max":3600.0},{"current":2696.246,"min":1200.0,"max":3600.0},{"current":2696.759,"min":1200.0,"max":3600.0},{"current":2695.904,"min":1200.0,"max":3600.0},{"current":2644.797,"min":1200.0,"max":3600.0},{"current":2773.919,"min":1200.0,"max":3600.0},{"current":2697.883,"min":1200.0,"max":3600.0},{"current":2696.243,"min":1200.0,"max":3600.0},{"current":2694.272,"min":1200.0,"max":3600.0},{"current":2693.882,"min":1200.0,"max":3600.0},{"current":2696.985,"min":1200.0,"max":3600.0},{"current":2806.306,"min":1200.0,"max":3600.0},{"current":2593.819,"min":1200.0,"max":3600.0},{"current":2720.8,"min":1200.0,"max":3600.0},{"current":2693.941,"min":1200.0,"max":3600.0},{"current":2695.748,"min":1200.0,"max":3600.0},{"current":2694.407,"min":1200.0,"max":3600.0},{"current":2697.743,"min":1200.0,"max":3600.0},{"current":2702.014,"min":1200.0,"max":3600.0},{"current":2695.066,"min":1200.0,"max":3600.0},{"current":2695.67,"min":1200.0,"max":3600.0},{"current":2696.591,"min":1200.0,"max":3600.0},{"current":2696.71,"min":1200.0,"max":3600.0},{"current":2695.261,"min":1200.0,"max":3600.0},{"current":2694.9,"min":1200.0,"max":3600.0},{"current":2696.877,"min":1200.0,"max":3600.0},{"current":2774.131,"min":1200.0,"max":3600.0},{"current":2692.865,"min":1200.0,"max":3600.0},{"current":2692.365,"min":1200.0,"max":3600.0},{"current":2764.313,"min":1200.0,"max":3600.0},{"current":2693.852,"min":1200.0,"max":3600.0},{"current":2697.526,"min":1200.0,"max":3600.0},{"current":2695.172,"min":1200.0,"max":3600.0},{"current":2693.346,"min":1200.0,"max":3600.0},{"current":2697.368,"min":1200.0,"max":3600.0},{"current":2736.721,"min":1200.0,"max":3600.0},{"current":2851.215,"min":1200.0,"max":3600.0},{"current":2705.829,"min":1200.0,"max":3600.0},{"current":2711.246,"min":1200.0,"max":3600.0},{"current":2811.798,"min":1200.0,"max":3600.0},{"current":2659.009,"min":1200.0,"max":3600.0},{"current":2697.978,"min":1200.0,"max":3600.0},{"current":2694.148,"min":1200.0,"max":3600.0},{"current":2694.682,"min":1200.0,"max":3600.0},{"current":2801.662,"min":1200.0,"max":3600.0},{"current":2692.594,"min":1200.0,"max":3600.0},{"current":2696.719,"min":1200.0,"max":3600.0},{"current":2707.496,"min":1200.0,"max":3600.0},{"current":2723.994,"min":1200.0,"max":3600.0},{"current":2792.643,"min":1200.0,"max":3600.0},{"current":2695.459,"min":1200.0,"max":3600.0},{"current":2693.189,"min":1200.0,"max":3600.0},{"current":2793.417,"min":1200.0,"max":3600.0},{"current":2694.419,"min":1200.0,"max":3600.0},{"current":2777.941,"min":1200.0,"max":3600.0},{"current":2696.615,"min":1200.0,"max":3600.0},{"current":2694.031,"min":1200.0,"max":3600.0},{"current":2695.388,"min":1200.0,"max":3600.0},{"current":2696.37,"min":1200.0,"max":3600.0},{"current":2696.301,"min":1200.0,"max":3600.0},{"current":2757.314,"min":1200.0,"max":3600.0},{"current":2694.794,"min":1200.0,"max":3600.0},{"current":2696.986,"min":1200.0,"max":3600.0},{"current":2697.031,"min":1200.0,"max":3600.0},{"current":2694.103,"min":1200.0,"max":3600.0},{"current":2694.563,"min":1200.0,"max":3600.0},{"current":2695.677,"min":1200.0,"max":3600.0},{"current":2736.144,"min":1200.0,"max":3600.0},{"current":2780.984,"min":1200.0,"max":3600.0},{"current":2693.037,"min":1200.0,"max":3600.0},{"current":2694.578,"min":1200.0,"max":3600.0},{"current":2771.902,"min":1200.0,"max":3600.0},{"current":2763.754,"min":1200.0,"max":3600.0},{"current":2695.116,"min":1200.0,"max":3600.0}],"disk_write_speed":69.74094298085173,"process_ids":[2113736,2113939]} +{"timestamp":1678267021.048203,"rapl_power_draw_absolute":166.37321497279447,"rapl_estimated_attributable_power_draw":8.532652041842766,"cpu_time_seconds":{"2113736":{"user":65.16,"system":17.86,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":0.93,"system":1.39,"children_user":0.44,"children_system":14.69,"iowait":1.3}},"average_relative_cpu_utilization":0.05858026882473544,"absolute_cpu_utilization":1.0039984549423084,"relative_mem_usage":0.016047478000189068,"absolute_mem_usage":3267288064.0,"absolute_mem_percent_usage":0.006040142039450383,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2807799808,"pss":3031900160,"swap":0},"2113939":{"rss":439959552,"vms":11098914816,"shared":14217216,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":39563264,"pss":235387904,"swap":0}},"nvidia_draw_absolute":604.1700000000001,"nvidia_estimated_attributable_power_draw":198.49,"average_gpu_estimated_utilization_absolute":0.29600000000000004,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":10.666666666666666,"mem":6.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":29.6,"mem":20.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":198.49},"cpu_count_adjusted_average_load":[0.22749999999999998,0.220125,0.21587499999999998],"cpu_freq":[{"current":2695.397,"min":1200.0,"max":3600.0},{"current":2696.957,"min":1200.0,"max":3600.0},{"current":2700.887,"min":1200.0,"max":3600.0},{"current":2770.561,"min":1200.0,"max":3600.0},{"current":2711.76,"min":1200.0,"max":3600.0},{"current":2694.727,"min":1200.0,"max":3600.0},{"current":2854.214,"min":1200.0,"max":3600.0},{"current":2715.781,"min":1200.0,"max":3600.0},{"current":2701.127,"min":1200.0,"max":3600.0},{"current":2727.43,"min":1200.0,"max":3600.0},{"current":2683.37,"min":1200.0,"max":3600.0},{"current":2712.184,"min":1200.0,"max":3600.0},{"current":2803.959,"min":1200.0,"max":3600.0},{"current":2694.966,"min":1200.0,"max":3600.0},{"current":2698.878,"min":1200.0,"max":3600.0},{"current":2695.445,"min":1200.0,"max":3600.0},{"current":2733.807,"min":1200.0,"max":3600.0},{"current":2818.38,"min":1200.0,"max":3600.0},{"current":2697.722,"min":1200.0,"max":3600.0},{"current":2694.898,"min":1200.0,"max":3600.0},{"current":2695.487,"min":1200.0,"max":3600.0},{"current":2694.099,"min":1200.0,"max":3600.0},{"current":2695.232,"min":1200.0,"max":3600.0},{"current":2694.52,"min":1200.0,"max":3600.0},{"current":2697.022,"min":1200.0,"max":3600.0},{"current":2695.917,"min":1200.0,"max":3600.0},{"current":2692.593,"min":1200.0,"max":3600.0},{"current":2696.258,"min":1200.0,"max":3600.0},{"current":2697.035,"min":1200.0,"max":3600.0},{"current":2696.674,"min":1200.0,"max":3600.0},{"current":2697.091,"min":1200.0,"max":3600.0},{"current":2697.906,"min":1200.0,"max":3600.0},{"current":2700.631,"min":1200.0,"max":3600.0},{"current":2636.578,"min":1200.0,"max":3600.0},{"current":2693.002,"min":1200.0,"max":3600.0},{"current":2715.041,"min":1200.0,"max":3600.0},{"current":2697.76,"min":1200.0,"max":3600.0},{"current":2695.487,"min":1200.0,"max":3600.0},{"current":2692.736,"min":1200.0,"max":3600.0},{"current":2694.041,"min":1200.0,"max":3600.0},{"current":2737.313,"min":1200.0,"max":3600.0},{"current":2707.151,"min":1200.0,"max":3600.0},{"current":2847.025,"min":1200.0,"max":3600.0},{"current":2697.817,"min":1200.0,"max":3600.0},{"current":2710.699,"min":1200.0,"max":3600.0},{"current":2824.716,"min":1200.0,"max":3600.0},{"current":2656.506,"min":1200.0,"max":3600.0},{"current":2697.172,"min":1200.0,"max":3600.0},{"current":2695.383,"min":1200.0,"max":3600.0},{"current":2785.307,"min":1200.0,"max":3600.0},{"current":2793.733,"min":1200.0,"max":3600.0},{"current":2695.98,"min":1200.0,"max":3600.0},{"current":2622.443,"min":1200.0,"max":3600.0},{"current":2721.392,"min":1200.0,"max":3600.0},{"current":2706.435,"min":1200.0,"max":3600.0},{"current":2785.518,"min":1200.0,"max":3600.0},{"current":2708.888,"min":1200.0,"max":3600.0},{"current":2622.387,"min":1200.0,"max":3600.0},{"current":2877.454,"min":1200.0,"max":3600.0},{"current":2707.997,"min":1200.0,"max":3600.0},{"current":2692.99,"min":1200.0,"max":3600.0},{"current":2692.242,"min":1200.0,"max":3600.0},{"current":2702.843,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2694.39,"min":1200.0,"max":3600.0},{"current":2696.072,"min":1200.0,"max":3600.0},{"current":2689.409,"min":1200.0,"max":3600.0},{"current":2696.679,"min":1200.0,"max":3600.0},{"current":2696.187,"min":1200.0,"max":3600.0},{"current":2693.995,"min":1200.0,"max":3600.0},{"current":2696.845,"min":1200.0,"max":3600.0},{"current":2694.149,"min":1200.0,"max":3600.0},{"current":2696.745,"min":1200.0,"max":3600.0},{"current":2666.626,"min":1200.0,"max":3600.0},{"current":2682.77,"min":1200.0,"max":3600.0},{"current":2696.406,"min":1200.0,"max":3600.0},{"current":2720.544,"min":1200.0,"max":3600.0},{"current":2726.364,"min":1200.0,"max":3600.0},{"current":2694.943,"min":1200.0,"max":3600.0},{"current":2697.521,"min":1200.0,"max":3600.0}],"disk_write_speed":70.32725812784433,"process_ids":[2113736,2113939]} +{"timestamp":1678267036.840212,"rapl_power_draw_absolute":165.6648750885808,"rapl_estimated_attributable_power_draw":8.656200515147148,"cpu_time_seconds":{"2113736":{"user":78.66,"system":20.16,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":1.15,"system":1.68,"children_user":0.52,"children_system":17.86,"iowait":1.64}},"average_relative_cpu_utilization":0.059166861558900156,"absolute_cpu_utilization":1.003994041737308,"relative_mem_usage":0.018847249730762173,"absolute_mem_usage":3849052160.0,"absolute_mem_percent_usage":0.007115632692389778,"mem_info_per_process":{"2113736":{"rss":3917680640,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3389304832,"pss":3613404160,"swap":0},"2113939":{"rss":440217600,"vms":11098914816,"shared":14217216,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":39825408,"pss":235648000,"swap":0}},"nvidia_draw_absolute":676.73,"nvidia_estimated_attributable_power_draw":68.64,"average_gpu_estimated_utilization_absolute":0.20600000000000002,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":21.5,"mem":13.5,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":20.6,"mem":12.8,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":68.64},"cpu_count_adjusted_average_load":[0.22962500000000002,0.221,0.21612499999999998],"cpu_freq":[{"current":2694.846,"min":1200.0,"max":3600.0},{"current":2708.508,"min":1200.0,"max":3600.0},{"current":2747.165,"min":1200.0,"max":3600.0},{"current":2711.844,"min":1200.0,"max":3600.0},{"current":2712.016,"min":1200.0,"max":3600.0},{"current":2696.293,"min":1200.0,"max":3600.0},{"current":2812.205,"min":1200.0,"max":3600.0},{"current":2710.621,"min":1200.0,"max":3600.0},{"current":2710.765,"min":1200.0,"max":3600.0},{"current":2700.477,"min":1200.0,"max":3600.0},{"current":2693.605,"min":1200.0,"max":3600.0},{"current":2694.259,"min":1200.0,"max":3600.0},{"current":2746.271,"min":1200.0,"max":3600.0},{"current":2696.76,"min":1200.0,"max":3600.0},{"current":2693.695,"min":1200.0,"max":3600.0},{"current":2691.203,"min":1200.0,"max":3600.0},{"current":2700.224,"min":1200.0,"max":3600.0},{"current":2681.509,"min":1200.0,"max":3600.0},{"current":2692.64,"min":1200.0,"max":3600.0},{"current":2711.795,"min":1200.0,"max":3600.0},{"current":2758.474,"min":1200.0,"max":3600.0},{"current":2694.937,"min":1200.0,"max":3600.0},{"current":2697.372,"min":1200.0,"max":3600.0},{"current":2693.627,"min":1200.0,"max":3600.0},{"current":2695.903,"min":1200.0,"max":3600.0},{"current":2698.801,"min":1200.0,"max":3600.0},{"current":2622.958,"min":1200.0,"max":3600.0},{"current":2699.787,"min":1200.0,"max":3600.0},{"current":2695.258,"min":1200.0,"max":3600.0},{"current":2696.518,"min":1200.0,"max":3600.0},{"current":2725.767,"min":1200.0,"max":3600.0},{"current":2695.045,"min":1200.0,"max":3600.0},{"current":2722.943,"min":1200.0,"max":3600.0},{"current":2695.835,"min":1200.0,"max":3600.0},{"current":2692.118,"min":1200.0,"max":3600.0},{"current":2781.568,"min":1200.0,"max":3600.0},{"current":2701.09,"min":1200.0,"max":3600.0},{"current":2666.045,"min":1200.0,"max":3600.0},{"current":2692.659,"min":1200.0,"max":3600.0},{"current":2621.385,"min":1200.0,"max":3600.0},{"current":2727.872,"min":1200.0,"max":3600.0},{"current":2709.435,"min":1200.0,"max":3600.0},{"current":2781.955,"min":1200.0,"max":3600.0},{"current":2695.683,"min":1200.0,"max":3600.0},{"current":2711.233,"min":1200.0,"max":3600.0},{"current":2786.0,"min":1200.0,"max":3600.0},{"current":2703.083,"min":1200.0,"max":3600.0},{"current":2694.229,"min":1200.0,"max":3600.0},{"current":2699.511,"min":1200.0,"max":3600.0},{"current":2736.474,"min":1200.0,"max":3600.0},{"current":2820.962,"min":1200.0,"max":3600.0},{"current":2708.598,"min":1200.0,"max":3600.0},{"current":2692.995,"min":1200.0,"max":3600.0},{"current":2696.228,"min":1200.0,"max":3600.0},{"current":2707.08,"min":1200.0,"max":3600.0},{"current":2812.371,"min":1200.0,"max":3600.0},{"current":2693.999,"min":1200.0,"max":3600.0},{"current":2701.76,"min":1200.0,"max":3600.0},{"current":2863.109,"min":1200.0,"max":3600.0},{"current":2708.844,"min":1200.0,"max":3600.0},{"current":2695.454,"min":1200.0,"max":3600.0},{"current":2697.276,"min":1200.0,"max":3600.0},{"current":2695.442,"min":1200.0,"max":3600.0},{"current":2695.374,"min":1200.0,"max":3600.0},{"current":2693.92,"min":1200.0,"max":3600.0},{"current":2694.083,"min":1200.0,"max":3600.0},{"current":2665.01,"min":1200.0,"max":3600.0},{"current":2696.022,"min":1200.0,"max":3600.0},{"current":2696.593,"min":1200.0,"max":3600.0},{"current":2696.543,"min":1200.0,"max":3600.0},{"current":2693.773,"min":1200.0,"max":3600.0},{"current":2694.198,"min":1200.0,"max":3600.0},{"current":2696.633,"min":1200.0,"max":3600.0},{"current":2777.243,"min":1200.0,"max":3600.0},{"current":2813.724,"min":1200.0,"max":3600.0},{"current":2694.955,"min":1200.0,"max":3600.0},{"current":2777.547,"min":1200.0,"max":3600.0},{"current":2779.361,"min":1200.0,"max":3600.0},{"current":2762.514,"min":1200.0,"max":3600.0},{"current":2864.216,"min":1200.0,"max":3600.0}],"disk_write_speed":69.81311282377592,"process_ids":[2113736,2113939]} +{"timestamp":1678267052.400176,"rapl_power_draw_absolute":168.3727327983105,"rapl_estimated_attributable_power_draw":8.069364281788928,"cpu_time_seconds":{"2113736":{"user":91.79,"system":22.6,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":1.37,"system":1.97,"children_user":0.61,"children_system":20.99,"iowait":1.97}},"average_relative_cpu_utilization":0.05439464346549932,"absolute_cpu_utilization":1.004021298767403,"relative_mem_usage":0.017613746525508924,"absolute_mem_usage":3590459392.0,"absolute_mem_percent_usage":0.006637579634777702,"mem_info_per_process":{"2113736":{"rss":3661099008,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3130712064,"pss":3354811392,"swap":0},"2113939":{"rss":440217600,"vms":11098914816,"shared":14217216,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":39825408,"pss":235648000,"swap":0}},"nvidia_draw_absolute":475.28000000000003,"nvidia_estimated_attributable_power_draw":69.13,"average_gpu_estimated_utilization_absolute":0.25666666666666665,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":17.333333333333332,"mem":11.333333333333334,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.5,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":15.0,"mem":9.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.666666666666668,"mem":17.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.13},"cpu_count_adjusted_average_load":[0.230625,0.221875,0.2165],"cpu_freq":[{"current":2695.997,"min":1200.0,"max":3600.0},{"current":2696.445,"min":1200.0,"max":3600.0},{"current":2652.109,"min":1200.0,"max":3600.0},{"current":2710.009,"min":1200.0,"max":3600.0},{"current":2706.425,"min":1200.0,"max":3600.0},{"current":2596.563,"min":1200.0,"max":3600.0},{"current":2848.222,"min":1200.0,"max":3600.0},{"current":2700.228,"min":1200.0,"max":3600.0},{"current":2715.96,"min":1200.0,"max":3600.0},{"current":2696.897,"min":1200.0,"max":3600.0},{"current":2696.366,"min":1200.0,"max":3600.0},{"current":2708.093,"min":1200.0,"max":3600.0},{"current":2825.741,"min":1200.0,"max":3600.0},{"current":2697.501,"min":1200.0,"max":3600.0},{"current":2710.165,"min":1200.0,"max":3600.0},{"current":2657.366,"min":1200.0,"max":3600.0},{"current":2696.074,"min":1200.0,"max":3600.0},{"current":2842.28,"min":1200.0,"max":3600.0},{"current":2696.875,"min":1200.0,"max":3600.0},{"current":2775.938,"min":1200.0,"max":3600.0},{"current":2784.291,"min":1200.0,"max":3600.0},{"current":2695.601,"min":1200.0,"max":3600.0},{"current":2695.585,"min":1200.0,"max":3600.0},{"current":2776.272,"min":1200.0,"max":3600.0},{"current":2694.536,"min":1200.0,"max":3600.0},{"current":2700.903,"min":1200.0,"max":3600.0},{"current":2690.758,"min":1200.0,"max":3600.0},{"current":2694.683,"min":1200.0,"max":3600.0},{"current":2696.659,"min":1200.0,"max":3600.0},{"current":2695.459,"min":1200.0,"max":3600.0},{"current":2696.853,"min":1200.0,"max":3600.0},{"current":2695.778,"min":1200.0,"max":3600.0},{"current":2696.915,"min":1200.0,"max":3600.0},{"current":2693.995,"min":1200.0,"max":3600.0},{"current":2693.769,"min":1200.0,"max":3600.0},{"current":2747.677,"min":1200.0,"max":3600.0},{"current":2698.002,"min":1200.0,"max":3600.0},{"current":2695.172,"min":1200.0,"max":3600.0},{"current":2698.193,"min":1200.0,"max":3600.0},{"current":2625.491,"min":1200.0,"max":3600.0},{"current":2698.631,"min":1200.0,"max":3600.0},{"current":2714.747,"min":1200.0,"max":3600.0},{"current":2793.713,"min":1200.0,"max":3600.0},{"current":2706.479,"min":1200.0,"max":3600.0},{"current":2695.229,"min":1200.0,"max":3600.0},{"current":2847.386,"min":1200.0,"max":3600.0},{"current":2695.578,"min":1200.0,"max":3600.0},{"current":2694.085,"min":1200.0,"max":3600.0},{"current":2747.087,"min":1200.0,"max":3600.0},{"current":2709.705,"min":1200.0,"max":3600.0},{"current":2829.65,"min":1200.0,"max":3600.0},{"current":2708.38,"min":1200.0,"max":3600.0},{"current":2658.379,"min":1200.0,"max":3600.0},{"current":2735.649,"min":1200.0,"max":3600.0},{"current":2709.068,"min":1200.0,"max":3600.0},{"current":2793.046,"min":1200.0,"max":3600.0},{"current":2695.93,"min":1200.0,"max":3600.0},{"current":2688.839,"min":1200.0,"max":3600.0},{"current":2809.087,"min":1200.0,"max":3600.0},{"current":2714.632,"min":1200.0,"max":3600.0},{"current":2630.572,"min":1200.0,"max":3600.0},{"current":2698.722,"min":1200.0,"max":3600.0},{"current":2696.13,"min":1200.0,"max":3600.0},{"current":2694.425,"min":1200.0,"max":3600.0},{"current":2694.12,"min":1200.0,"max":3600.0},{"current":2693.806,"min":1200.0,"max":3600.0},{"current":2700.762,"min":1200.0,"max":3600.0},{"current":2696.278,"min":1200.0,"max":3600.0},{"current":2696.381,"min":1200.0,"max":3600.0},{"current":2698.965,"min":1200.0,"max":3600.0},{"current":2695.85,"min":1200.0,"max":3600.0},{"current":2696.81,"min":1200.0,"max":3600.0},{"current":2697.153,"min":1200.0,"max":3600.0},{"current":2684.003,"min":1200.0,"max":3600.0},{"current":2687.405,"min":1200.0,"max":3600.0},{"current":2635.16,"min":1200.0,"max":3600.0},{"current":2696.04,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2695.897,"min":1200.0,"max":3600.0},{"current":2686.386,"min":1200.0,"max":3600.0}],"disk_write_speed":70.71749942042493,"process_ids":[2113736,2113939]} +{"timestamp":1678267068.060215,"rapl_power_draw_absolute":166.2168624927033,"rapl_estimated_attributable_power_draw":8.35609873340562,"cpu_time_seconds":{"2113736":{"user":104.96,"system":25.09,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":1.58,"system":2.26,"children_user":0.69,"children_system":24.14,"iowait":2.31}},"average_relative_cpu_utilization":0.05723765098870984,"absolute_cpu_utilization":0.9987317071099465,"relative_mem_usage":0.01686544939928242,"absolute_mem_usage":3438723072.0,"absolute_mem_percent_usage":0.006357069037796102,"mem_info_per_process":{"2113736":{"rss":3512606720,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2978975744,"pss":3203075072,"swap":0},"2113939":{"rss":440217600,"vms":11098914816,"shared":14217216,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":39825408,"pss":235648000,"swap":0}},"nvidia_draw_absolute":475.59,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.23800000000000002,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":7.0,"mem":4.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":25.666666666666668,"mem":14.666666666666666,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.8,"mem":15.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23399999999999999,0.223,0.217],"cpu_freq":[{"current":2745.789,"min":1200.0,"max":3600.0},{"current":2710.761,"min":1200.0,"max":3600.0},{"current":2747.757,"min":1200.0,"max":3600.0},{"current":2707.488,"min":1200.0,"max":3600.0},{"current":2710.081,"min":1200.0,"max":3600.0},{"current":2697.153,"min":1200.0,"max":3600.0},{"current":2858.571,"min":1200.0,"max":3600.0},{"current":2691.419,"min":1200.0,"max":3600.0},{"current":2740.018,"min":1200.0,"max":3600.0},{"current":2780.788,"min":1200.0,"max":3600.0},{"current":2628.699,"min":1200.0,"max":3600.0},{"current":2778.854,"min":1200.0,"max":3600.0},{"current":2782.689,"min":1200.0,"max":3600.0},{"current":2711.077,"min":1200.0,"max":3600.0},{"current":2710.952,"min":1200.0,"max":3600.0},{"current":2670.363,"min":1200.0,"max":3600.0},{"current":2701.507,"min":1200.0,"max":3600.0},{"current":2787.859,"min":1200.0,"max":3600.0},{"current":2694.672,"min":1200.0,"max":3600.0},{"current":2701.407,"min":1200.0,"max":3600.0},{"current":2775.448,"min":1200.0,"max":3600.0},{"current":2696.839,"min":1200.0,"max":3600.0},{"current":2767.06,"min":1200.0,"max":3600.0},{"current":2737.402,"min":1200.0,"max":3600.0},{"current":2695.612,"min":1200.0,"max":3600.0},{"current":2697.973,"min":1200.0,"max":3600.0},{"current":2696.361,"min":1200.0,"max":3600.0},{"current":2695.349,"min":1200.0,"max":3600.0},{"current":2697.453,"min":1200.0,"max":3600.0},{"current":2694.872,"min":1200.0,"max":3600.0},{"current":2695.112,"min":1200.0,"max":3600.0},{"current":2695.213,"min":1200.0,"max":3600.0},{"current":2696.663,"min":1200.0,"max":3600.0},{"current":2697.333,"min":1200.0,"max":3600.0},{"current":2696.228,"min":1200.0,"max":3600.0},{"current":2778.243,"min":1200.0,"max":3600.0},{"current":2697.716,"min":1200.0,"max":3600.0},{"current":2694.986,"min":1200.0,"max":3600.0},{"current":2692.003,"min":1200.0,"max":3600.0},{"current":2632.921,"min":1200.0,"max":3600.0},{"current":2704.139,"min":1200.0,"max":3600.0},{"current":2710.497,"min":1200.0,"max":3600.0},{"current":2840.25,"min":1200.0,"max":3600.0},{"current":2706.998,"min":1200.0,"max":3600.0},{"current":2698.679,"min":1200.0,"max":3600.0},{"current":2694.922,"min":1200.0,"max":3600.0},{"current":2654.041,"min":1200.0,"max":3600.0},{"current":2841.223,"min":1200.0,"max":3600.0},{"current":2707.112,"min":1200.0,"max":3600.0},{"current":2710.275,"min":1200.0,"max":3600.0},{"current":2846.484,"min":1200.0,"max":3600.0},{"current":2745.363,"min":1200.0,"max":3600.0},{"current":2757.059,"min":1200.0,"max":3600.0},{"current":2707.294,"min":1200.0,"max":3600.0},{"current":2697.313,"min":1200.0,"max":3600.0},{"current":2850.068,"min":1200.0,"max":3600.0},{"current":2708.915,"min":1200.0,"max":3600.0},{"current":2696.651,"min":1200.0,"max":3600.0},{"current":2742.114,"min":1200.0,"max":3600.0},{"current":2694.214,"min":1200.0,"max":3600.0},{"current":2631.947,"min":1200.0,"max":3600.0},{"current":2694.516,"min":1200.0,"max":3600.0},{"current":2765.275,"min":1200.0,"max":3600.0},{"current":2725.327,"min":1200.0,"max":3600.0},{"current":2695.497,"min":1200.0,"max":3600.0},{"current":2695.623,"min":1200.0,"max":3600.0},{"current":2784.072,"min":1200.0,"max":3600.0},{"current":2697.045,"min":1200.0,"max":3600.0},{"current":2697.182,"min":1200.0,"max":3600.0},{"current":2695.89,"min":1200.0,"max":3600.0},{"current":2694.026,"min":1200.0,"max":3600.0},{"current":2694.693,"min":1200.0,"max":3600.0},{"current":2696.321,"min":1200.0,"max":3600.0},{"current":2721.163,"min":1200.0,"max":3600.0},{"current":2696.762,"min":1200.0,"max":3600.0},{"current":2694.004,"min":1200.0,"max":3600.0},{"current":2739.405,"min":1200.0,"max":3600.0},{"current":2703.457,"min":1200.0,"max":3600.0},{"current":2784.518,"min":1200.0,"max":3600.0},{"current":2778.825,"min":1200.0,"max":3600.0}],"disk_write_speed":71.2511526793454,"process_ids":[2113736,2113939]} +{"timestamp":1678267083.588166,"rapl_power_draw_absolute":166.6671660914052,"rapl_estimated_attributable_power_draw":8.415659313163092,"cpu_time_seconds":{"2113736":{"user":117.98,"system":27.61,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":1.8,"system":2.54,"children_user":0.76,"children_system":27.29,"iowait":2.65}},"average_relative_cpu_utilization":0.0576072461703137,"absolute_cpu_utilization":1.0037311423689756,"relative_mem_usage":0.016040344338725122,"absolute_mem_usage":3267551232.0,"absolute_mem_percent_usage":0.006040628550608599,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2807803904,"pss":3031903232,"swap":0},"2113939":{"rss":440217600,"vms":11098914816,"shared":14217216,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":39825408,"pss":235648000,"swap":0}},"nvidia_draw_absolute":869.56,"nvidia_estimated_attributable_power_draw":253.36,"average_gpu_estimated_utilization_absolute":0.26,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":27.0,"mem":17.333333333333332,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":26.0,"mem":17.25,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":253.36},"cpu_count_adjusted_average_load":[0.23762500000000003,0.224375,0.217625],"cpu_freq":[{"current":2694.266,"min":1200.0,"max":3600.0},{"current":2697.784,"min":1200.0,"max":3600.0},{"current":2692.317,"min":1200.0,"max":3600.0},{"current":2696.071,"min":1200.0,"max":3600.0},{"current":2708.976,"min":1200.0,"max":3600.0},{"current":2709.279,"min":1200.0,"max":3600.0},{"current":2823.484,"min":1200.0,"max":3600.0},{"current":2630.81,"min":1200.0,"max":3600.0},{"current":2718.954,"min":1200.0,"max":3600.0},{"current":2696.497,"min":1200.0,"max":3600.0},{"current":2692.833,"min":1200.0,"max":3600.0},{"current":2717.562,"min":1200.0,"max":3600.0},{"current":2851.312,"min":1200.0,"max":3600.0},{"current":2696.526,"min":1200.0,"max":3600.0},{"current":2711.189,"min":1200.0,"max":3600.0},{"current":2698.636,"min":1200.0,"max":3600.0},{"current":2697.676,"min":1200.0,"max":3600.0},{"current":2729.844,"min":1200.0,"max":3600.0},{"current":2694.065,"min":1200.0,"max":3600.0},{"current":2695.281,"min":1200.0,"max":3600.0},{"current":2734.31,"min":1200.0,"max":3600.0},{"current":2697.526,"min":1200.0,"max":3600.0},{"current":2762.451,"min":1200.0,"max":3600.0},{"current":2780.662,"min":1200.0,"max":3600.0},{"current":2699.42,"min":1200.0,"max":3600.0},{"current":2694.804,"min":1200.0,"max":3600.0},{"current":2626.788,"min":1200.0,"max":3600.0},{"current":2694.672,"min":1200.0,"max":3600.0},{"current":2695.469,"min":1200.0,"max":3600.0},{"current":2696.406,"min":1200.0,"max":3600.0},{"current":2698.187,"min":1200.0,"max":3600.0},{"current":2696.893,"min":1200.0,"max":3600.0},{"current":2698.483,"min":1200.0,"max":3600.0},{"current":2695.011,"min":1200.0,"max":3600.0},{"current":2696.623,"min":1200.0,"max":3600.0},{"current":2754.287,"min":1200.0,"max":3600.0},{"current":2779.568,"min":1200.0,"max":3600.0},{"current":2695.85,"min":1200.0,"max":3600.0},{"current":2595.239,"min":1200.0,"max":3600.0},{"current":2694.148,"min":1200.0,"max":3600.0},{"current":2735.98,"min":1200.0,"max":3600.0},{"current":2706.892,"min":1200.0,"max":3600.0},{"current":2801.888,"min":1200.0,"max":3600.0},{"current":2708.068,"min":1200.0,"max":3600.0},{"current":2713.741,"min":1200.0,"max":3600.0},{"current":2694.076,"min":1200.0,"max":3600.0},{"current":2692.202,"min":1200.0,"max":3600.0},{"current":2802.345,"min":1200.0,"max":3600.0},{"current":2694.558,"min":1200.0,"max":3600.0},{"current":2694.105,"min":1200.0,"max":3600.0},{"current":2864.603,"min":1200.0,"max":3600.0},{"current":2702.353,"min":1200.0,"max":3600.0},{"current":2662.011,"min":1200.0,"max":3600.0},{"current":2715.489,"min":1200.0,"max":3600.0},{"current":2707.871,"min":1200.0,"max":3600.0},{"current":2882.634,"min":1200.0,"max":3600.0},{"current":2706.731,"min":1200.0,"max":3600.0},{"current":2691.19,"min":1200.0,"max":3600.0},{"current":2838.793,"min":1200.0,"max":3600.0},{"current":2695.785,"min":1200.0,"max":3600.0},{"current":2693.504,"min":1200.0,"max":3600.0},{"current":2695.289,"min":1200.0,"max":3600.0},{"current":2763.782,"min":1200.0,"max":3600.0},{"current":2768.73,"min":1200.0,"max":3600.0},{"current":2694.492,"min":1200.0,"max":3600.0},{"current":2694.134,"min":1200.0,"max":3600.0},{"current":2786.98,"min":1200.0,"max":3600.0},{"current":2694.716,"min":1200.0,"max":3600.0},{"current":2696.069,"min":1200.0,"max":3600.0},{"current":2693.828,"min":1200.0,"max":3600.0},{"current":2696.037,"min":1200.0,"max":3600.0},{"current":2696.806,"min":1200.0,"max":3600.0},{"current":2694.344,"min":1200.0,"max":3600.0},{"current":2695.987,"min":1200.0,"max":3600.0},{"current":2694.577,"min":1200.0,"max":3600.0},{"current":2747.954,"min":1200.0,"max":3600.0},{"current":2773.124,"min":1200.0,"max":3600.0},{"current":2781.208,"min":1200.0,"max":3600.0},{"current":2752.193,"min":1200.0,"max":3600.0},{"current":2772.386,"min":1200.0,"max":3600.0}],"disk_write_speed":57.021728154529654,"process_ids":[2113736,2113939]} +{"timestamp":1678267099.548204,"rapl_power_draw_absolute":167.75671530614335,"rapl_estimated_attributable_power_draw":8.182501712859583,"cpu_time_seconds":{"2113736":{"user":131.38,"system":30.17,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":2.06,"system":2.89,"children_user":0.85,"children_system":30.47,"iowait":2.93}},"average_relative_cpu_utilization":0.0556597695913827,"absolute_cpu_utilization":1.0036905629355033,"relative_mem_usage":0.016037244608533608,"absolute_mem_usage":3267555328.0,"absolute_mem_percent_usage":0.0060406361227667025,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2807808000,"pss":3031905280,"swap":0},"2113939":{"rss":440217600,"vms":11098914816,"shared":14217216,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":39829504,"pss":235650048,"swap":0}},"nvidia_draw_absolute":655.23,"nvidia_estimated_attributable_power_draw":248.11,"average_gpu_estimated_utilization_absolute":0.228,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":17.0,"mem":11.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":1.5,"mem":1.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.8,"mem":15.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":248.11},"cpu_count_adjusted_average_load":[0.23475000000000001,0.224375,0.21775000000000003],"cpu_freq":[{"current":2695.323,"min":1200.0,"max":3600.0},{"current":2701.1,"min":1200.0,"max":3600.0},{"current":2690.867,"min":1200.0,"max":3600.0},{"current":2711.482,"min":1200.0,"max":3600.0},{"current":2707.026,"min":1200.0,"max":3600.0},{"current":2708.595,"min":1200.0,"max":3600.0},{"current":2751.107,"min":1200.0,"max":3600.0},{"current":2763.38,"min":1200.0,"max":3600.0},{"current":2773.245,"min":1200.0,"max":3600.0},{"current":2697.085,"min":1200.0,"max":3600.0},{"current":2692.568,"min":1200.0,"max":3600.0},{"current":2696.371,"min":1200.0,"max":3600.0},{"current":2799.344,"min":1200.0,"max":3600.0},{"current":2771.619,"min":1200.0,"max":3600.0},{"current":2702.786,"min":1200.0,"max":3600.0},{"current":2658.867,"min":1200.0,"max":3600.0},{"current":2699.037,"min":1200.0,"max":3600.0},{"current":2811.17,"min":1200.0,"max":3600.0},{"current":2807.872,"min":1200.0,"max":3600.0},{"current":2696.519,"min":1200.0,"max":3600.0},{"current":2758.939,"min":1200.0,"max":3600.0},{"current":2695.345,"min":1200.0,"max":3600.0},{"current":2769.867,"min":1200.0,"max":3600.0},{"current":2781.281,"min":1200.0,"max":3600.0},{"current":2696.597,"min":1200.0,"max":3600.0},{"current":2696.712,"min":1200.0,"max":3600.0},{"current":2693.871,"min":1200.0,"max":3600.0},{"current":2698.232,"min":1200.0,"max":3600.0},{"current":2696.666,"min":1200.0,"max":3600.0},{"current":2696.338,"min":1200.0,"max":3600.0},{"current":2697.66,"min":1200.0,"max":3600.0},{"current":2695.539,"min":1200.0,"max":3600.0},{"current":2696.994,"min":1200.0,"max":3600.0},{"current":2696.242,"min":1200.0,"max":3600.0},{"current":2697.166,"min":1200.0,"max":3600.0},{"current":2762.412,"min":1200.0,"max":3600.0},{"current":2756.227,"min":1200.0,"max":3600.0},{"current":2693.924,"min":1200.0,"max":3600.0},{"current":2695.836,"min":1200.0,"max":3600.0},{"current":2697.271,"min":1200.0,"max":3600.0},{"current":2785.439,"min":1200.0,"max":3600.0},{"current":2701.9,"min":1200.0,"max":3600.0},{"current":2823.991,"min":1200.0,"max":3600.0},{"current":2695.23,"min":1200.0,"max":3600.0},{"current":2707.202,"min":1200.0,"max":3600.0},{"current":2694.183,"min":1200.0,"max":3600.0},{"current":2697.246,"min":1200.0,"max":3600.0},{"current":2863.874,"min":1200.0,"max":3600.0},{"current":2695.498,"min":1200.0,"max":3600.0},{"current":2694.414,"min":1200.0,"max":3600.0},{"current":2827.637,"min":1200.0,"max":3600.0},{"current":2699.552,"min":1200.0,"max":3600.0},{"current":2695.435,"min":1200.0,"max":3600.0},{"current":2695.229,"min":1200.0,"max":3600.0},{"current":2694.533,"min":1200.0,"max":3600.0},{"current":2785.09,"min":1200.0,"max":3600.0},{"current":2773.404,"min":1200.0,"max":3600.0},{"current":2693.177,"min":1200.0,"max":3600.0},{"current":2764.219,"min":1200.0,"max":3600.0},{"current":2732.969,"min":1200.0,"max":3600.0},{"current":2695.363,"min":1200.0,"max":3600.0},{"current":2693.88,"min":1200.0,"max":3600.0},{"current":2665.857,"min":1200.0,"max":3600.0},{"current":2753.442,"min":1200.0,"max":3600.0},{"current":2695.863,"min":1200.0,"max":3600.0},{"current":2694.159,"min":1200.0,"max":3600.0},{"current":2750.278,"min":1200.0,"max":3600.0},{"current":2693.77,"min":1200.0,"max":3600.0},{"current":2693.931,"min":1200.0,"max":3600.0},{"current":2693.893,"min":1200.0,"max":3600.0},{"current":2694.166,"min":1200.0,"max":3600.0},{"current":2723.315,"min":1200.0,"max":3600.0},{"current":2693.777,"min":1200.0,"max":3600.0},{"current":2693.951,"min":1200.0,"max":3600.0},{"current":2697.278,"min":1200.0,"max":3600.0},{"current":2692.543,"min":1200.0,"max":3600.0},{"current":2779.913,"min":1200.0,"max":3600.0},{"current":2765.789,"min":1200.0,"max":3600.0},{"current":2771.147,"min":1200.0,"max":3600.0},{"current":2783.523,"min":1200.0,"max":3600.0}],"disk_write_speed":72.76557312251111,"process_ids":[2113736,2113939]} +{"timestamp":1678267115.096193,"rapl_power_draw_absolute":166.54157053039287,"rapl_estimated_attributable_power_draw":8.541630070216787,"cpu_time_seconds":{"2113736":{"user":144.51,"system":32.59,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":2.26,"system":3.2,"children_user":0.94,"children_system":33.63,"iowait":3.27}},"average_relative_cpu_utilization":0.05805149841682926,"absolute_cpu_utilization":0.9986956874549218,"relative_mem_usage":0.01857112793664363,"absolute_mem_usage":3797505024.0,"absolute_mem_percent_usage":0.007020338975684035,"mem_info_per_process":{"2113736":{"rss":3856031744,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3337760768,"pss":3561854976,"swap":0},"2113939":{"rss":440217600,"vms":11098914816,"shared":14217216,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":39829504,"pss":235650048,"swap":0}},"nvidia_draw_absolute":475.28000000000003,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.158,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":12.5,"mem":7.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":15.8,"mem":10.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23349999999999999,0.224625,0.21787499999999999],"cpu_freq":[{"current":2694.4,"min":1200.0,"max":3600.0},{"current":2697.537,"min":1200.0,"max":3600.0},{"current":2694.261,"min":1200.0,"max":3600.0},{"current":2709.54,"min":1200.0,"max":3600.0},{"current":2705.217,"min":1200.0,"max":3600.0},{"current":2708.741,"min":1200.0,"max":3600.0},{"current":2745.816,"min":1200.0,"max":3600.0},{"current":2789.609,"min":1200.0,"max":3600.0},{"current":2697.206,"min":1200.0,"max":3600.0},{"current":2694.035,"min":1200.0,"max":3600.0},{"current":2697.215,"min":1200.0,"max":3600.0},{"current":2693.868,"min":1200.0,"max":3600.0},{"current":2693.931,"min":1200.0,"max":3600.0},{"current":2698.442,"min":1200.0,"max":3600.0},{"current":2680.434,"min":1200.0,"max":3600.0},{"current":2693.66,"min":1200.0,"max":3600.0},{"current":2694.254,"min":1200.0,"max":3600.0},{"current":2733.375,"min":1200.0,"max":3600.0},{"current":2697.898,"min":1200.0,"max":3600.0},{"current":2708.963,"min":1200.0,"max":3600.0},{"current":2766.061,"min":1200.0,"max":3600.0},{"current":2695.251,"min":1200.0,"max":3600.0},{"current":2770.988,"min":1200.0,"max":3600.0},{"current":2766.431,"min":1200.0,"max":3600.0},{"current":2697.7,"min":1200.0,"max":3600.0},{"current":2697.777,"min":1200.0,"max":3600.0},{"current":2696.605,"min":1200.0,"max":3600.0},{"current":2763.819,"min":1200.0,"max":3600.0},{"current":2694.379,"min":1200.0,"max":3600.0},{"current":2694.69,"min":1200.0,"max":3600.0},{"current":2695.596,"min":1200.0,"max":3600.0},{"current":2697.955,"min":1200.0,"max":3600.0},{"current":2697.25,"min":1200.0,"max":3600.0},{"current":2697.264,"min":1200.0,"max":3600.0},{"current":2697.334,"min":1200.0,"max":3600.0},{"current":2697.165,"min":1200.0,"max":3600.0},{"current":2699.64,"min":1200.0,"max":3600.0},{"current":2696.253,"min":1200.0,"max":3600.0},{"current":2696.719,"min":1200.0,"max":3600.0},{"current":2694.491,"min":1200.0,"max":3600.0},{"current":2701.395,"min":1200.0,"max":3600.0},{"current":2694.705,"min":1200.0,"max":3600.0},{"current":2821.794,"min":1200.0,"max":3600.0},{"current":2708.498,"min":1200.0,"max":3600.0},{"current":2726.572,"min":1200.0,"max":3600.0},{"current":2695.775,"min":1200.0,"max":3600.0},{"current":2694.641,"min":1200.0,"max":3600.0},{"current":2826.325,"min":1200.0,"max":3600.0},{"current":2698.98,"min":1200.0,"max":3600.0},{"current":2710.533,"min":1200.0,"max":3600.0},{"current":2811.842,"min":1200.0,"max":3600.0},{"current":2708.527,"min":1200.0,"max":3600.0},{"current":2709.378,"min":1200.0,"max":3600.0},{"current":2698.434,"min":1200.0,"max":3600.0},{"current":2696.818,"min":1200.0,"max":3600.0},{"current":2841.025,"min":1200.0,"max":3600.0},{"current":2725.03,"min":1200.0,"max":3600.0},{"current":2695.235,"min":1200.0,"max":3600.0},{"current":2875.779,"min":1200.0,"max":3600.0},{"current":2711.636,"min":1200.0,"max":3600.0},{"current":2696.151,"min":1200.0,"max":3600.0},{"current":2694.041,"min":1200.0,"max":3600.0},{"current":2663.601,"min":1200.0,"max":3600.0},{"current":2627.423,"min":1200.0,"max":3600.0},{"current":2695.158,"min":1200.0,"max":3600.0},{"current":2694.743,"min":1200.0,"max":3600.0},{"current":2718.39,"min":1200.0,"max":3600.0},{"current":2697.72,"min":1200.0,"max":3600.0},{"current":2695.752,"min":1200.0,"max":3600.0},{"current":2694.329,"min":1200.0,"max":3600.0},{"current":2695.463,"min":1200.0,"max":3600.0},{"current":2694.64,"min":1200.0,"max":3600.0},{"current":2696.366,"min":1200.0,"max":3600.0},{"current":2695.625,"min":1200.0,"max":3600.0},{"current":2695.659,"min":1200.0,"max":3600.0},{"current":2694.309,"min":1200.0,"max":3600.0},{"current":2775.917,"min":1200.0,"max":3600.0},{"current":2765.502,"min":1200.0,"max":3600.0},{"current":2777.296,"min":1200.0,"max":3600.0},{"current":2761.058,"min":1200.0,"max":3600.0}],"disk_write_speed":71.45950949686089,"process_ids":[2113736,2113939]} +{"timestamp":1678267131.180149,"rapl_power_draw_absolute":166.3801467924336,"rapl_estimated_attributable_power_draw":8.578498613967012,"cpu_time_seconds":{"2113736":{"user":158.05,"system":35.15,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":2.47,"system":3.56,"children_user":1.03,"children_system":36.76,"iowait":3.61}},"average_relative_cpu_utilization":0.058444537191085,"absolute_cpu_utilization":1.003944466489139,"relative_mem_usage":0.018592880006104897,"absolute_mem_usage":3811254272.0,"absolute_mem_percent_usage":0.007045756817401353,"mem_info_per_process":{"2113736":{"rss":3880005632,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3351506944,"pss":3575604224,"swap":0},"2113939":{"rss":440217600,"vms":11098914816,"shared":14217216,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":39829504,"pss":235650048,"swap":0}},"nvidia_draw_absolute":478.1,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.152,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":20.75,"mem":13.75,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":10.0,"mem":5.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":15.2,"mem":9.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.234625,0.22525,0.21825],"cpu_freq":[{"current":2695.348,"min":1200.0,"max":3600.0},{"current":2708.587,"min":1200.0,"max":3600.0},{"current":2693.374,"min":1200.0,"max":3600.0},{"current":2698.878,"min":1200.0,"max":3600.0},{"current":2708.046,"min":1200.0,"max":3600.0},{"current":2698.481,"min":1200.0,"max":3600.0},{"current":2709.904,"min":1200.0,"max":3600.0},{"current":2692.744,"min":1200.0,"max":3600.0},{"current":2724.834,"min":1200.0,"max":3600.0},{"current":2697.281,"min":1200.0,"max":3600.0},{"current":2682.519,"min":1200.0,"max":3600.0},{"current":2719.629,"min":1200.0,"max":3600.0},{"current":2697.082,"min":1200.0,"max":3600.0},{"current":2694.546,"min":1200.0,"max":3600.0},{"current":2853.762,"min":1200.0,"max":3600.0},{"current":2693.61,"min":1200.0,"max":3600.0},{"current":2710.493,"min":1200.0,"max":3600.0},{"current":2859.065,"min":1200.0,"max":3600.0},{"current":2821.204,"min":1200.0,"max":3600.0},{"current":2692.532,"min":1200.0,"max":3600.0},{"current":2698.562,"min":1200.0,"max":3600.0},{"current":2773.24,"min":1200.0,"max":3600.0},{"current":2780.29,"min":1200.0,"max":3600.0},{"current":2772.236,"min":1200.0,"max":3600.0},{"current":2698.214,"min":1200.0,"max":3600.0},{"current":2695.139,"min":1200.0,"max":3600.0},{"current":2624.345,"min":1200.0,"max":3600.0},{"current":2694.559,"min":1200.0,"max":3600.0},{"current":2711.297,"min":1200.0,"max":3600.0},{"current":2694.261,"min":1200.0,"max":3600.0},{"current":2694.123,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2693.748,"min":1200.0,"max":3600.0},{"current":2697.469,"min":1200.0,"max":3600.0},{"current":2695.027,"min":1200.0,"max":3600.0},{"current":2700.716,"min":1200.0,"max":3600.0},{"current":2699.651,"min":1200.0,"max":3600.0},{"current":2695.177,"min":1200.0,"max":3600.0},{"current":2627.785,"min":1200.0,"max":3600.0},{"current":2696.176,"min":1200.0,"max":3600.0},{"current":2732.833,"min":1200.0,"max":3600.0},{"current":2694.52,"min":1200.0,"max":3600.0},{"current":2804.444,"min":1200.0,"max":3600.0},{"current":2693.997,"min":1200.0,"max":3600.0},{"current":2778.489,"min":1200.0,"max":3600.0},{"current":2705.674,"min":1200.0,"max":3600.0},{"current":2703.088,"min":1200.0,"max":3600.0},{"current":2823.151,"min":1200.0,"max":3600.0},{"current":2698.383,"min":1200.0,"max":3600.0},{"current":2707.998,"min":1200.0,"max":3600.0},{"current":2843.403,"min":1200.0,"max":3600.0},{"current":2819.231,"min":1200.0,"max":3600.0},{"current":2696.613,"min":1200.0,"max":3600.0},{"current":2694.939,"min":1200.0,"max":3600.0},{"current":2696.341,"min":1200.0,"max":3600.0},{"current":2693.715,"min":1200.0,"max":3600.0},{"current":2694.148,"min":1200.0,"max":3600.0},{"current":2697.812,"min":1200.0,"max":3600.0},{"current":2681.329,"min":1200.0,"max":3600.0},{"current":2675.277,"min":1200.0,"max":3600.0},{"current":2695.295,"min":1200.0,"max":3600.0},{"current":2696.716,"min":1200.0,"max":3600.0},{"current":2694.671,"min":1200.0,"max":3600.0},{"current":2697.67,"min":1200.0,"max":3600.0},{"current":2696.997,"min":1200.0,"max":3600.0},{"current":2694.591,"min":1200.0,"max":3600.0},{"current":2777.415,"min":1200.0,"max":3600.0},{"current":2694.112,"min":1200.0,"max":3600.0},{"current":2694.704,"min":1200.0,"max":3600.0},{"current":2694.117,"min":1200.0,"max":3600.0},{"current":2694.567,"min":1200.0,"max":3600.0},{"current":2694.827,"min":1200.0,"max":3600.0},{"current":2697.516,"min":1200.0,"max":3600.0},{"current":2694.327,"min":1200.0,"max":3600.0},{"current":2696.993,"min":1200.0,"max":3600.0},{"current":2694.389,"min":1200.0,"max":3600.0},{"current":2777.884,"min":1200.0,"max":3600.0},{"current":2770.201,"min":1200.0,"max":3600.0},{"current":2765.696,"min":1200.0,"max":3600.0},{"current":2767.164,"min":1200.0,"max":3600.0}],"disk_write_speed":71.15535855490408,"process_ids":[2113736,2113939]} +{"timestamp":1678267146.624216,"rapl_power_draw_absolute":168.09303987016767,"rapl_estimated_attributable_power_draw":8.177442311964072,"cpu_time_seconds":{"2113736":{"user":171.07,"system":37.58,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":2.65,"system":3.9,"children_user":1.13,"children_system":39.9,"iowait":3.95}},"average_relative_cpu_utilization":0.055278135988444596,"absolute_cpu_utilization":1.0036887626034434,"relative_mem_usage":0.017468061282657595,"absolute_mem_usage":3564503040.0,"absolute_mem_percent_usage":0.006589594868869417,"mem_info_per_process":{"2113736":{"rss":3635773440,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3104751616,"pss":3328846848,"swap":0},"2113939":{"rss":440221696,"vms":11098914816,"shared":14217216,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":39837696,"pss":235656192,"swap":0}},"nvidia_draw_absolute":475.77000000000004,"nvidia_estimated_attributable_power_draw":69.13,"average_gpu_estimated_utilization_absolute":0.19,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":17.0,"mem":11.333333333333334,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.0,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":15.0,"mem":8.333333333333334,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":19.0,"mem":12.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.13},"cpu_count_adjusted_average_load":[0.235875,0.226125,0.21862499999999999],"cpu_freq":[{"current":2688.198,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2669.046,"min":1200.0,"max":3600.0},{"current":2703.006,"min":1200.0,"max":3600.0},{"current":2706.031,"min":1200.0,"max":3600.0},{"current":2696.944,"min":1200.0,"max":3600.0},{"current":2703.337,"min":1200.0,"max":3600.0},{"current":2696.669,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2699.927,"min":1200.0,"max":3600.0},{"current":2632.084,"min":1200.0,"max":3600.0},{"current":2695.294,"min":1200.0,"max":3600.0},{"current":2699.162,"min":1200.0,"max":3600.0},{"current":2694.823,"min":1200.0,"max":3600.0},{"current":2689.095,"min":1200.0,"max":3600.0},{"current":2695.659,"min":1200.0,"max":3600.0},{"current":2694.802,"min":1200.0,"max":3600.0},{"current":2686.256,"min":1200.0,"max":3600.0},{"current":2621.87,"min":1200.0,"max":3600.0},{"current":2693.569,"min":1200.0,"max":3600.0},{"current":2698.519,"min":1200.0,"max":3600.0},{"current":2878.531,"min":1200.0,"max":3600.0},{"current":2860.391,"min":1200.0,"max":3600.0},{"current":2863.711,"min":1200.0,"max":3600.0},{"current":2871.87,"min":1200.0,"max":3600.0},{"current":2696.335,"min":1200.0,"max":3600.0},{"current":2692.67,"min":1200.0,"max":3600.0},{"current":2723.032,"min":1200.0,"max":3600.0},{"current":2845.385,"min":1200.0,"max":3600.0},{"current":2695.453,"min":1200.0,"max":3600.0},{"current":2696.747,"min":1200.0,"max":3600.0},{"current":2696.108,"min":1200.0,"max":3600.0},{"current":2711.193,"min":1200.0,"max":3600.0},{"current":2697.095,"min":1200.0,"max":3600.0},{"current":2770.846,"min":1200.0,"max":3600.0},{"current":2706.769,"min":1200.0,"max":3600.0},{"current":2704.259,"min":1200.0,"max":3600.0},{"current":2695.052,"min":1200.0,"max":3600.0},{"current":2711.15,"min":1200.0,"max":3600.0},{"current":2714.45,"min":1200.0,"max":3600.0},{"current":2692.051,"min":1200.0,"max":3600.0},{"current":2705.46,"min":1200.0,"max":3600.0},{"current":2754.905,"min":1200.0,"max":3600.0},{"current":2694.121,"min":1200.0,"max":3600.0},{"current":2697.696,"min":1200.0,"max":3600.0},{"current":2694.164,"min":1200.0,"max":3600.0},{"current":2694.969,"min":1200.0,"max":3600.0},{"current":2797.279,"min":1200.0,"max":3600.0},{"current":2696.688,"min":1200.0,"max":3600.0},{"current":2695.436,"min":1200.0,"max":3600.0},{"current":2727.423,"min":1200.0,"max":3600.0},{"current":2694.906,"min":1200.0,"max":3600.0},{"current":2692.281,"min":1200.0,"max":3600.0},{"current":2708.619,"min":1200.0,"max":3600.0},{"current":2631.344,"min":1200.0,"max":3600.0},{"current":2731.317,"min":1200.0,"max":3600.0},{"current":2694.891,"min":1200.0,"max":3600.0},{"current":2692.877,"min":1200.0,"max":3600.0},{"current":2762.354,"min":1200.0,"max":3600.0},{"current":2744.689,"min":1200.0,"max":3600.0},{"current":2693.472,"min":1200.0,"max":3600.0},{"current":2695.886,"min":1200.0,"max":3600.0},{"current":2637.885,"min":1200.0,"max":3600.0},{"current":2753.19,"min":1200.0,"max":3600.0},{"current":2705.993,"min":1200.0,"max":3600.0},{"current":2694.081,"min":1200.0,"max":3600.0},{"current":2862.685,"min":1200.0,"max":3600.0},{"current":2777.635,"min":1200.0,"max":3600.0},{"current":2653.016,"min":1200.0,"max":3600.0},{"current":2696.07,"min":1200.0,"max":3600.0},{"current":2696.019,"min":1200.0,"max":3600.0},{"current":2706.171,"min":1200.0,"max":3600.0},{"current":2696.575,"min":1200.0,"max":3600.0},{"current":2695.957,"min":1200.0,"max":3600.0},{"current":2694.406,"min":1200.0,"max":3600.0},{"current":2746.165,"min":1200.0,"max":3600.0},{"current":2712.071,"min":1200.0,"max":3600.0},{"current":2832.693,"min":1200.0,"max":3600.0},{"current":2694.747,"min":1200.0,"max":3600.0},{"current":2856.639,"min":1200.0,"max":3600.0}],"disk_write_speed":70.51791962369258,"process_ids":[2113736,2113939]} +{"timestamp":1678267162.520251,"rapl_power_draw_absolute":166.53855187452513,"rapl_estimated_attributable_power_draw":8.333987518968883,"cpu_time_seconds":{"2113736":{"user":184.32,"system":40.23,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":3.07,"system":4.32,"children_user":1.23,"children_system":43.02,"iowait":4.29}},"average_relative_cpu_utilization":0.05686341347841133,"absolute_cpu_utilization":0.9987223084284612,"relative_mem_usage":0.01726293057140996,"absolute_mem_usage":3524493312.0,"absolute_mem_percent_usage":0.006515630028504556,"mem_info_per_process":{"2113736":{"rss":3469623296,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3063685120,"pss":3227424768,"swap":0},"2113939":{"rss":448143360,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160337920,"pss":297068544,"swap":0}},"nvidia_draw_absolute":474.14,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.248,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.333333333333333,"mem":3.3333333333333335,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":14.666666666666666,"mem":8.666666666666666,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.8,"mem":16.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.234375,0.226375,0.21887500000000001],"cpu_freq":[{"current":2695.406,"min":1200.0,"max":3600.0},{"current":2707.28,"min":1200.0,"max":3600.0},{"current":2693.334,"min":1200.0,"max":3600.0},{"current":2709.63,"min":1200.0,"max":3600.0},{"current":2711.836,"min":1200.0,"max":3600.0},{"current":2711.172,"min":1200.0,"max":3600.0},{"current":2701.757,"min":1200.0,"max":3600.0},{"current":2712.424,"min":1200.0,"max":3600.0},{"current":2697.773,"min":1200.0,"max":3600.0},{"current":2714.096,"min":1200.0,"max":3600.0},{"current":2691.907,"min":1200.0,"max":3600.0},{"current":2695.007,"min":1200.0,"max":3600.0},{"current":2711.529,"min":1200.0,"max":3600.0},{"current":2700.879,"min":1200.0,"max":3600.0},{"current":2790.779,"min":1200.0,"max":3600.0},{"current":2692.554,"min":1200.0,"max":3600.0},{"current":2709.89,"min":1200.0,"max":3600.0},{"current":2790.729,"min":1200.0,"max":3600.0},{"current":2636.923,"min":1200.0,"max":3600.0},{"current":2692.964,"min":1200.0,"max":3600.0},{"current":2771.344,"min":1200.0,"max":3600.0},{"current":2725.018,"min":1200.0,"max":3600.0},{"current":2779.777,"min":1200.0,"max":3600.0},{"current":2727.322,"min":1200.0,"max":3600.0},{"current":2679.582,"min":1200.0,"max":3600.0},{"current":2702.299,"min":1200.0,"max":3600.0},{"current":2693.116,"min":1200.0,"max":3600.0},{"current":2700.087,"min":1200.0,"max":3600.0},{"current":2780.816,"min":1200.0,"max":3600.0},{"current":2698.156,"min":1200.0,"max":3600.0},{"current":2700.781,"min":1200.0,"max":3600.0},{"current":2698.399,"min":1200.0,"max":3600.0},{"current":2697.219,"min":1200.0,"max":3600.0},{"current":2695.599,"min":1200.0,"max":3600.0},{"current":2696.173,"min":1200.0,"max":3600.0},{"current":2696.142,"min":1200.0,"max":3600.0},{"current":2775.86,"min":1200.0,"max":3600.0},{"current":2657.688,"min":1200.0,"max":3600.0},{"current":2695.755,"min":1200.0,"max":3600.0},{"current":2694.588,"min":1200.0,"max":3600.0},{"current":2734.418,"min":1200.0,"max":3600.0},{"current":2706.011,"min":1200.0,"max":3600.0},{"current":2836.928,"min":1200.0,"max":3600.0},{"current":2694.442,"min":1200.0,"max":3600.0},{"current":2696.494,"min":1200.0,"max":3600.0},{"current":2698.001,"min":1200.0,"max":3600.0},{"current":2701.806,"min":1200.0,"max":3600.0},{"current":2704.823,"min":1200.0,"max":3600.0},{"current":2842.419,"min":1200.0,"max":3600.0},{"current":2787.608,"min":1200.0,"max":3600.0},{"current":2829.239,"min":1200.0,"max":3600.0},{"current":2707.491,"min":1200.0,"max":3600.0},{"current":2696.76,"min":1200.0,"max":3600.0},{"current":2707.923,"min":1200.0,"max":3600.0},{"current":2699.497,"min":1200.0,"max":3600.0},{"current":2810.463,"min":1200.0,"max":3600.0},{"current":2695.432,"min":1200.0,"max":3600.0},{"current":2696.878,"min":1200.0,"max":3600.0},{"current":2818.924,"min":1200.0,"max":3600.0},{"current":2864.202,"min":1200.0,"max":3600.0},{"current":2679.128,"min":1200.0,"max":3600.0},{"current":2697.003,"min":1200.0,"max":3600.0},{"current":2696.796,"min":1200.0,"max":3600.0},{"current":2696.994,"min":1200.0,"max":3600.0},{"current":2693.145,"min":1200.0,"max":3600.0},{"current":2695.816,"min":1200.0,"max":3600.0},{"current":2781.711,"min":1200.0,"max":3600.0},{"current":2694.113,"min":1200.0,"max":3600.0},{"current":2638.425,"min":1200.0,"max":3600.0},{"current":2695.605,"min":1200.0,"max":3600.0},{"current":2694.147,"min":1200.0,"max":3600.0},{"current":2694.405,"min":1200.0,"max":3600.0},{"current":2694.395,"min":1200.0,"max":3600.0},{"current":2694.663,"min":1200.0,"max":3600.0},{"current":2693.999,"min":1200.0,"max":3600.0},{"current":2696.362,"min":1200.0,"max":3600.0},{"current":2628.598,"min":1200.0,"max":3600.0},{"current":2742.186,"min":1200.0,"max":3600.0},{"current":2694.458,"min":1200.0,"max":3600.0},{"current":2694.373,"min":1200.0,"max":3600.0}],"disk_write_speed":71.33719385988245,"process_ids":[2113736,2113939]} +{"timestamp":1678267178.180222,"rapl_power_draw_absolute":166.87961670440023,"rapl_estimated_attributable_power_draw":8.409732010814007,"cpu_time_seconds":{"2113736":{"user":197.55,"system":42.67,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":3.29,"system":4.62,"children_user":1.35,"children_system":46.13,"iowait":4.63}},"average_relative_cpu_utilization":0.05750126530646449,"absolute_cpu_utilization":0.9987205211430158,"relative_mem_usage":0.01655928432256337,"absolute_mem_usage":3388919808.0,"absolute_mem_percent_usage":0.006264999167403355,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2928111616,"pss":3091851264,"swap":0},"2113939":{"rss":448143360,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160337920,"pss":297068544,"swap":0}},"nvidia_draw_absolute":810.1600000000001,"nvidia_estimated_attributable_power_draw":235.64,"average_gpu_estimated_utilization_absolute":0.222,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":9.5,"mem":5.5,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.5,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.2,"mem":14.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":235.64},"cpu_count_adjusted_average_load":[0.23325,0.2265,0.219],"cpu_freq":[{"current":2695.378,"min":1200.0,"max":3600.0},{"current":2696.801,"min":1200.0,"max":3600.0},{"current":2683.695,"min":1200.0,"max":3600.0},{"current":2697.248,"min":1200.0,"max":3600.0},{"current":2714.05,"min":1200.0,"max":3600.0},{"current":2696.839,"min":1200.0,"max":3600.0},{"current":2696.492,"min":1200.0,"max":3600.0},{"current":2721.228,"min":1200.0,"max":3600.0},{"current":2696.102,"min":1200.0,"max":3600.0},{"current":2695.143,"min":1200.0,"max":3600.0},{"current":2694.487,"min":1200.0,"max":3600.0},{"current":2699.076,"min":1200.0,"max":3600.0},{"current":2697.839,"min":1200.0,"max":3600.0},{"current":2697.655,"min":1200.0,"max":3600.0},{"current":2748.956,"min":1200.0,"max":3600.0},{"current":2694.084,"min":1200.0,"max":3600.0},{"current":2698.619,"min":1200.0,"max":3600.0},{"current":2797.414,"min":1200.0,"max":3600.0},{"current":2691.539,"min":1200.0,"max":3600.0},{"current":2697.639,"min":1200.0,"max":3600.0},{"current":2698.782,"min":1200.0,"max":3600.0},{"current":2687.771,"min":1200.0,"max":3600.0},{"current":2694.516,"min":1200.0,"max":3600.0},{"current":2673.903,"min":1200.0,"max":3600.0},{"current":2673.276,"min":1200.0,"max":3600.0},{"current":2699.248,"min":1200.0,"max":3600.0},{"current":2696.112,"min":1200.0,"max":3600.0},{"current":2694.09,"min":1200.0,"max":3600.0},{"current":2674.637,"min":1200.0,"max":3600.0},{"current":2698.354,"min":1200.0,"max":3600.0},{"current":2695.804,"min":1200.0,"max":3600.0},{"current":2697.783,"min":1200.0,"max":3600.0},{"current":2696.159,"min":1200.0,"max":3600.0},{"current":2711.355,"min":1200.0,"max":3600.0},{"current":2696.27,"min":1200.0,"max":3600.0},{"current":2698.006,"min":1200.0,"max":3600.0},{"current":2775.337,"min":1200.0,"max":3600.0},{"current":2696.551,"min":1200.0,"max":3600.0},{"current":2697.022,"min":1200.0,"max":3600.0},{"current":2697.347,"min":1200.0,"max":3600.0},{"current":2695.695,"min":1200.0,"max":3600.0},{"current":2694.322,"min":1200.0,"max":3600.0},{"current":2844.694,"min":1200.0,"max":3600.0},{"current":2703.635,"min":1200.0,"max":3600.0},{"current":2694.265,"min":1200.0,"max":3600.0},{"current":2695.816,"min":1200.0,"max":3600.0},{"current":2695.885,"min":1200.0,"max":3600.0},{"current":2696.175,"min":1200.0,"max":3600.0},{"current":2839.769,"min":1200.0,"max":3600.0},{"current":2697.962,"min":1200.0,"max":3600.0},{"current":2813.179,"min":1200.0,"max":3600.0},{"current":2696.434,"min":1200.0,"max":3600.0},{"current":2694.361,"min":1200.0,"max":3600.0},{"current":2694.565,"min":1200.0,"max":3600.0},{"current":2694.135,"min":1200.0,"max":3600.0},{"current":2742.36,"min":1200.0,"max":3600.0},{"current":2694.846,"min":1200.0,"max":3600.0},{"current":2693.92,"min":1200.0,"max":3600.0},{"current":2855.901,"min":1200.0,"max":3600.0},{"current":2857.717,"min":1200.0,"max":3600.0},{"current":2718.721,"min":1200.0,"max":3600.0},{"current":2694.762,"min":1200.0,"max":3600.0},{"current":2694.333,"min":1200.0,"max":3600.0},{"current":2692.756,"min":1200.0,"max":3600.0},{"current":2711.032,"min":1200.0,"max":3600.0},{"current":2695.435,"min":1200.0,"max":3600.0},{"current":2779.794,"min":1200.0,"max":3600.0},{"current":2694.833,"min":1200.0,"max":3600.0},{"current":2692.499,"min":1200.0,"max":3600.0},{"current":2693.959,"min":1200.0,"max":3600.0},{"current":2695.071,"min":1200.0,"max":3600.0},{"current":2697.45,"min":1200.0,"max":3600.0},{"current":2696.998,"min":1200.0,"max":3600.0},{"current":2694.187,"min":1200.0,"max":3600.0},{"current":2694.193,"min":1200.0,"max":3600.0},{"current":2694.436,"min":1200.0,"max":3600.0},{"current":2691.745,"min":1200.0,"max":3600.0},{"current":2774.216,"min":1200.0,"max":3600.0},{"current":2694.852,"min":1200.0,"max":3600.0},{"current":2749.881,"min":1200.0,"max":3600.0}],"disk_write_speed":72.81688943359362,"process_ids":[2113736,2113939]} +{"timestamp":1678267193.576225,"rapl_power_draw_absolute":168.05134451129385,"rapl_estimated_attributable_power_draw":8.213505926849134,"cpu_time_seconds":{"2113736":{"user":210.35,"system":45.26,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":3.52,"system":4.9,"children_user":1.45,"children_system":49.27,"iowait":4.98}},"average_relative_cpu_utilization":0.055061696092042936,"absolute_cpu_utilization":0.9946960996158144,"relative_mem_usage":0.019497439071879716,"absolute_mem_usage":3987808256.0,"absolute_mem_percent_usage":0.007372147120338183,"mem_info_per_process":{"2113736":{"rss":3925962752,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3527000064,"pss":3690739712,"swap":0},"2113939":{"rss":448143360,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160337920,"pss":297068544,"swap":0}},"nvidia_draw_absolute":475.76000000000005,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.2525,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":16.0,"mem":10.333333333333334,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.25,"mem":16.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23325,0.226875,0.21925],"cpu_freq":[{"current":2694.628,"min":1200.0,"max":3600.0},{"current":2700.14,"min":1200.0,"max":3600.0},{"current":2660.765,"min":1200.0,"max":3600.0},{"current":2696.256,"min":1200.0,"max":3600.0},{"current":2757.61,"min":1200.0,"max":3600.0},{"current":2695.064,"min":1200.0,"max":3600.0},{"current":2696.878,"min":1200.0,"max":3600.0},{"current":2701.157,"min":1200.0,"max":3600.0},{"current":2693.813,"min":1200.0,"max":3600.0},{"current":2693.783,"min":1200.0,"max":3600.0},{"current":2693.22,"min":1200.0,"max":3600.0},{"current":2696.022,"min":1200.0,"max":3600.0},{"current":2697.649,"min":1200.0,"max":3600.0},{"current":2693.773,"min":1200.0,"max":3600.0},{"current":2737.531,"min":1200.0,"max":3600.0},{"current":2694.564,"min":1200.0,"max":3600.0},{"current":2715.142,"min":1200.0,"max":3600.0},{"current":2834.047,"min":1200.0,"max":3600.0},{"current":2857.121,"min":1200.0,"max":3600.0},{"current":2617.953,"min":1200.0,"max":3600.0},{"current":2696.559,"min":1200.0,"max":3600.0},{"current":2766.431,"min":1200.0,"max":3600.0},{"current":2780.436,"min":1200.0,"max":3600.0},{"current":2771.928,"min":1200.0,"max":3600.0},{"current":2755.17,"min":1200.0,"max":3600.0},{"current":2703.037,"min":1200.0,"max":3600.0},{"current":2694.512,"min":1200.0,"max":3600.0},{"current":2696.582,"min":1200.0,"max":3600.0},{"current":2753.73,"min":1200.0,"max":3600.0},{"current":2700.673,"min":1200.0,"max":3600.0},{"current":2697.477,"min":1200.0,"max":3600.0},{"current":2696.085,"min":1200.0,"max":3600.0},{"current":2697.25,"min":1200.0,"max":3600.0},{"current":2697.171,"min":1200.0,"max":3600.0},{"current":2697.314,"min":1200.0,"max":3600.0},{"current":2724.619,"min":1200.0,"max":3600.0},{"current":2782.951,"min":1200.0,"max":3600.0},{"current":2693.88,"min":1200.0,"max":3600.0},{"current":2703.515,"min":1200.0,"max":3600.0},{"current":2776.875,"min":1200.0,"max":3600.0},{"current":2697.551,"min":1200.0,"max":3600.0},{"current":2701.952,"min":1200.0,"max":3600.0},{"current":2835.586,"min":1200.0,"max":3600.0},{"current":2696.365,"min":1200.0,"max":3600.0},{"current":2702.704,"min":1200.0,"max":3600.0},{"current":2694.839,"min":1200.0,"max":3600.0},{"current":2698.088,"min":1200.0,"max":3600.0},{"current":2720.629,"min":1200.0,"max":3600.0},{"current":2823.424,"min":1200.0,"max":3600.0},{"current":2700.7,"min":1200.0,"max":3600.0},{"current":2855.42,"min":1200.0,"max":3600.0},{"current":2696.963,"min":1200.0,"max":3600.0},{"current":2708.39,"min":1200.0,"max":3600.0},{"current":2707.827,"min":1200.0,"max":3600.0},{"current":2703.575,"min":1200.0,"max":3600.0},{"current":2820.084,"min":1200.0,"max":3600.0},{"current":2698.56,"min":1200.0,"max":3600.0},{"current":2691.981,"min":1200.0,"max":3600.0},{"current":2837.901,"min":1200.0,"max":3600.0},{"current":2851.259,"min":1200.0,"max":3600.0},{"current":2692.991,"min":1200.0,"max":3600.0},{"current":2693.354,"min":1200.0,"max":3600.0},{"current":2694.786,"min":1200.0,"max":3600.0},{"current":2693.398,"min":1200.0,"max":3600.0},{"current":2692.449,"min":1200.0,"max":3600.0},{"current":2704.082,"min":1200.0,"max":3600.0},{"current":2775.49,"min":1200.0,"max":3600.0},{"current":2694.245,"min":1200.0,"max":3600.0},{"current":2696.219,"min":1200.0,"max":3600.0},{"current":2693.939,"min":1200.0,"max":3600.0},{"current":2694.053,"min":1200.0,"max":3600.0},{"current":2694.422,"min":1200.0,"max":3600.0},{"current":2694.205,"min":1200.0,"max":3600.0},{"current":2694.979,"min":1200.0,"max":3600.0},{"current":2694.731,"min":1200.0,"max":3600.0},{"current":2694.345,"min":1200.0,"max":3600.0},{"current":2718.228,"min":1200.0,"max":3600.0},{"current":2779.421,"min":1200.0,"max":3600.0},{"current":2695.213,"min":1200.0,"max":3600.0},{"current":2775.498,"min":1200.0,"max":3600.0}],"disk_write_speed":71.17279920208378,"process_ids":[2113736,2113939]} +{"timestamp":1678267209.284194,"rapl_power_draw_absolute":167.11478901835895,"rapl_estimated_attributable_power_draw":8.485896520497027,"cpu_time_seconds":{"2113736":{"user":223.61,"system":47.72,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":3.74,"system":5.24,"children_user":1.54,"children_system":52.41,"iowait":5.32}},"average_relative_cpu_utilization":0.057352942518144115,"absolute_cpu_utilization":0.9987311543780486,"relative_mem_usage":0.01923860075211454,"absolute_mem_usage":3937558528.0,"absolute_mem_percent_usage":0.007279251884712045,"mem_info_per_process":{"2113736":{"rss":3858112512,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3476750336,"pss":3640489984,"swap":0},"2113939":{"rss":448143360,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160337920,"pss":297068544,"swap":0}},"nvidia_draw_absolute":475.77000000000004,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.22399999999999998,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":13.0,"mem":7.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.4,"mem":15.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23337500000000003,0.22712500000000002,0.21949999999999997],"cpu_freq":[{"current":2694.697,"min":1200.0,"max":3600.0},{"current":2700.062,"min":1200.0,"max":3600.0},{"current":2754.487,"min":1200.0,"max":3600.0},{"current":2696.971,"min":1200.0,"max":3600.0},{"current":2711.544,"min":1200.0,"max":3600.0},{"current":2703.603,"min":1200.0,"max":3600.0},{"current":2711.139,"min":1200.0,"max":3600.0},{"current":2699.702,"min":1200.0,"max":3600.0},{"current":2709.947,"min":1200.0,"max":3600.0},{"current":2714.919,"min":1200.0,"max":3600.0},{"current":2782.398,"min":1200.0,"max":3600.0},{"current":2694.649,"min":1200.0,"max":3600.0},{"current":2698.05,"min":1200.0,"max":3600.0},{"current":2696.3,"min":1200.0,"max":3600.0},{"current":2775.04,"min":1200.0,"max":3600.0},{"current":2696.242,"min":1200.0,"max":3600.0},{"current":2754.347,"min":1200.0,"max":3600.0},{"current":2716.43,"min":1200.0,"max":3600.0},{"current":2693.936,"min":1200.0,"max":3600.0},{"current":2722.321,"min":1200.0,"max":3600.0},{"current":2696.79,"min":1200.0,"max":3600.0},{"current":2696.912,"min":1200.0,"max":3600.0},{"current":2772.304,"min":1200.0,"max":3600.0},{"current":2768.92,"min":1200.0,"max":3600.0},{"current":2778.007,"min":1200.0,"max":3600.0},{"current":2771.139,"min":1200.0,"max":3600.0},{"current":2692.97,"min":1200.0,"max":3600.0},{"current":2697.39,"min":1200.0,"max":3600.0},{"current":2695.177,"min":1200.0,"max":3600.0},{"current":2772.124,"min":1200.0,"max":3600.0},{"current":2696.901,"min":1200.0,"max":3600.0},{"current":2695.798,"min":1200.0,"max":3600.0},{"current":2695.053,"min":1200.0,"max":3600.0},{"current":2695.429,"min":1200.0,"max":3600.0},{"current":2696.194,"min":1200.0,"max":3600.0},{"current":2693.985,"min":1200.0,"max":3600.0},{"current":2782.741,"min":1200.0,"max":3600.0},{"current":2693.022,"min":1200.0,"max":3600.0},{"current":2696.822,"min":1200.0,"max":3600.0},{"current":2696.067,"min":1200.0,"max":3600.0},{"current":2730.753,"min":1200.0,"max":3600.0},{"current":2842.983,"min":1200.0,"max":3600.0},{"current":2751.899,"min":1200.0,"max":3600.0},{"current":2694.951,"min":1200.0,"max":3600.0},{"current":2694.381,"min":1200.0,"max":3600.0},{"current":2692.821,"min":1200.0,"max":3600.0},{"current":2694.848,"min":1200.0,"max":3600.0},{"current":2694.409,"min":1200.0,"max":3600.0},{"current":2695.282,"min":1200.0,"max":3600.0},{"current":2677.406,"min":1200.0,"max":3600.0},{"current":2678.789,"min":1200.0,"max":3600.0},{"current":2696.103,"min":1200.0,"max":3600.0},{"current":2694.742,"min":1200.0,"max":3600.0},{"current":2693.929,"min":1200.0,"max":3600.0},{"current":2697.672,"min":1200.0,"max":3600.0},{"current":2848.337,"min":1200.0,"max":3600.0},{"current":2715.304,"min":1200.0,"max":3600.0},{"current":2697.193,"min":1200.0,"max":3600.0},{"current":2831.841,"min":1200.0,"max":3600.0},{"current":2821.801,"min":1200.0,"max":3600.0},{"current":2696.526,"min":1200.0,"max":3600.0},{"current":2696.397,"min":1200.0,"max":3600.0},{"current":2697.29,"min":1200.0,"max":3600.0},{"current":2692.809,"min":1200.0,"max":3600.0},{"current":2693.606,"min":1200.0,"max":3600.0},{"current":2692.969,"min":1200.0,"max":3600.0},{"current":2767.659,"min":1200.0,"max":3600.0},{"current":2694.733,"min":1200.0,"max":3600.0},{"current":2698.355,"min":1200.0,"max":3600.0},{"current":2681.332,"min":1200.0,"max":3600.0},{"current":2695.955,"min":1200.0,"max":3600.0},{"current":2706.122,"min":1200.0,"max":3600.0},{"current":2694.408,"min":1200.0,"max":3600.0},{"current":2696.055,"min":1200.0,"max":3600.0},{"current":2696.793,"min":1200.0,"max":3600.0},{"current":2697.344,"min":1200.0,"max":3600.0},{"current":2697.544,"min":1200.0,"max":3600.0},{"current":2779.627,"min":1200.0,"max":3600.0},{"current":2695.94,"min":1200.0,"max":3600.0},{"current":2767.003,"min":1200.0,"max":3600.0}],"disk_write_speed":69.902170719594,"process_ids":[2113736,2113939]} +{"timestamp":1678267225.13618,"rapl_power_draw_absolute":168.2346664431596,"rapl_estimated_attributable_power_draw":8.285008594591131,"cpu_time_seconds":{"2113736":{"user":237.06,"system":50.13,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":3.94,"system":5.62,"children_user":1.62,"children_system":55.59,"iowait":5.65}},"average_relative_cpu_utilization":0.05552244363515473,"absolute_cpu_utilization":0.998727456663809,"relative_mem_usage":0.01902390931151727,"absolute_mem_usage":3904943104.0,"absolute_mem_percent_usage":0.007218956682765352,"mem_info_per_process":{"2113736":{"rss":3851771904,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3444137984,"pss":3607874560,"swap":0},"2113939":{"rss":448143360,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160337920,"pss":297068544,"swap":0}},"nvidia_draw_absolute":477.68000000000006,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.1575,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":15.0,"mem":9.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":10.0,"mem":5.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":15.75,"mem":10.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.22962500000000002,0.226625,0.21949999999999997],"cpu_freq":[{"current":2694.155,"min":1200.0,"max":3600.0},{"current":2696.465,"min":1200.0,"max":3600.0},{"current":2694.152,"min":1200.0,"max":3600.0},{"current":2711.451,"min":1200.0,"max":3600.0},{"current":2700.186,"min":1200.0,"max":3600.0},{"current":2698.411,"min":1200.0,"max":3600.0},{"current":2709.668,"min":1200.0,"max":3600.0},{"current":2740.875,"min":1200.0,"max":3600.0},{"current":2695.026,"min":1200.0,"max":3600.0},{"current":2629.84,"min":1200.0,"max":3600.0},{"current":2625.845,"min":1200.0,"max":3600.0},{"current":2753.267,"min":1200.0,"max":3600.0},{"current":2694.63,"min":1200.0,"max":3600.0},{"current":2711.81,"min":1200.0,"max":3600.0},{"current":2836.958,"min":1200.0,"max":3600.0},{"current":2692.329,"min":1200.0,"max":3600.0},{"current":2709.407,"min":1200.0,"max":3600.0},{"current":2778.57,"min":1200.0,"max":3600.0},{"current":2857.009,"min":1200.0,"max":3600.0},{"current":2692.802,"min":1200.0,"max":3600.0},{"current":2698.228,"min":1200.0,"max":3600.0},{"current":2695.045,"min":1200.0,"max":3600.0},{"current":2786.148,"min":1200.0,"max":3600.0},{"current":2761.701,"min":1200.0,"max":3600.0},{"current":2771.456,"min":1200.0,"max":3600.0},{"current":2771.176,"min":1200.0,"max":3600.0},{"current":2640.673,"min":1200.0,"max":3600.0},{"current":2695.566,"min":1200.0,"max":3600.0},{"current":2695.898,"min":1200.0,"max":3600.0},{"current":2781.251,"min":1200.0,"max":3600.0},{"current":2694.963,"min":1200.0,"max":3600.0},{"current":2698.488,"min":1200.0,"max":3600.0},{"current":2697.632,"min":1200.0,"max":3600.0},{"current":2696.991,"min":1200.0,"max":3600.0},{"current":2697.947,"min":1200.0,"max":3600.0},{"current":2695.522,"min":1200.0,"max":3600.0},{"current":2768.977,"min":1200.0,"max":3600.0},{"current":2693.932,"min":1200.0,"max":3600.0},{"current":2698.155,"min":1200.0,"max":3600.0},{"current":2693.642,"min":1200.0,"max":3600.0},{"current":2734.115,"min":1200.0,"max":3600.0},{"current":2820.324,"min":1200.0,"max":3600.0},{"current":2850.514,"min":1200.0,"max":3600.0},{"current":2721.835,"min":1200.0,"max":3600.0},{"current":2694.723,"min":1200.0,"max":3600.0},{"current":2699.066,"min":1200.0,"max":3600.0},{"current":2709.214,"min":1200.0,"max":3600.0},{"current":2771.706,"min":1200.0,"max":3600.0},{"current":2708.568,"min":1200.0,"max":3600.0},{"current":2816.236,"min":1200.0,"max":3600.0},{"current":2840.634,"min":1200.0,"max":3600.0},{"current":2706.902,"min":1200.0,"max":3600.0},{"current":2695.585,"min":1200.0,"max":3600.0},{"current":2713.737,"min":1200.0,"max":3600.0},{"current":2690.624,"min":1200.0,"max":3600.0},{"current":2854.84,"min":1200.0,"max":3600.0},{"current":2709.322,"min":1200.0,"max":3600.0},{"current":2725.773,"min":1200.0,"max":3600.0},{"current":2852.553,"min":1200.0,"max":3600.0},{"current":2831.377,"min":1200.0,"max":3600.0},{"current":2693.992,"min":1200.0,"max":3600.0},{"current":2693.714,"min":1200.0,"max":3600.0},{"current":2695.282,"min":1200.0,"max":3600.0},{"current":2653.588,"min":1200.0,"max":3600.0},{"current":2695.311,"min":1200.0,"max":3600.0},{"current":2697.903,"min":1200.0,"max":3600.0},{"current":2690.517,"min":1200.0,"max":3600.0},{"current":2693.938,"min":1200.0,"max":3600.0},{"current":2693.804,"min":1200.0,"max":3600.0},{"current":2696.677,"min":1200.0,"max":3600.0},{"current":2694.516,"min":1200.0,"max":3600.0},{"current":2693.943,"min":1200.0,"max":3600.0},{"current":2694.706,"min":1200.0,"max":3600.0},{"current":2695.188,"min":1200.0,"max":3600.0},{"current":2694.736,"min":1200.0,"max":3600.0},{"current":2693.723,"min":1200.0,"max":3600.0},{"current":2634.755,"min":1200.0,"max":3600.0},{"current":2749.308,"min":1200.0,"max":3600.0},{"current":2694.077,"min":1200.0,"max":3600.0},{"current":2784.423,"min":1200.0,"max":3600.0}],"disk_write_speed":70.36809524896925,"process_ids":[2113736,2113939]} +{"timestamp":1678267240.660263,"rapl_power_draw_absolute":169.4411465374887,"rapl_estimated_attributable_power_draw":8.174108047756725,"cpu_time_seconds":{"2113736":{"user":250.17,"system":52.55,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":4.14,"system":5.93,"children_user":1.72,"children_system":58.71,"iowait":5.98}},"average_relative_cpu_utilization":0.05450821231970958,"absolute_cpu_utilization":0.9987249104079624,"relative_mem_usage":0.018410383854606818,"absolute_mem_usage":3763885056.0,"absolute_mem_percent_usage":0.006958186701962211,"mem_info_per_process":{"2113736":{"rss":3707797504,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3303079936,"pss":3466816512,"swap":0},"2113939":{"rss":448143360,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160337920,"pss":297068544,"swap":0}},"nvidia_draw_absolute":688.83,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.25,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":13.5,"mem":9.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":4.0,"mem":2.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":18.5,"mem":10.5,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.0,"mem":16.666666666666668,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.228625,0.226625,0.21949999999999997],"cpu_freq":[{"current":2695.173,"min":1200.0,"max":3600.0},{"current":2651.714,"min":1200.0,"max":3600.0},{"current":2695.56,"min":1200.0,"max":3600.0},{"current":2703.103,"min":1200.0,"max":3600.0},{"current":2782.684,"min":1200.0,"max":3600.0},{"current":2711.598,"min":1200.0,"max":3600.0},{"current":2694.381,"min":1200.0,"max":3600.0},{"current":2710.132,"min":1200.0,"max":3600.0},{"current":2698.751,"min":1200.0,"max":3600.0},{"current":2696.485,"min":1200.0,"max":3600.0},{"current":2767.653,"min":1200.0,"max":3600.0},{"current":2695.979,"min":1200.0,"max":3600.0},{"current":2714.783,"min":1200.0,"max":3600.0},{"current":2697.928,"min":1200.0,"max":3600.0},{"current":2835.177,"min":1200.0,"max":3600.0},{"current":2596.547,"min":1200.0,"max":3600.0},{"current":2703.055,"min":1200.0,"max":3600.0},{"current":2711.033,"min":1200.0,"max":3600.0},{"current":2699.96,"min":1200.0,"max":3600.0},{"current":2658.139,"min":1200.0,"max":3600.0},{"current":2696.987,"min":1200.0,"max":3600.0},{"current":2696.711,"min":1200.0,"max":3600.0},{"current":2772.163,"min":1200.0,"max":3600.0},{"current":2781.165,"min":1200.0,"max":3600.0},{"current":2778.694,"min":1200.0,"max":3600.0},{"current":2764.88,"min":1200.0,"max":3600.0},{"current":2695.41,"min":1200.0,"max":3600.0},{"current":2699.534,"min":1200.0,"max":3600.0},{"current":2696.139,"min":1200.0,"max":3600.0},{"current":2773.53,"min":1200.0,"max":3600.0},{"current":2696.294,"min":1200.0,"max":3600.0},{"current":2698.86,"min":1200.0,"max":3600.0},{"current":2694.315,"min":1200.0,"max":3600.0},{"current":2693.839,"min":1200.0,"max":3600.0},{"current":2698.011,"min":1200.0,"max":3600.0},{"current":2693.784,"min":1200.0,"max":3600.0},{"current":2779.271,"min":1200.0,"max":3600.0},{"current":2625.421,"min":1200.0,"max":3600.0},{"current":2700.113,"min":1200.0,"max":3600.0},{"current":2693.676,"min":1200.0,"max":3600.0},{"current":2763.676,"min":1200.0,"max":3600.0},{"current":2799.019,"min":1200.0,"max":3600.0},{"current":2764.737,"min":1200.0,"max":3600.0},{"current":2695.841,"min":1200.0,"max":3600.0},{"current":2715.945,"min":1200.0,"max":3600.0},{"current":2694.247,"min":1200.0,"max":3600.0},{"current":2696.32,"min":1200.0,"max":3600.0},{"current":2710.753,"min":1200.0,"max":3600.0},{"current":2784.414,"min":1200.0,"max":3600.0},{"current":2841.662,"min":1200.0,"max":3600.0},{"current":2854.191,"min":1200.0,"max":3600.0},{"current":2712.174,"min":1200.0,"max":3600.0},{"current":2720.693,"min":1200.0,"max":3600.0},{"current":2708.151,"min":1200.0,"max":3600.0},{"current":2691.821,"min":1200.0,"max":3600.0},{"current":2849.517,"min":1200.0,"max":3600.0},{"current":2707.743,"min":1200.0,"max":3600.0},{"current":2707.157,"min":1200.0,"max":3600.0},{"current":2856.282,"min":1200.0,"max":3600.0},{"current":2845.346,"min":1200.0,"max":3600.0},{"current":2694.991,"min":1200.0,"max":3600.0},{"current":2694.497,"min":1200.0,"max":3600.0},{"current":2692.448,"min":1200.0,"max":3600.0},{"current":2657.173,"min":1200.0,"max":3600.0},{"current":2691.839,"min":1200.0,"max":3600.0},{"current":2664.224,"min":1200.0,"max":3600.0},{"current":2772.012,"min":1200.0,"max":3600.0},{"current":2693.922,"min":1200.0,"max":3600.0},{"current":2702.212,"min":1200.0,"max":3600.0},{"current":2678.947,"min":1200.0,"max":3600.0},{"current":2693.945,"min":1200.0,"max":3600.0},{"current":2697.021,"min":1200.0,"max":3600.0},{"current":2695.757,"min":1200.0,"max":3600.0},{"current":2694.448,"min":1200.0,"max":3600.0},{"current":2695.176,"min":1200.0,"max":3600.0},{"current":2693.993,"min":1200.0,"max":3600.0},{"current":2695.058,"min":1200.0,"max":3600.0},{"current":2771.536,"min":1200.0,"max":3600.0},{"current":2694.578,"min":1200.0,"max":3600.0},{"current":2775.366,"min":1200.0,"max":3600.0}],"disk_write_speed":71.63090725716546,"process_ids":[2113736,2113939]} +{"timestamp":1678267256.620211,"rapl_power_draw_absolute":168.67519565384464,"rapl_estimated_attributable_power_draw":8.102692316659201,"cpu_time_seconds":{"2113736":{"user":263.53,"system":55.16,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":4.36,"system":6.25,"children_user":1.79,"children_system":61.9,"iowait":6.32}},"average_relative_cpu_utilization":0.05421878926437848,"absolute_cpu_utilization":1.0040392073455329,"relative_mem_usage":0.018462931621091198,"absolute_mem_usage":3779731456.0,"absolute_mem_percent_usage":0.006987481488629038,"mem_info_per_process":{"2113736":{"rss":3730280448,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3318923264,"pss":3482662912,"swap":0},"2113939":{"rss":448143360,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160337920,"pss":297068544,"swap":0}},"nvidia_draw_absolute":475.21000000000004,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.21,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.25,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":21.666666666666668,"mem":12.333333333333334,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":21.0,"mem":14.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.22762500000000002,0.2265,0.21962500000000001],"cpu_freq":[{"current":2695.902,"min":1200.0,"max":3600.0},{"current":2628.127,"min":1200.0,"max":3600.0},{"current":2792.765,"min":1200.0,"max":3600.0},{"current":2710.083,"min":1200.0,"max":3600.0},{"current":2708.094,"min":1200.0,"max":3600.0},{"current":2708.199,"min":1200.0,"max":3600.0},{"current":2695.892,"min":1200.0,"max":3600.0},{"current":2711.451,"min":1200.0,"max":3600.0},{"current":2730.966,"min":1200.0,"max":3600.0},{"current":2719.786,"min":1200.0,"max":3600.0},{"current":2889.392,"min":1200.0,"max":3600.0},{"current":2696.471,"min":1200.0,"max":3600.0},{"current":2731.706,"min":1200.0,"max":3600.0},{"current":2694.74,"min":1200.0,"max":3600.0},{"current":2788.607,"min":1200.0,"max":3600.0},{"current":2694.025,"min":1200.0,"max":3600.0},{"current":2735.721,"min":1200.0,"max":3600.0},{"current":2694.24,"min":1200.0,"max":3600.0},{"current":2754.546,"min":1200.0,"max":3600.0},{"current":2692.45,"min":1200.0,"max":3600.0},{"current":2696.14,"min":1200.0,"max":3600.0},{"current":2696.41,"min":1200.0,"max":3600.0},{"current":2703.18,"min":1200.0,"max":3600.0},{"current":2748.639,"min":1200.0,"max":3600.0},{"current":2770.687,"min":1200.0,"max":3600.0},{"current":2781.965,"min":1200.0,"max":3600.0},{"current":2672.618,"min":1200.0,"max":3600.0},{"current":2698.155,"min":1200.0,"max":3600.0},{"current":2694.37,"min":1200.0,"max":3600.0},{"current":2697.217,"min":1200.0,"max":3600.0},{"current":2698.049,"min":1200.0,"max":3600.0},{"current":2695.607,"min":1200.0,"max":3600.0},{"current":2694.759,"min":1200.0,"max":3600.0},{"current":2696.649,"min":1200.0,"max":3600.0},{"current":2696.566,"min":1200.0,"max":3600.0},{"current":2696.432,"min":1200.0,"max":3600.0},{"current":2686.841,"min":1200.0,"max":3600.0},{"current":2693.912,"min":1200.0,"max":3600.0},{"current":2696.409,"min":1200.0,"max":3600.0},{"current":2784.814,"min":1200.0,"max":3600.0},{"current":2694.532,"min":1200.0,"max":3600.0},{"current":2842.117,"min":1200.0,"max":3600.0},{"current":2854.649,"min":1200.0,"max":3600.0},{"current":2706.762,"min":1200.0,"max":3600.0},{"current":2726.157,"min":1200.0,"max":3600.0},{"current":2708.504,"min":1200.0,"max":3600.0},{"current":2717.876,"min":1200.0,"max":3600.0},{"current":2706.357,"min":1200.0,"max":3600.0},{"current":2707.492,"min":1200.0,"max":3600.0},{"current":2793.973,"min":1200.0,"max":3600.0},{"current":2826.012,"min":1200.0,"max":3600.0},{"current":2782.391,"min":1200.0,"max":3600.0},{"current":2696.685,"min":1200.0,"max":3600.0},{"current":2725.441,"min":1200.0,"max":3600.0},{"current":2698.983,"min":1200.0,"max":3600.0},{"current":2834.672,"min":1200.0,"max":3600.0},{"current":2707.439,"min":1200.0,"max":3600.0},{"current":2707.307,"min":1200.0,"max":3600.0},{"current":2824.73,"min":1200.0,"max":3600.0},{"current":2799.355,"min":1200.0,"max":3600.0},{"current":2697.673,"min":1200.0,"max":3600.0},{"current":2695.681,"min":1200.0,"max":3600.0},{"current":2693.598,"min":1200.0,"max":3600.0},{"current":2694.063,"min":1200.0,"max":3600.0},{"current":2711.259,"min":1200.0,"max":3600.0},{"current":2695.064,"min":1200.0,"max":3600.0},{"current":2770.432,"min":1200.0,"max":3600.0},{"current":2696.216,"min":1200.0,"max":3600.0},{"current":2695.999,"min":1200.0,"max":3600.0},{"current":2692.059,"min":1200.0,"max":3600.0},{"current":2695.25,"min":1200.0,"max":3600.0},{"current":2695.589,"min":1200.0,"max":3600.0},{"current":2697.502,"min":1200.0,"max":3600.0},{"current":2695.578,"min":1200.0,"max":3600.0},{"current":2697.548,"min":1200.0,"max":3600.0},{"current":2697.342,"min":1200.0,"max":3600.0},{"current":2785.16,"min":1200.0,"max":3600.0},{"current":2743.052,"min":1200.0,"max":3600.0},{"current":2757.054,"min":1200.0,"max":3600.0},{"current":2786.263,"min":1200.0,"max":3600.0}],"disk_write_speed":71.0919734945182,"process_ids":[2113736,2113939]} +{"timestamp":1678267272.084235,"rapl_power_draw_absolute":166.94673858384618,"rapl_estimated_attributable_power_draw":8.52071146233209,"cpu_time_seconds":{"2113736":{"user":276.39,"system":57.77,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":4.58,"system":6.53,"children_user":1.87,"children_system":65.04,"iowait":6.66}},"average_relative_cpu_utilization":0.05801889960848262,"absolute_cpu_utilization":0.9986759479040896,"relative_mem_usage":0.017216839946182814,"absolute_mem_usage":3529023488.0,"absolute_mem_percent_usage":0.006524004835368145,"mem_info_per_process":{"2113736":{"rss":3481288704,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3068215296,"pss":3231954944,"swap":0},"2113939":{"rss":448143360,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160337920,"pss":297068544,"swap":0}},"nvidia_draw_absolute":475.36,"nvidia_estimated_attributable_power_draw":69.95,"average_gpu_estimated_utilization_absolute":0.19,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":21.666666666666668,"mem":14.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.5,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":19.0,"mem":12.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.95},"cpu_count_adjusted_average_load":[0.227,0.226375,0.21974999999999997],"cpu_freq":[{"current":2694.108,"min":1200.0,"max":3600.0},{"current":2694.298,"min":1200.0,"max":3600.0},{"current":2695.398,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2693.852,"min":1200.0,"max":3600.0},{"current":2693.783,"min":1200.0,"max":3600.0},{"current":2695.161,"min":1200.0,"max":3600.0},{"current":2693.787,"min":1200.0,"max":3600.0},{"current":2695.881,"min":1200.0,"max":3600.0},{"current":2698.736,"min":1200.0,"max":3600.0},{"current":2695.029,"min":1200.0,"max":3600.0},{"current":2697.678,"min":1200.0,"max":3600.0},{"current":2733.148,"min":1200.0,"max":3600.0},{"current":2702.743,"min":1200.0,"max":3600.0},{"current":2816.734,"min":1200.0,"max":3600.0},{"current":2703.656,"min":1200.0,"max":3600.0},{"current":2697.195,"min":1200.0,"max":3600.0},{"current":2695.879,"min":1200.0,"max":3600.0},{"current":2830.344,"min":1200.0,"max":3600.0},{"current":2691.87,"min":1200.0,"max":3600.0},{"current":2696.488,"min":1200.0,"max":3600.0},{"current":2696.906,"min":1200.0,"max":3600.0},{"current":2697.976,"min":1200.0,"max":3600.0},{"current":2686.6,"min":1200.0,"max":3600.0},{"current":2689.205,"min":1200.0,"max":3600.0},{"current":2699.397,"min":1200.0,"max":3600.0},{"current":2694.793,"min":1200.0,"max":3600.0},{"current":2693.752,"min":1200.0,"max":3600.0},{"current":2694.115,"min":1200.0,"max":3600.0},{"current":2685.19,"min":1200.0,"max":3600.0},{"current":2701.652,"min":1200.0,"max":3600.0},{"current":2694.444,"min":1200.0,"max":3600.0},{"current":2694.913,"min":1200.0,"max":3600.0},{"current":2697.663,"min":1200.0,"max":3600.0},{"current":2698.892,"min":1200.0,"max":3600.0},{"current":2697.768,"min":1200.0,"max":3600.0},{"current":2684.803,"min":1200.0,"max":3600.0},{"current":2697.197,"min":1200.0,"max":3600.0},{"current":2696.32,"min":1200.0,"max":3600.0},{"current":2694.291,"min":1200.0,"max":3600.0},{"current":2726.133,"min":1200.0,"max":3600.0},{"current":2824.409,"min":1200.0,"max":3600.0},{"current":2846.013,"min":1200.0,"max":3600.0},{"current":2695.578,"min":1200.0,"max":3600.0},{"current":2709.077,"min":1200.0,"max":3600.0},{"current":2695.509,"min":1200.0,"max":3600.0},{"current":2707.915,"min":1200.0,"max":3600.0},{"current":2708.131,"min":1200.0,"max":3600.0},{"current":2713.426,"min":1200.0,"max":3600.0},{"current":2772.645,"min":1200.0,"max":3600.0},{"current":2801.755,"min":1200.0,"max":3600.0},{"current":2697.369,"min":1200.0,"max":3600.0},{"current":2697.168,"min":1200.0,"max":3600.0},{"current":2707.766,"min":1200.0,"max":3600.0},{"current":2797.534,"min":1200.0,"max":3600.0},{"current":2838.251,"min":1200.0,"max":3600.0},{"current":2696.193,"min":1200.0,"max":3600.0},{"current":2724.405,"min":1200.0,"max":3600.0},{"current":2691.273,"min":1200.0,"max":3600.0},{"current":2837.16,"min":1200.0,"max":3600.0},{"current":2693.988,"min":1200.0,"max":3600.0},{"current":2695.386,"min":1200.0,"max":3600.0},{"current":2696.28,"min":1200.0,"max":3600.0},{"current":2695.45,"min":1200.0,"max":3600.0},{"current":2691.655,"min":1200.0,"max":3600.0},{"current":2693.731,"min":1200.0,"max":3600.0},{"current":2753.952,"min":1200.0,"max":3600.0},{"current":2695.663,"min":1200.0,"max":3600.0},{"current":2693.867,"min":1200.0,"max":3600.0},{"current":2693.754,"min":1200.0,"max":3600.0},{"current":2694.302,"min":1200.0,"max":3600.0},{"current":2721.94,"min":1200.0,"max":3600.0},{"current":2695.264,"min":1200.0,"max":3600.0},{"current":2694.684,"min":1200.0,"max":3600.0},{"current":2696.187,"min":1200.0,"max":3600.0},{"current":2693.831,"min":1200.0,"max":3600.0},{"current":2656.927,"min":1200.0,"max":3600.0},{"current":2774.475,"min":1200.0,"max":3600.0},{"current":2786.177,"min":1200.0,"max":3600.0},{"current":2773.635,"min":1200.0,"max":3600.0}],"disk_write_speed":71.50370411060621,"process_ids":[2113736,2113939]} +{"timestamp":1678267287.440234,"rapl_power_draw_absolute":168.77648168779518,"rapl_estimated_attributable_power_draw":8.036789979487285,"cpu_time_seconds":{"2113736":{"user":289.13,"system":60.39,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":4.8,"system":6.81,"children_user":1.97,"children_system":68.15,"iowait":7.0}},"average_relative_cpu_utilization":0.0541249944613861,"absolute_cpu_utilization":0.9987384797510827,"relative_mem_usage":0.016593020451835833,"absolute_mem_usage":3388919808.0,"absolute_mem_percent_usage":0.006264999167403355,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2928111616,"pss":3091851264,"swap":0},"2113939":{"rss":448143360,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160337920,"pss":297068544,"swap":0}},"nvidia_draw_absolute":623.72,"nvidia_estimated_attributable_power_draw":217.08,"average_gpu_estimated_utilization_absolute":0.256,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":17.333333333333332,"mem":11.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":1.5,"mem":0.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.6,"mem":17.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":217.08},"cpu_count_adjusted_average_load":[0.22974999999999998,0.22712500000000002,0.220125],"cpu_freq":[{"current":2695.735,"min":1200.0,"max":3600.0},{"current":2709.47,"min":1200.0,"max":3600.0},{"current":2738.65,"min":1200.0,"max":3600.0},{"current":2707.611,"min":1200.0,"max":3600.0},{"current":2699.693,"min":1200.0,"max":3600.0},{"current":2708.257,"min":1200.0,"max":3600.0},{"current":2709.502,"min":1200.0,"max":3600.0},{"current":2701.379,"min":1200.0,"max":3600.0},{"current":2708.771,"min":1200.0,"max":3600.0},{"current":2691.4,"min":1200.0,"max":3600.0},{"current":2693.863,"min":1200.0,"max":3600.0},{"current":2695.848,"min":1200.0,"max":3600.0},{"current":2710.953,"min":1200.0,"max":3600.0},{"current":2702.139,"min":1200.0,"max":3600.0},{"current":2826.933,"min":1200.0,"max":3600.0},{"current":2692.109,"min":1200.0,"max":3600.0},{"current":2700.798,"min":1200.0,"max":3600.0},{"current":2697.623,"min":1200.0,"max":3600.0},{"current":2780.814,"min":1200.0,"max":3600.0},{"current":2742.863,"min":1200.0,"max":3600.0},{"current":2699.973,"min":1200.0,"max":3600.0},{"current":2693.781,"min":1200.0,"max":3600.0},{"current":2695.634,"min":1200.0,"max":3600.0},{"current":2681.258,"min":1200.0,"max":3600.0},{"current":2692.113,"min":1200.0,"max":3600.0},{"current":2696.182,"min":1200.0,"max":3600.0},{"current":2696.968,"min":1200.0,"max":3600.0},{"current":2709.852,"min":1200.0,"max":3600.0},{"current":2694.116,"min":1200.0,"max":3600.0},{"current":2773.31,"min":1200.0,"max":3600.0},{"current":2696.251,"min":1200.0,"max":3600.0},{"current":2695.535,"min":1200.0,"max":3600.0},{"current":2693.787,"min":1200.0,"max":3600.0},{"current":2695.181,"min":1200.0,"max":3600.0},{"current":2694.015,"min":1200.0,"max":3600.0},{"current":2695.041,"min":1200.0,"max":3600.0},{"current":2759.213,"min":1200.0,"max":3600.0},{"current":2693.886,"min":1200.0,"max":3600.0},{"current":2695.893,"min":1200.0,"max":3600.0},{"current":2695.92,"min":1200.0,"max":3600.0},{"current":2715.438,"min":1200.0,"max":3600.0},{"current":2850.469,"min":1200.0,"max":3600.0},{"current":2841.62,"min":1200.0,"max":3600.0},{"current":2706.345,"min":1200.0,"max":3600.0},{"current":2717.602,"min":1200.0,"max":3600.0},{"current":2702.769,"min":1200.0,"max":3600.0},{"current":2695.867,"min":1200.0,"max":3600.0},{"current":2695.757,"min":1200.0,"max":3600.0},{"current":2708.186,"min":1200.0,"max":3600.0},{"current":2812.204,"min":1200.0,"max":3600.0},{"current":2809.368,"min":1200.0,"max":3600.0},{"current":2696.159,"min":1200.0,"max":3600.0},{"current":2727.824,"min":1200.0,"max":3600.0},{"current":2707.814,"min":1200.0,"max":3600.0},{"current":2694.813,"min":1200.0,"max":3600.0},{"current":2811.317,"min":1200.0,"max":3600.0},{"current":2716.477,"min":1200.0,"max":3600.0},{"current":2694.62,"min":1200.0,"max":3600.0},{"current":2655.26,"min":1200.0,"max":3600.0},{"current":2747.397,"min":1200.0,"max":3600.0},{"current":2694.11,"min":1200.0,"max":3600.0},{"current":2695.727,"min":1200.0,"max":3600.0},{"current":2693.774,"min":1200.0,"max":3600.0},{"current":2696.149,"min":1200.0,"max":3600.0},{"current":2694.3,"min":1200.0,"max":3600.0},{"current":2695.268,"min":1200.0,"max":3600.0},{"current":2773.01,"min":1200.0,"max":3600.0},{"current":2696.284,"min":1200.0,"max":3600.0},{"current":2695.226,"min":1200.0,"max":3600.0},{"current":2693.628,"min":1200.0,"max":3600.0},{"current":2695.145,"min":1200.0,"max":3600.0},{"current":2697.265,"min":1200.0,"max":3600.0},{"current":2696.753,"min":1200.0,"max":3600.0},{"current":2697.401,"min":1200.0,"max":3600.0},{"current":2694.209,"min":1200.0,"max":3600.0},{"current":2694.22,"min":1200.0,"max":3600.0},{"current":2691.029,"min":1200.0,"max":3600.0},{"current":2766.996,"min":1200.0,"max":3600.0},{"current":2770.544,"min":1200.0,"max":3600.0},{"current":2746.104,"min":1200.0,"max":3600.0}],"disk_write_speed":70.98919658695081,"process_ids":[2113736,2113939]} +{"timestamp":1678267303.344235,"rapl_power_draw_absolute":167.48024540587068,"rapl_estimated_attributable_power_draw":8.513305711062229,"cpu_time_seconds":{"2113736":{"user":302.51,"system":62.92,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":5.03,"system":7.11,"children_user":2.05,"children_system":71.35,"iowait":7.34}},"average_relative_cpu_utilization":0.057303453476596745,"absolute_cpu_utilization":0.9986453225383503,"relative_mem_usage":0.019538772403763463,"absolute_mem_usage":3991035904.0,"absolute_mem_percent_usage":0.007378113980924537,"mem_info_per_process":{"2113736":{"rss":3959975936,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3530227712,"pss":3693967360,"swap":0},"2113939":{"rss":448143360,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160337920,"pss":297068544,"swap":0}},"nvidia_draw_absolute":582.54,"nvidia_estimated_attributable_power_draw":177.36,"average_gpu_estimated_utilization_absolute":0.20199999999999999,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":20.2,"mem":13.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":177.36},"cpu_count_adjusted_average_load":[0.22949999999999998,0.22725,0.22025],"cpu_freq":[{"current":2695.64,"min":1200.0,"max":3600.0},{"current":2624.859,"min":1200.0,"max":3600.0},{"current":2657.988,"min":1200.0,"max":3600.0},{"current":2710.134,"min":1200.0,"max":3600.0},{"current":2710.167,"min":1200.0,"max":3600.0},{"current":2738.886,"min":1200.0,"max":3600.0},{"current":2711.456,"min":1200.0,"max":3600.0},{"current":2702.971,"min":1200.0,"max":3600.0},{"current":2712.652,"min":1200.0,"max":3600.0},{"current":2696.281,"min":1200.0,"max":3600.0},{"current":2691.447,"min":1200.0,"max":3600.0},{"current":2696.637,"min":1200.0,"max":3600.0},{"current":2722.156,"min":1200.0,"max":3600.0},{"current":2710.774,"min":1200.0,"max":3600.0},{"current":2818.476,"min":1200.0,"max":3600.0},{"current":2625.766,"min":1200.0,"max":3600.0},{"current":2702.035,"min":1200.0,"max":3600.0},{"current":2703.04,"min":1200.0,"max":3600.0},{"current":2808.223,"min":1200.0,"max":3600.0},{"current":2695.4,"min":1200.0,"max":3600.0},{"current":2694.877,"min":1200.0,"max":3600.0},{"current":2697.86,"min":1200.0,"max":3600.0},{"current":2696.179,"min":1200.0,"max":3600.0},{"current":2697.63,"min":1200.0,"max":3600.0},{"current":2778.888,"min":1200.0,"max":3600.0},{"current":2777.287,"min":1200.0,"max":3600.0},{"current":2694.861,"min":1200.0,"max":3600.0},{"current":2695.363,"min":1200.0,"max":3600.0},{"current":2695.511,"min":1200.0,"max":3600.0},{"current":2702.2,"min":1200.0,"max":3600.0},{"current":2776.931,"min":1200.0,"max":3600.0},{"current":2694.313,"min":1200.0,"max":3600.0},{"current":2696.664,"min":1200.0,"max":3600.0},{"current":2698.138,"min":1200.0,"max":3600.0},{"current":2697.981,"min":1200.0,"max":3600.0},{"current":2700.076,"min":1200.0,"max":3600.0},{"current":2768.59,"min":1200.0,"max":3600.0},{"current":2695.3,"min":1200.0,"max":3600.0},{"current":2698.757,"min":1200.0,"max":3600.0},{"current":2696.968,"min":1200.0,"max":3600.0},{"current":2693.615,"min":1200.0,"max":3600.0},{"current":2722.801,"min":1200.0,"max":3600.0},{"current":2748.602,"min":1200.0,"max":3600.0},{"current":2696.843,"min":1200.0,"max":3600.0},{"current":2693.995,"min":1200.0,"max":3600.0},{"current":2694.422,"min":1200.0,"max":3600.0},{"current":2696.78,"min":1200.0,"max":3600.0},{"current":2696.384,"min":1200.0,"max":3600.0},{"current":2698.284,"min":1200.0,"max":3600.0},{"current":2730.023,"min":1200.0,"max":3600.0},{"current":2764.507,"min":1200.0,"max":3600.0},{"current":2722.843,"min":1200.0,"max":3600.0},{"current":2712.881,"min":1200.0,"max":3600.0},{"current":2700.427,"min":1200.0,"max":3600.0},{"current":2695.176,"min":1200.0,"max":3600.0},{"current":2778.119,"min":1200.0,"max":3600.0},{"current":2709.198,"min":1200.0,"max":3600.0},{"current":2709.889,"min":1200.0,"max":3600.0},{"current":2716.149,"min":1200.0,"max":3600.0},{"current":2839.043,"min":1200.0,"max":3600.0},{"current":2694.638,"min":1200.0,"max":3600.0},{"current":2695.575,"min":1200.0,"max":3600.0},{"current":2694.472,"min":1200.0,"max":3600.0},{"current":2695.375,"min":1200.0,"max":3600.0},{"current":2693.549,"min":1200.0,"max":3600.0},{"current":2767.54,"min":1200.0,"max":3600.0},{"current":2698.34,"min":1200.0,"max":3600.0},{"current":2695.048,"min":1200.0,"max":3600.0},{"current":2696.793,"min":1200.0,"max":3600.0},{"current":2638.892,"min":1200.0,"max":3600.0},{"current":2623.398,"min":1200.0,"max":3600.0},{"current":2694.293,"min":1200.0,"max":3600.0},{"current":2695.235,"min":1200.0,"max":3600.0},{"current":2696.904,"min":1200.0,"max":3600.0},{"current":2696.188,"min":1200.0,"max":3600.0},{"current":2697.138,"min":1200.0,"max":3600.0},{"current":2654.947,"min":1200.0,"max":3600.0},{"current":2758.889,"min":1200.0,"max":3600.0},{"current":2762.148,"min":1200.0,"max":3600.0},{"current":2763.167,"min":1200.0,"max":3600.0}],"disk_write_speed":70.1403941836337,"process_ids":[2113736,2113939]} +{"timestamp":1678267319.080176,"rapl_power_draw_absolute":168.2959458117831,"rapl_estimated_attributable_power_draw":8.356024491632292,"cpu_time_seconds":{"2113736":{"user":315.71,"system":65.44,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":5.24,"system":7.46,"children_user":2.16,"children_system":74.48,"iowait":7.68}},"average_relative_cpu_utilization":0.056066214556708426,"absolute_cpu_utilization":0.99870423939709,"relative_mem_usage":0.019086059554629786,"absolute_mem_usage":3923648512.0,"absolute_mem_percent_usage":0.007253536835789127,"mem_info_per_process":{"2113736":{"rss":3872792576,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3462836224,"pss":3626575872,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160342016,"pss":297072640,"swap":0}},"nvidia_draw_absolute":479.13000000000005,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.19,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":23.666666666666668,"mem":15.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":13.333333333333334,"mem":7.333333333333333,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":19.0,"mem":12.25,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23125,0.22774999999999998,0.2205],"cpu_freq":[{"current":2695.557,"min":1200.0,"max":3600.0},{"current":2691.212,"min":1200.0,"max":3600.0},{"current":2695.111,"min":1200.0,"max":3600.0},{"current":2700.11,"min":1200.0,"max":3600.0},{"current":2766.118,"min":1200.0,"max":3600.0},{"current":2701.174,"min":1200.0,"max":3600.0},{"current":2697.147,"min":1200.0,"max":3600.0},{"current":2696.018,"min":1200.0,"max":3600.0},{"current":2708.153,"min":1200.0,"max":3600.0},{"current":2717.447,"min":1200.0,"max":3600.0},{"current":2693.49,"min":1200.0,"max":3600.0},{"current":2699.919,"min":1200.0,"max":3600.0},{"current":2740.62,"min":1200.0,"max":3600.0},{"current":2745.274,"min":1200.0,"max":3600.0},{"current":2828.875,"min":1200.0,"max":3600.0},{"current":2693.177,"min":1200.0,"max":3600.0},{"current":2710.429,"min":1200.0,"max":3600.0},{"current":2696.954,"min":1200.0,"max":3600.0},{"current":2835.113,"min":1200.0,"max":3600.0},{"current":2620.396,"min":1200.0,"max":3600.0},{"current":2694.782,"min":1200.0,"max":3600.0},{"current":2695.09,"min":1200.0,"max":3600.0},{"current":2693.886,"min":1200.0,"max":3600.0},{"current":2695.176,"min":1200.0,"max":3600.0},{"current":2690.156,"min":1200.0,"max":3600.0},{"current":2684.769,"min":1200.0,"max":3600.0},{"current":2697.743,"min":1200.0,"max":3600.0},{"current":2695.697,"min":1200.0,"max":3600.0},{"current":2695.032,"min":1200.0,"max":3600.0},{"current":2697.598,"min":1200.0,"max":3600.0},{"current":2690.532,"min":1200.0,"max":3600.0},{"current":2697.871,"min":1200.0,"max":3600.0},{"current":2694.099,"min":1200.0,"max":3600.0},{"current":2696.35,"min":1200.0,"max":3600.0},{"current":2696.474,"min":1200.0,"max":3600.0},{"current":2699.264,"min":1200.0,"max":3600.0},{"current":2783.595,"min":1200.0,"max":3600.0},{"current":2743.469,"min":1200.0,"max":3600.0},{"current":2698.32,"min":1200.0,"max":3600.0},{"current":2608.299,"min":1200.0,"max":3600.0},{"current":2728.822,"min":1200.0,"max":3600.0},{"current":2808.62,"min":1200.0,"max":3600.0},{"current":2805.772,"min":1200.0,"max":3600.0},{"current":2706.366,"min":1200.0,"max":3600.0},{"current":2745.225,"min":1200.0,"max":3600.0},{"current":2694.074,"min":1200.0,"max":3600.0},{"current":2695.757,"min":1200.0,"max":3600.0},{"current":2710.531,"min":1200.0,"max":3600.0},{"current":2695.135,"min":1200.0,"max":3600.0},{"current":2821.828,"min":1200.0,"max":3600.0},{"current":2816.608,"min":1200.0,"max":3600.0},{"current":2696.591,"min":1200.0,"max":3600.0},{"current":2698.569,"min":1200.0,"max":3600.0},{"current":2698.713,"min":1200.0,"max":3600.0},{"current":2694.632,"min":1200.0,"max":3600.0},{"current":2770.461,"min":1200.0,"max":3600.0},{"current":2693.593,"min":1200.0,"max":3600.0},{"current":2694.663,"min":1200.0,"max":3600.0},{"current":2691.186,"min":1200.0,"max":3600.0},{"current":2845.674,"min":1200.0,"max":3600.0},{"current":2693.78,"min":1200.0,"max":3600.0},{"current":2694.424,"min":1200.0,"max":3600.0},{"current":2695.823,"min":1200.0,"max":3600.0},{"current":2693.895,"min":1200.0,"max":3600.0},{"current":2769.601,"min":1200.0,"max":3600.0},{"current":2695.531,"min":1200.0,"max":3600.0},{"current":2712.975,"min":1200.0,"max":3600.0},{"current":2694.813,"min":1200.0,"max":3600.0},{"current":2697.518,"min":1200.0,"max":3600.0},{"current":2697.892,"min":1200.0,"max":3600.0},{"current":2779.671,"min":1200.0,"max":3600.0},{"current":2694.141,"min":1200.0,"max":3600.0},{"current":2694.568,"min":1200.0,"max":3600.0},{"current":2696.654,"min":1200.0,"max":3600.0},{"current":2696.256,"min":1200.0,"max":3600.0},{"current":2696.501,"min":1200.0,"max":3600.0},{"current":2638.962,"min":1200.0,"max":3600.0},{"current":2781.443,"min":1200.0,"max":3600.0},{"current":2782.528,"min":1200.0,"max":3600.0},{"current":2789.494,"min":1200.0,"max":3600.0}],"disk_write_speed":70.22390269152584,"process_ids":[2113736,2113939]} +{"timestamp":1678267334.664193,"rapl_power_draw_absolute":167.96022346301822,"rapl_estimated_attributable_power_draw":8.237290954781312,"cpu_time_seconds":{"2113736":{"user":328.82,"system":67.92,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":5.46,"system":7.75,"children_user":2.23,"children_system":77.62,"iowait":8.03}},"average_relative_cpu_utilization":0.055521717717469984,"absolute_cpu_utilization":0.9986924586274232,"relative_mem_usage":0.018331227142679152,"absolute_mem_usage":3755024384.0,"absolute_mem_percent_usage":0.006941806230942629,"mem_info_per_process":{"2113736":{"rss":3706183680,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3294212096,"pss":3457951744,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160342016,"pss":297072640,"swap":0}},"nvidia_draw_absolute":476.61,"nvidia_estimated_attributable_power_draw":69.56,"average_gpu_estimated_utilization_absolute":0.2,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":14.5,"mem":9.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":16.0,"mem":9.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":16.333333333333332,"mem":9.333333333333334,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":20.0,"mem":13.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.56},"cpu_count_adjusted_average_load":[0.22875,0.22737500000000002,0.2205],"cpu_freq":[{"current":2695.661,"min":1200.0,"max":3600.0},{"current":2694.172,"min":1200.0,"max":3600.0},{"current":2702.064,"min":1200.0,"max":3600.0},{"current":2710.058,"min":1200.0,"max":3600.0},{"current":2691.73,"min":1200.0,"max":3600.0},{"current":2713.128,"min":1200.0,"max":3600.0},{"current":2780.056,"min":1200.0,"max":3600.0},{"current":2741.747,"min":1200.0,"max":3600.0},{"current":2702.75,"min":1200.0,"max":3600.0},{"current":2664.383,"min":1200.0,"max":3600.0},{"current":2779.872,"min":1200.0,"max":3600.0},{"current":2698.827,"min":1200.0,"max":3600.0},{"current":2711.773,"min":1200.0,"max":3600.0},{"current":2698.015,"min":1200.0,"max":3600.0},{"current":2697.187,"min":1200.0,"max":3600.0},{"current":2654.544,"min":1200.0,"max":3600.0},{"current":2820.349,"min":1200.0,"max":3600.0},{"current":2703.2,"min":1200.0,"max":3600.0},{"current":2845.069,"min":1200.0,"max":3600.0},{"current":2683.773,"min":1200.0,"max":3600.0},{"current":2777.048,"min":1200.0,"max":3600.0},{"current":2779.606,"min":1200.0,"max":3600.0},{"current":2694.681,"min":1200.0,"max":3600.0},{"current":2695.882,"min":1200.0,"max":3600.0},{"current":2695.211,"min":1200.0,"max":3600.0},{"current":2691.185,"min":1200.0,"max":3600.0},{"current":2692.386,"min":1200.0,"max":3600.0},{"current":2695.5,"min":1200.0,"max":3600.0},{"current":2694.993,"min":1200.0,"max":3600.0},{"current":2698.639,"min":1200.0,"max":3600.0},{"current":2781.694,"min":1200.0,"max":3600.0},{"current":2767.185,"min":1200.0,"max":3600.0},{"current":2732.006,"min":1200.0,"max":3600.0},{"current":2696.772,"min":1200.0,"max":3600.0},{"current":2695.314,"min":1200.0,"max":3600.0},{"current":2696.521,"min":1200.0,"max":3600.0},{"current":2731.751,"min":1200.0,"max":3600.0},{"current":2694.037,"min":1200.0,"max":3600.0},{"current":2699.87,"min":1200.0,"max":3600.0},{"current":2695.812,"min":1200.0,"max":3600.0},{"current":2696.114,"min":1200.0,"max":3600.0},{"current":2817.513,"min":1200.0,"max":3600.0},{"current":2707.534,"min":1200.0,"max":3600.0},{"current":2707.327,"min":1200.0,"max":3600.0},{"current":2834.397,"min":1200.0,"max":3600.0},{"current":2706.874,"min":1200.0,"max":3600.0},{"current":2721.575,"min":1200.0,"max":3600.0},{"current":2707.586,"min":1200.0,"max":3600.0},{"current":2697.175,"min":1200.0,"max":3600.0},{"current":2809.893,"min":1200.0,"max":3600.0},{"current":2805.8,"min":1200.0,"max":3600.0},{"current":2696.697,"min":1200.0,"max":3600.0},{"current":2694.371,"min":1200.0,"max":3600.0},{"current":2709.67,"min":1200.0,"max":3600.0},{"current":2695.373,"min":1200.0,"max":3600.0},{"current":2817.604,"min":1200.0,"max":3600.0},{"current":2693.008,"min":1200.0,"max":3600.0},{"current":2694.152,"min":1200.0,"max":3600.0},{"current":2694.139,"min":1200.0,"max":3600.0},{"current":2818.089,"min":1200.0,"max":3600.0},{"current":2693.465,"min":1200.0,"max":3600.0},{"current":2625.495,"min":1200.0,"max":3600.0},{"current":2695.601,"min":1200.0,"max":3600.0},{"current":2694.69,"min":1200.0,"max":3600.0},{"current":2693.948,"min":1200.0,"max":3600.0},{"current":2633.127,"min":1200.0,"max":3600.0},{"current":2758.14,"min":1200.0,"max":3600.0},{"current":2697.69,"min":1200.0,"max":3600.0},{"current":2693.457,"min":1200.0,"max":3600.0},{"current":2694.114,"min":1200.0,"max":3600.0},{"current":2629.429,"min":1200.0,"max":3600.0},{"current":2690.847,"min":1200.0,"max":3600.0},{"current":2697.324,"min":1200.0,"max":3600.0},{"current":2695.865,"min":1200.0,"max":3600.0},{"current":2697.074,"min":1200.0,"max":3600.0},{"current":2696.43,"min":1200.0,"max":3600.0},{"current":2691.978,"min":1200.0,"max":3600.0},{"current":2793.449,"min":1200.0,"max":3600.0},{"current":2804.464,"min":1200.0,"max":3600.0},{"current":2693.461,"min":1200.0,"max":3600.0}],"disk_write_speed":71.47371619913717,"process_ids":[2113736,2113939]} +{"timestamp":1678267350.452241,"rapl_power_draw_absolute":166.6237150814162,"rapl_estimated_attributable_power_draw":8.4374930941225,"cpu_time_seconds":{"2113736":{"user":341.89,"system":70.65,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":5.62,"system":8.08,"children_user":2.34,"children_system":80.74,"iowait":8.36}},"average_relative_cpu_utilization":0.05737746483267024,"absolute_cpu_utilization":1.0036963387915858,"relative_mem_usage":0.018206408736973562,"absolute_mem_usage":3729677312.0,"absolute_mem_percent_usage":0.006894947823552391,"mem_info_per_process":{"2113736":{"rss":3664277504,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3268866048,"pss":3432602624,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":473.31,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.16333333333333333,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.333333333333333,"mem":3.3333333333333335,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":17.5,"mem":10.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":16.333333333333332,"mem":10.666666666666666,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.231,0.227875,0.22087500000000002],"cpu_freq":[{"current":2694.229,"min":1200.0,"max":3600.0},{"current":2688.486,"min":1200.0,"max":3600.0},{"current":2697.147,"min":1200.0,"max":3600.0},{"current":2695.422,"min":1200.0,"max":3600.0},{"current":2622.767,"min":1200.0,"max":3600.0},{"current":2701.644,"min":1200.0,"max":3600.0},{"current":2700.947,"min":1200.0,"max":3600.0},{"current":2732.579,"min":1200.0,"max":3600.0},{"current":2759.549,"min":1200.0,"max":3600.0},{"current":2697.281,"min":1200.0,"max":3600.0},{"current":2693.51,"min":1200.0,"max":3600.0},{"current":2712.105,"min":1200.0,"max":3600.0},{"current":2706.571,"min":1200.0,"max":3600.0},{"current":2708.187,"min":1200.0,"max":3600.0},{"current":2700.745,"min":1200.0,"max":3600.0},{"current":2633.198,"min":1200.0,"max":3600.0},{"current":2836.029,"min":1200.0,"max":3600.0},{"current":2694.073,"min":1200.0,"max":3600.0},{"current":2817.423,"min":1200.0,"max":3600.0},{"current":2694.285,"min":1200.0,"max":3600.0},{"current":2696.757,"min":1200.0,"max":3600.0},{"current":2693.612,"min":1200.0,"max":3600.0},{"current":2694.103,"min":1200.0,"max":3600.0},{"current":2696.233,"min":1200.0,"max":3600.0},{"current":2694.301,"min":1200.0,"max":3600.0},{"current":2691.522,"min":1200.0,"max":3600.0},{"current":2691.363,"min":1200.0,"max":3600.0},{"current":2704.525,"min":1200.0,"max":3600.0},{"current":2694.923,"min":1200.0,"max":3600.0},{"current":2699.418,"min":1200.0,"max":3600.0},{"current":2676.491,"min":1200.0,"max":3600.0},{"current":2685.725,"min":1200.0,"max":3600.0},{"current":2695.402,"min":1200.0,"max":3600.0},{"current":2696.185,"min":1200.0,"max":3600.0},{"current":2695.57,"min":1200.0,"max":3600.0},{"current":2699.347,"min":1200.0,"max":3600.0},{"current":2690.259,"min":1200.0,"max":3600.0},{"current":2692.152,"min":1200.0,"max":3600.0},{"current":2695.603,"min":1200.0,"max":3600.0},{"current":2698.056,"min":1200.0,"max":3600.0},{"current":2694.428,"min":1200.0,"max":3600.0},{"current":2719.85,"min":1200.0,"max":3600.0},{"current":2694.298,"min":1200.0,"max":3600.0},{"current":2696.401,"min":1200.0,"max":3600.0},{"current":2748.556,"min":1200.0,"max":3600.0},{"current":2695.641,"min":1200.0,"max":3600.0},{"current":2694.688,"min":1200.0,"max":3600.0},{"current":2694.079,"min":1200.0,"max":3600.0},{"current":2699.675,"min":1200.0,"max":3600.0},{"current":2762.895,"min":1200.0,"max":3600.0},{"current":2738.748,"min":1200.0,"max":3600.0},{"current":2695.416,"min":1200.0,"max":3600.0},{"current":2694.494,"min":1200.0,"max":3600.0},{"current":2693.921,"min":1200.0,"max":3600.0},{"current":2694.415,"min":1200.0,"max":3600.0},{"current":2748.026,"min":1200.0,"max":3600.0},{"current":2695.617,"min":1200.0,"max":3600.0},{"current":2694.522,"min":1200.0,"max":3600.0},{"current":2691.46,"min":1200.0,"max":3600.0},{"current":2738.892,"min":1200.0,"max":3600.0},{"current":2687.81,"min":1200.0,"max":3600.0},{"current":2694.881,"min":1200.0,"max":3600.0},{"current":2591.776,"min":1200.0,"max":3600.0},{"current":2695.843,"min":1200.0,"max":3600.0},{"current":2694.144,"min":1200.0,"max":3600.0},{"current":2695.633,"min":1200.0,"max":3600.0},{"current":2721.224,"min":1200.0,"max":3600.0},{"current":2694.561,"min":1200.0,"max":3600.0},{"current":2697.074,"min":1200.0,"max":3600.0},{"current":2693.965,"min":1200.0,"max":3600.0},{"current":2695.227,"min":1200.0,"max":3600.0},{"current":2691.643,"min":1200.0,"max":3600.0},{"current":2693.695,"min":1200.0,"max":3600.0},{"current":2697.93,"min":1200.0,"max":3600.0},{"current":2695.137,"min":1200.0,"max":3600.0},{"current":2696.96,"min":1200.0,"max":3600.0},{"current":2763.943,"min":1200.0,"max":3600.0},{"current":2755.109,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2697.031,"min":1200.0,"max":3600.0}],"disk_write_speed":70.90016359234515,"process_ids":[2113736,2113939]} +{"timestamp":1678267365.952241,"rapl_power_draw_absolute":166.21176481739604,"rapl_estimated_attributable_power_draw":8.513621121414786,"cpu_time_seconds":{"2113736":{"user":354.93,"system":73.1,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":5.83,"system":8.43,"children_user":2.45,"children_system":83.87,"iowait":8.7}},"average_relative_cpu_utilization":0.05823791935519643,"absolute_cpu_utilization":0.9987051618061781,"relative_mem_usage":0.017144445156801486,"absolute_mem_usage":3517089792.0,"absolute_mem_percent_usage":0.006501943352730653,"mem_info_per_process":{"2113736":{"rss":3467472896,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3056279552,"pss":3220015104,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":478.4,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.23600000000000002,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":24.666666666666668,"mem":15.666666666666666,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":8.666666666666666,"mem":5.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.6,"mem":15.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23337500000000003,0.228625,0.22112500000000002],"cpu_freq":[{"current":2695.01,"min":1200.0,"max":3600.0},{"current":2691.597,"min":1200.0,"max":3600.0},{"current":2711.509,"min":1200.0,"max":3600.0},{"current":2701.694,"min":1200.0,"max":3600.0},{"current":2694.137,"min":1200.0,"max":3600.0},{"current":2740.312,"min":1200.0,"max":3600.0},{"current":2766.031,"min":1200.0,"max":3600.0},{"current":2696.127,"min":1200.0,"max":3600.0},{"current":2698.331,"min":1200.0,"max":3600.0},{"current":2694.246,"min":1200.0,"max":3600.0},{"current":2629.116,"min":1200.0,"max":3600.0},{"current":2712.839,"min":1200.0,"max":3600.0},{"current":2778.96,"min":1200.0,"max":3600.0},{"current":2742.079,"min":1200.0,"max":3600.0},{"current":2709.011,"min":1200.0,"max":3600.0},{"current":2694.918,"min":1200.0,"max":3600.0},{"current":2842.366,"min":1200.0,"max":3600.0},{"current":2734.874,"min":1200.0,"max":3600.0},{"current":2839.461,"min":1200.0,"max":3600.0},{"current":2674.914,"min":1200.0,"max":3600.0},{"current":2726.401,"min":1200.0,"max":3600.0},{"current":2695.909,"min":1200.0,"max":3600.0},{"current":2686.403,"min":1200.0,"max":3600.0},{"current":2699.432,"min":1200.0,"max":3600.0},{"current":2698.339,"min":1200.0,"max":3600.0},{"current":2745.025,"min":1200.0,"max":3600.0},{"current":2655.136,"min":1200.0,"max":3600.0},{"current":2697.429,"min":1200.0,"max":3600.0},{"current":2697.946,"min":1200.0,"max":3600.0},{"current":2697.533,"min":1200.0,"max":3600.0},{"current":2771.83,"min":1200.0,"max":3600.0},{"current":2862.365,"min":1200.0,"max":3600.0},{"current":2701.575,"min":1200.0,"max":3600.0},{"current":2696.616,"min":1200.0,"max":3600.0},{"current":2695.389,"min":1200.0,"max":3600.0},{"current":2697.112,"min":1200.0,"max":3600.0},{"current":2682.276,"min":1200.0,"max":3600.0},{"current":2694.106,"min":1200.0,"max":3600.0},{"current":2698.097,"min":1200.0,"max":3600.0},{"current":2695.513,"min":1200.0,"max":3600.0},{"current":2727.001,"min":1200.0,"max":3600.0},{"current":2800.276,"min":1200.0,"max":3600.0},{"current":2698.656,"min":1200.0,"max":3600.0},{"current":2694.448,"min":1200.0,"max":3600.0},{"current":2707.713,"min":1200.0,"max":3600.0},{"current":2694.296,"min":1200.0,"max":3600.0},{"current":2693.764,"min":1200.0,"max":3600.0},{"current":2697.99,"min":1200.0,"max":3600.0},{"current":2692.38,"min":1200.0,"max":3600.0},{"current":2695.11,"min":1200.0,"max":3600.0},{"current":2690.387,"min":1200.0,"max":3600.0},{"current":2694.788,"min":1200.0,"max":3600.0},{"current":2694.052,"min":1200.0,"max":3600.0},{"current":2697.999,"min":1200.0,"max":3600.0},{"current":2694.453,"min":1200.0,"max":3600.0},{"current":2763.581,"min":1200.0,"max":3600.0},{"current":2691.395,"min":1200.0,"max":3600.0},{"current":2703.551,"min":1200.0,"max":3600.0},{"current":2631.278,"min":1200.0,"max":3600.0},{"current":2869.918,"min":1200.0,"max":3600.0},{"current":2865.612,"min":1200.0,"max":3600.0},{"current":2695.835,"min":1200.0,"max":3600.0},{"current":2694.069,"min":1200.0,"max":3600.0},{"current":2694.019,"min":1200.0,"max":3600.0},{"current":2694.433,"min":1200.0,"max":3600.0},{"current":2669.03,"min":1200.0,"max":3600.0},{"current":2707.427,"min":1200.0,"max":3600.0},{"current":2695.351,"min":1200.0,"max":3600.0},{"current":2696.354,"min":1200.0,"max":3600.0},{"current":2694.581,"min":1200.0,"max":3600.0},{"current":2715.777,"min":1200.0,"max":3600.0},{"current":2693.695,"min":1200.0,"max":3600.0},{"current":2694.917,"min":1200.0,"max":3600.0},{"current":2697.627,"min":1200.0,"max":3600.0},{"current":2697.883,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2693.937,"min":1200.0,"max":3600.0},{"current":2677.864,"min":1200.0,"max":3600.0},{"current":2702.817,"min":1200.0,"max":3600.0},{"current":2694.714,"min":1200.0,"max":3600.0}],"disk_write_speed":71.58750561814799,"process_ids":[2113736,2113939]} +{"timestamp":1678267381.844207,"rapl_power_draw_absolute":166.6414317389927,"rapl_estimated_attributable_power_draw":8.483941759161896,"cpu_time_seconds":{"2113736":{"user":368.32,"system":75.62,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":6.05,"system":8.72,"children_user":2.55,"children_system":87.02,"iowait":9.04}},"average_relative_cpu_utilization":0.05802510351317832,"absolute_cpu_utilization":1.003708052678362,"relative_mem_usage":0.01713605394491362,"absolute_mem_usage":3505573888.0,"absolute_mem_percent_usage":0.006480654230219821,"mem_info_per_process":{"2113736":{"rss":3443093504,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3044761600,"pss":3208499200,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":463.6,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.23399999999999999,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":7.666666666666667,"mem":4.666666666666667,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.3333333333333335,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.4,"mem":15.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23424999999999999,0.229,0.22149999999999997],"cpu_freq":[{"current":2694.155,"min":1200.0,"max":3600.0},{"current":2660.112,"min":1200.0,"max":3600.0},{"current":2699.036,"min":1200.0,"max":3600.0},{"current":2694.551,"min":1200.0,"max":3600.0},{"current":2682.431,"min":1200.0,"max":3600.0},{"current":2747.744,"min":1200.0,"max":3600.0},{"current":2695.865,"min":1200.0,"max":3600.0},{"current":2696.498,"min":1200.0,"max":3600.0},{"current":2698.018,"min":1200.0,"max":3600.0},{"current":2687.487,"min":1200.0,"max":3600.0},{"current":2623.172,"min":1200.0,"max":3600.0},{"current":2710.496,"min":1200.0,"max":3600.0},{"current":2710.04,"min":1200.0,"max":3600.0},{"current":2707.992,"min":1200.0,"max":3600.0},{"current":2722.59,"min":1200.0,"max":3600.0},{"current":2695.262,"min":1200.0,"max":3600.0},{"current":2798.871,"min":1200.0,"max":3600.0},{"current":2712.14,"min":1200.0,"max":3600.0},{"current":2847.43,"min":1200.0,"max":3600.0},{"current":2694.691,"min":1200.0,"max":3600.0},{"current":2698.966,"min":1200.0,"max":3600.0},{"current":2690.42,"min":1200.0,"max":3600.0},{"current":2686.961,"min":1200.0,"max":3600.0},{"current":2702.378,"min":1200.0,"max":3600.0},{"current":2700.445,"min":1200.0,"max":3600.0},{"current":2695.868,"min":1200.0,"max":3600.0},{"current":2695.802,"min":1200.0,"max":3600.0},{"current":2693.817,"min":1200.0,"max":3600.0},{"current":2697.517,"min":1200.0,"max":3600.0},{"current":2695.93,"min":1200.0,"max":3600.0},{"current":2686.015,"min":1200.0,"max":3600.0},{"current":2681.093,"min":1200.0,"max":3600.0},{"current":2697.041,"min":1200.0,"max":3600.0},{"current":2701.996,"min":1200.0,"max":3600.0},{"current":2694.973,"min":1200.0,"max":3600.0},{"current":2693.694,"min":1200.0,"max":3600.0},{"current":2674.416,"min":1200.0,"max":3600.0},{"current":2696.666,"min":1200.0,"max":3600.0},{"current":2697.157,"min":1200.0,"max":3600.0},{"current":2695.622,"min":1200.0,"max":3600.0},{"current":2706.623,"min":1200.0,"max":3600.0},{"current":2817.209,"min":1200.0,"max":3600.0},{"current":2709.931,"min":1200.0,"max":3600.0},{"current":2705.315,"min":1200.0,"max":3600.0},{"current":2791.068,"min":1200.0,"max":3600.0},{"current":2694.398,"min":1200.0,"max":3600.0},{"current":2737.35,"min":1200.0,"max":3600.0},{"current":2695.847,"min":1200.0,"max":3600.0},{"current":2696.723,"min":1200.0,"max":3600.0},{"current":2834.872,"min":1200.0,"max":3600.0},{"current":2835.289,"min":1200.0,"max":3600.0},{"current":2775.072,"min":1200.0,"max":3600.0},{"current":2707.725,"min":1200.0,"max":3600.0},{"current":2707.829,"min":1200.0,"max":3600.0},{"current":2710.099,"min":1200.0,"max":3600.0},{"current":2847.583,"min":1200.0,"max":3600.0},{"current":2779.833,"min":1200.0,"max":3600.0},{"current":2694.172,"min":1200.0,"max":3600.0},{"current":2660.294,"min":1200.0,"max":3600.0},{"current":2824.426,"min":1200.0,"max":3600.0},{"current":2693.691,"min":1200.0,"max":3600.0},{"current":2695.372,"min":1200.0,"max":3600.0},{"current":2713.453,"min":1200.0,"max":3600.0},{"current":2694.024,"min":1200.0,"max":3600.0},{"current":2694.425,"min":1200.0,"max":3600.0},{"current":2694.497,"min":1200.0,"max":3600.0},{"current":2732.851,"min":1200.0,"max":3600.0},{"current":2698.083,"min":1200.0,"max":3600.0},{"current":2694.096,"min":1200.0,"max":3600.0},{"current":2695.537,"min":1200.0,"max":3600.0},{"current":2653.298,"min":1200.0,"max":3600.0},{"current":2695.349,"min":1200.0,"max":3600.0},{"current":2694.006,"min":1200.0,"max":3600.0},{"current":2694.888,"min":1200.0,"max":3600.0},{"current":2696.816,"min":1200.0,"max":3600.0},{"current":2696.21,"min":1200.0,"max":3600.0},{"current":2658.916,"min":1200.0,"max":3600.0},{"current":2722.599,"min":1200.0,"max":3600.0},{"current":2781.713,"min":1200.0,"max":3600.0},{"current":2755.945,"min":1200.0,"max":3600.0}],"disk_write_speed":71.50201112059241,"process_ids":[2113736,2113939]} +{"timestamp":1678267397.652219,"rapl_power_draw_absolute":166.2074263911325,"rapl_estimated_attributable_power_draw":8.584763807184974,"cpu_time_seconds":{"2113736":{"user":381.5,"system":78.25,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":6.26,"system":9.06,"children_user":2.61,"children_system":90.19,"iowait":9.38}},"average_relative_cpu_utilization":0.05887222604738273,"absolute_cpu_utilization":1.003697439918001,"relative_mem_usage":0.016673961632380326,"absolute_mem_usage":3414843392.0,"absolute_mem_percent_usage":0.006312923356046805,"mem_info_per_process":{"2113736":{"rss":3367452672,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2954031104,"pss":3117768704,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":667.48,"nvidia_estimated_attributable_power_draw":261.37,"average_gpu_estimated_utilization_absolute":0.2825,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":17.666666666666668,"mem":12.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":28.25,"mem":18.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":261.37},"cpu_count_adjusted_average_load":[0.2375,0.22999999999999998,0.221875],"cpu_freq":[{"current":2696.505,"min":1200.0,"max":3600.0},{"current":2697.817,"min":1200.0,"max":3600.0},{"current":2764.232,"min":1200.0,"max":3600.0},{"current":2705.454,"min":1200.0,"max":3600.0},{"current":2622.47,"min":1200.0,"max":3600.0},{"current":2707.639,"min":1200.0,"max":3600.0},{"current":2709.468,"min":1200.0,"max":3600.0},{"current":2694.085,"min":1200.0,"max":3600.0},{"current":2695.599,"min":1200.0,"max":3600.0},{"current":2676.221,"min":1200.0,"max":3600.0},{"current":2763.888,"min":1200.0,"max":3600.0},{"current":2695.302,"min":1200.0,"max":3600.0},{"current":2695.31,"min":1200.0,"max":3600.0},{"current":2696.674,"min":1200.0,"max":3600.0},{"current":2702.648,"min":1200.0,"max":3600.0},{"current":2650.162,"min":1200.0,"max":3600.0},{"current":2764.845,"min":1200.0,"max":3600.0},{"current":2694.068,"min":1200.0,"max":3600.0},{"current":2729.855,"min":1200.0,"max":3600.0},{"current":2691.068,"min":1200.0,"max":3600.0},{"current":2697.11,"min":1200.0,"max":3600.0},{"current":2757.33,"min":1200.0,"max":3600.0},{"current":2779.981,"min":1200.0,"max":3600.0},{"current":2695.974,"min":1200.0,"max":3600.0},{"current":2695.777,"min":1200.0,"max":3600.0},{"current":2696.581,"min":1200.0,"max":3600.0},{"current":2695.962,"min":1200.0,"max":3600.0},{"current":2693.822,"min":1200.0,"max":3600.0},{"current":2695.201,"min":1200.0,"max":3600.0},{"current":2695.317,"min":1200.0,"max":3600.0},{"current":2760.019,"min":1200.0,"max":3600.0},{"current":2772.532,"min":1200.0,"max":3600.0},{"current":2696.772,"min":1200.0,"max":3600.0},{"current":2696.719,"min":1200.0,"max":3600.0},{"current":2694.952,"min":1200.0,"max":3600.0},{"current":2697.273,"min":1200.0,"max":3600.0},{"current":2744.057,"min":1200.0,"max":3600.0},{"current":2696.563,"min":1200.0,"max":3600.0},{"current":2701.61,"min":1200.0,"max":3600.0},{"current":2693.74,"min":1200.0,"max":3600.0},{"current":2748.958,"min":1200.0,"max":3600.0},{"current":2840.812,"min":1200.0,"max":3600.0},{"current":2707.358,"min":1200.0,"max":3600.0},{"current":2718.951,"min":1200.0,"max":3600.0},{"current":2843.139,"min":1200.0,"max":3600.0},{"current":2693.768,"min":1200.0,"max":3600.0},{"current":2709.75,"min":1200.0,"max":3600.0},{"current":2707.53,"min":1200.0,"max":3600.0},{"current":2699.022,"min":1200.0,"max":3600.0},{"current":2840.191,"min":1200.0,"max":3600.0},{"current":2850.058,"min":1200.0,"max":3600.0},{"current":2695.911,"min":1200.0,"max":3600.0},{"current":2697.648,"min":1200.0,"max":3600.0},{"current":2707.869,"min":1200.0,"max":3600.0},{"current":2710.071,"min":1200.0,"max":3600.0},{"current":2820.407,"min":1200.0,"max":3600.0},{"current":2636.117,"min":1200.0,"max":3600.0},{"current":2695.253,"min":1200.0,"max":3600.0},{"current":2695.508,"min":1200.0,"max":3600.0},{"current":2838.578,"min":1200.0,"max":3600.0},{"current":2723.246,"min":1200.0,"max":3600.0},{"current":2693.737,"min":1200.0,"max":3600.0},{"current":2630.188,"min":1200.0,"max":3600.0},{"current":2694.104,"min":1200.0,"max":3600.0},{"current":2694.743,"min":1200.0,"max":3600.0},{"current":2695.477,"min":1200.0,"max":3600.0},{"current":2774.847,"min":1200.0,"max":3600.0},{"current":2695.732,"min":1200.0,"max":3600.0},{"current":2695.453,"min":1200.0,"max":3600.0},{"current":2694.249,"min":1200.0,"max":3600.0},{"current":2692.148,"min":1200.0,"max":3600.0},{"current":2692.421,"min":1200.0,"max":3600.0},{"current":2694.351,"min":1200.0,"max":3600.0},{"current":2694.726,"min":1200.0,"max":3600.0},{"current":2697.978,"min":1200.0,"max":3600.0},{"current":2696.478,"min":1200.0,"max":3600.0},{"current":2626.279,"min":1200.0,"max":3600.0},{"current":2771.378,"min":1200.0,"max":3600.0},{"current":2773.308,"min":1200.0,"max":3600.0},{"current":2773.102,"min":1200.0,"max":3600.0}],"disk_write_speed":72.06142361818915,"process_ids":[2113736,2113939]} +{"timestamp":1678267413.180226,"rapl_power_draw_absolute":167.4960377091154,"rapl_estimated_attributable_power_draw":8.307376776555223,"cpu_time_seconds":{"2113736":{"user":394.44,"system":80.84,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":6.47,"system":9.35,"children_user":2.69,"children_system":93.34,"iowait":9.72}},"average_relative_cpu_utilization":0.05649460726611772,"absolute_cpu_utilization":0.9987333123583465,"relative_mem_usage":0.016525577499400843,"absolute_mem_usage":3388928000.0,"absolute_mem_percent_usage":0.006265014311719565,"mem_info_per_process":{"2113736":{"rss":3425103872,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2928115712,"pss":3091853312,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":640.99,"nvidia_estimated_attributable_power_draw":232.44,"average_gpu_estimated_utilization_absolute":0.25,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":23.666666666666668,"mem":15.333333333333334,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":11.0,"mem":6.333333333333333,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.0,"mem":16.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":232.44},"cpu_count_adjusted_average_load":[0.233,0.22949999999999998,0.221875],"cpu_freq":[{"current":2699.234,"min":1200.0,"max":3600.0},{"current":2693.182,"min":1200.0,"max":3600.0},{"current":2710.091,"min":1200.0,"max":3600.0},{"current":2707.801,"min":1200.0,"max":3600.0},{"current":2781.08,"min":1200.0,"max":3600.0},{"current":2695.122,"min":1200.0,"max":3600.0},{"current":2726.704,"min":1200.0,"max":3600.0},{"current":2708.317,"min":1200.0,"max":3600.0},{"current":2719.644,"min":1200.0,"max":3600.0},{"current":2697.254,"min":1200.0,"max":3600.0},{"current":2695.024,"min":1200.0,"max":3600.0},{"current":2699.382,"min":1200.0,"max":3600.0},{"current":2708.362,"min":1200.0,"max":3600.0},{"current":2696.707,"min":1200.0,"max":3600.0},{"current":2696.141,"min":1200.0,"max":3600.0},{"current":2695.175,"min":1200.0,"max":3600.0},{"current":2790.605,"min":1200.0,"max":3600.0},{"current":2697.108,"min":1200.0,"max":3600.0},{"current":2743.153,"min":1200.0,"max":3600.0},{"current":2637.861,"min":1200.0,"max":3600.0},{"current":2695.805,"min":1200.0,"max":3600.0},{"current":2773.222,"min":1200.0,"max":3600.0},{"current":2769.272,"min":1200.0,"max":3600.0},{"current":2694.029,"min":1200.0,"max":3600.0},{"current":2697.019,"min":1200.0,"max":3600.0},{"current":2697.165,"min":1200.0,"max":3600.0},{"current":2692.429,"min":1200.0,"max":3600.0},{"current":2699.708,"min":1200.0,"max":3600.0},{"current":2696.948,"min":1200.0,"max":3600.0},{"current":2698.511,"min":1200.0,"max":3600.0},{"current":2776.852,"min":1200.0,"max":3600.0},{"current":2735.434,"min":1200.0,"max":3600.0},{"current":2695.159,"min":1200.0,"max":3600.0},{"current":2694.425,"min":1200.0,"max":3600.0},{"current":2694.435,"min":1200.0,"max":3600.0},{"current":2693.794,"min":1200.0,"max":3600.0},{"current":2686.466,"min":1200.0,"max":3600.0},{"current":2655.347,"min":1200.0,"max":3600.0},{"current":2697.802,"min":1200.0,"max":3600.0},{"current":2693.658,"min":1200.0,"max":3600.0},{"current":2698.152,"min":1200.0,"max":3600.0},{"current":2808.144,"min":1200.0,"max":3600.0},{"current":2696.601,"min":1200.0,"max":3600.0},{"current":2705.883,"min":1200.0,"max":3600.0},{"current":2765.917,"min":1200.0,"max":3600.0},{"current":2695.239,"min":1200.0,"max":3600.0},{"current":2704.065,"min":1200.0,"max":3600.0},{"current":2693.662,"min":1200.0,"max":3600.0},{"current":2711.924,"min":1200.0,"max":3600.0},{"current":2844.071,"min":1200.0,"max":3600.0},{"current":2821.81,"min":1200.0,"max":3600.0},{"current":2742.394,"min":1200.0,"max":3600.0},{"current":2707.778,"min":1200.0,"max":3600.0},{"current":2706.685,"min":1200.0,"max":3600.0},{"current":2700.275,"min":1200.0,"max":3600.0},{"current":2820.094,"min":1200.0,"max":3600.0},{"current":2709.381,"min":1200.0,"max":3600.0},{"current":2698.508,"min":1200.0,"max":3600.0},{"current":2729.709,"min":1200.0,"max":3600.0},{"current":2835.592,"min":1200.0,"max":3600.0},{"current":2694.172,"min":1200.0,"max":3600.0},{"current":2695.773,"min":1200.0,"max":3600.0},{"current":2691.81,"min":1200.0,"max":3600.0},{"current":2693.847,"min":1200.0,"max":3600.0},{"current":2693.633,"min":1200.0,"max":3600.0},{"current":2697.01,"min":1200.0,"max":3600.0},{"current":2683.883,"min":1200.0,"max":3600.0},{"current":2694.354,"min":1200.0,"max":3600.0},{"current":2695.926,"min":1200.0,"max":3600.0},{"current":2695.709,"min":1200.0,"max":3600.0},{"current":2696.01,"min":1200.0,"max":3600.0},{"current":2692.36,"min":1200.0,"max":3600.0},{"current":2695.088,"min":1200.0,"max":3600.0},{"current":2697.188,"min":1200.0,"max":3600.0},{"current":2696.943,"min":1200.0,"max":3600.0},{"current":2696.786,"min":1200.0,"max":3600.0},{"current":2697.591,"min":1200.0,"max":3600.0},{"current":2681.114,"min":1200.0,"max":3600.0},{"current":2694.002,"min":1200.0,"max":3600.0},{"current":2684.009,"min":1200.0,"max":3600.0}],"disk_write_speed":71.57593394315543,"process_ids":[2113736,2113939]} +{"timestamp":1678267428.884205,"rapl_power_draw_absolute":167.6541201412158,"rapl_estimated_attributable_power_draw":8.356828758468197,"cpu_time_seconds":{"2113736":{"user":407.67,"system":83.33,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":6.69,"system":9.64,"children_user":2.82,"children_system":96.46,"iowait":10.06}},"average_relative_cpu_utilization":0.056315381761670294,"absolute_cpu_utilization":1.004036584612774,"relative_mem_usage":0.019172025822203672,"absolute_mem_usage":3932141568.0,"absolute_mem_percent_usage":0.00726923770561883,"mem_info_per_process":{"2113736":{"rss":3879198720,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3471331328,"pss":3635066880,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":464.23,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.196,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":12.666666666666666,"mem":8.666666666666666,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":14.0,"mem":8.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":21.333333333333332,"mem":12.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":19.6,"mem":11.8,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.2375,0.23075,0.222375],"cpu_freq":[{"current":2695.141,"min":1200.0,"max":3600.0},{"current":2697.219,"min":1200.0,"max":3600.0},{"current":2715.116,"min":1200.0,"max":3600.0},{"current":2710.322,"min":1200.0,"max":3600.0},{"current":2709.753,"min":1200.0,"max":3600.0},{"current":2694.374,"min":1200.0,"max":3600.0},{"current":2776.757,"min":1200.0,"max":3600.0},{"current":2710.198,"min":1200.0,"max":3600.0},{"current":2707.948,"min":1200.0,"max":3600.0},{"current":2643.506,"min":1200.0,"max":3600.0},{"current":2625.108,"min":1200.0,"max":3600.0},{"current":2742.398,"min":1200.0,"max":3600.0},{"current":2707.483,"min":1200.0,"max":3600.0},{"current":2708.341,"min":1200.0,"max":3600.0},{"current":2711.371,"min":1200.0,"max":3600.0},{"current":2692.06,"min":1200.0,"max":3600.0},{"current":2723.4,"min":1200.0,"max":3600.0},{"current":2809.744,"min":1200.0,"max":3600.0},{"current":2829.689,"min":1200.0,"max":3600.0},{"current":2695.711,"min":1200.0,"max":3600.0},{"current":2786.014,"min":1200.0,"max":3600.0},{"current":2694.733,"min":1200.0,"max":3600.0},{"current":2771.542,"min":1200.0,"max":3600.0},{"current":2701.117,"min":1200.0,"max":3600.0},{"current":2719.043,"min":1200.0,"max":3600.0},{"current":2697.481,"min":1200.0,"max":3600.0},{"current":2692.213,"min":1200.0,"max":3600.0},{"current":2696.348,"min":1200.0,"max":3600.0},{"current":2697.041,"min":1200.0,"max":3600.0},{"current":2697.145,"min":1200.0,"max":3600.0},{"current":2774.193,"min":1200.0,"max":3600.0},{"current":2749.855,"min":1200.0,"max":3600.0},{"current":2695.138,"min":1200.0,"max":3600.0},{"current":2698.62,"min":1200.0,"max":3600.0},{"current":2696.787,"min":1200.0,"max":3600.0},{"current":2695.3,"min":1200.0,"max":3600.0},{"current":2778.442,"min":1200.0,"max":3600.0},{"current":2693.388,"min":1200.0,"max":3600.0},{"current":2701.273,"min":1200.0,"max":3600.0},{"current":2680.457,"min":1200.0,"max":3600.0},{"current":2695.82,"min":1200.0,"max":3600.0},{"current":2706.895,"min":1200.0,"max":3600.0},{"current":2695.178,"min":1200.0,"max":3600.0},{"current":2694.063,"min":1200.0,"max":3600.0},{"current":2694.245,"min":1200.0,"max":3600.0},{"current":2723.056,"min":1200.0,"max":3600.0},{"current":2693.882,"min":1200.0,"max":3600.0},{"current":2694.473,"min":1200.0,"max":3600.0},{"current":2774.203,"min":1200.0,"max":3600.0},{"current":2749.226,"min":1200.0,"max":3600.0},{"current":2752.256,"min":1200.0,"max":3600.0},{"current":2694.054,"min":1200.0,"max":3600.0},{"current":2694.812,"min":1200.0,"max":3600.0},{"current":2694.497,"min":1200.0,"max":3600.0},{"current":2693.732,"min":1200.0,"max":3600.0},{"current":2827.01,"min":1200.0,"max":3600.0},{"current":2702.392,"min":1200.0,"max":3600.0},{"current":2690.282,"min":1200.0,"max":3600.0},{"current":2694.31,"min":1200.0,"max":3600.0},{"current":2804.482,"min":1200.0,"max":3600.0},{"current":2694.876,"min":1200.0,"max":3600.0},{"current":2695.089,"min":1200.0,"max":3600.0},{"current":2693.656,"min":1200.0,"max":3600.0},{"current":2708.465,"min":1200.0,"max":3600.0},{"current":2717.642,"min":1200.0,"max":3600.0},{"current":2693.303,"min":1200.0,"max":3600.0},{"current":2767.304,"min":1200.0,"max":3600.0},{"current":2694.005,"min":1200.0,"max":3600.0},{"current":2695.465,"min":1200.0,"max":3600.0},{"current":2693.498,"min":1200.0,"max":3600.0},{"current":2695.201,"min":1200.0,"max":3600.0},{"current":2694.399,"min":1200.0,"max":3600.0},{"current":2695.571,"min":1200.0,"max":3600.0},{"current":2696.255,"min":1200.0,"max":3600.0},{"current":2695.689,"min":1200.0,"max":3600.0},{"current":2695.99,"min":1200.0,"max":3600.0},{"current":2693.958,"min":1200.0,"max":3600.0},{"current":2762.186,"min":1200.0,"max":3600.0},{"current":2694.315,"min":1200.0,"max":3600.0},{"current":2768.567,"min":1200.0,"max":3600.0}],"disk_write_speed":71.31994205414924,"process_ids":[2113736,2113939]} +{"timestamp":1678267444.756192,"rapl_power_draw_absolute":167.2763211920051,"rapl_estimated_attributable_power_draw":8.498984420714995,"cpu_time_seconds":{"2113736":{"user":421.0,"system":85.87,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":6.89,"system":9.99,"children_user":2.88,"children_system":99.64,"iowait":10.4}},"average_relative_cpu_utilization":0.05745194295405424,"absolute_cpu_utilization":0.9987209540296377,"relative_mem_usage":0.018788807384790333,"absolute_mem_usage":3860291584.0,"absolute_mem_percent_usage":0.007136410694228555,"mem_info_per_process":{"2113736":{"rss":3808124928,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3399479296,"pss":3563216896,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":478.05000000000007,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.215,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":16.333333333333332,"mem":10.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":8.5,"mem":5.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":26.0,"mem":15.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":21.5,"mem":13.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23475000000000001,0.230375,0.2225],"cpu_freq":[{"current":2695.672,"min":1200.0,"max":3600.0},{"current":2693.824,"min":1200.0,"max":3600.0},{"current":2710.061,"min":1200.0,"max":3600.0},{"current":2722.776,"min":1200.0,"max":3600.0},{"current":2711.955,"min":1200.0,"max":3600.0},{"current":2695.355,"min":1200.0,"max":3600.0},{"current":2712.555,"min":1200.0,"max":3600.0},{"current":2712.532,"min":1200.0,"max":3600.0},{"current":2714.559,"min":1200.0,"max":3600.0},{"current":2696.929,"min":1200.0,"max":3600.0},{"current":2693.485,"min":1200.0,"max":3600.0},{"current":2697.395,"min":1200.0,"max":3600.0},{"current":2708.105,"min":1200.0,"max":3600.0},{"current":2694.906,"min":1200.0,"max":3600.0},{"current":2695.797,"min":1200.0,"max":3600.0},{"current":2694.826,"min":1200.0,"max":3600.0},{"current":2717.954,"min":1200.0,"max":3600.0},{"current":2809.33,"min":1200.0,"max":3600.0},{"current":2759.438,"min":1200.0,"max":3600.0},{"current":2694.696,"min":1200.0,"max":3600.0},{"current":2767.496,"min":1200.0,"max":3600.0},{"current":2696.685,"min":1200.0,"max":3600.0},{"current":2773.535,"min":1200.0,"max":3600.0},{"current":2675.378,"min":1200.0,"max":3600.0},{"current":2696.548,"min":1200.0,"max":3600.0},{"current":2694.765,"min":1200.0,"max":3600.0},{"current":2691.607,"min":1200.0,"max":3600.0},{"current":2697.756,"min":1200.0,"max":3600.0},{"current":2715.181,"min":1200.0,"max":3600.0},{"current":2696.826,"min":1200.0,"max":3600.0},{"current":2777.044,"min":1200.0,"max":3600.0},{"current":2726.038,"min":1200.0,"max":3600.0},{"current":2694.499,"min":1200.0,"max":3600.0},{"current":2694.462,"min":1200.0,"max":3600.0},{"current":2697.148,"min":1200.0,"max":3600.0},{"current":2698.982,"min":1200.0,"max":3600.0},{"current":2712.162,"min":1200.0,"max":3600.0},{"current":2692.142,"min":1200.0,"max":3600.0},{"current":2693.842,"min":1200.0,"max":3600.0},{"current":2693.663,"min":1200.0,"max":3600.0},{"current":2695.482,"min":1200.0,"max":3600.0},{"current":2703.144,"min":1200.0,"max":3600.0},{"current":2706.38,"min":1200.0,"max":3600.0},{"current":2696.194,"min":1200.0,"max":3600.0},{"current":2720.386,"min":1200.0,"max":3600.0},{"current":2759.573,"min":1200.0,"max":3600.0},{"current":2698.186,"min":1200.0,"max":3600.0},{"current":2696.147,"min":1200.0,"max":3600.0},{"current":2718.221,"min":1200.0,"max":3600.0},{"current":2863.879,"min":1200.0,"max":3600.0},{"current":2810.547,"min":1200.0,"max":3600.0},{"current":2709.376,"min":1200.0,"max":3600.0},{"current":2710.327,"min":1200.0,"max":3600.0},{"current":2706.47,"min":1200.0,"max":3600.0},{"current":2695.824,"min":1200.0,"max":3600.0},{"current":2799.579,"min":1200.0,"max":3600.0},{"current":2701.083,"min":1200.0,"max":3600.0},{"current":2691.505,"min":1200.0,"max":3600.0},{"current":2692.497,"min":1200.0,"max":3600.0},{"current":2826.177,"min":1200.0,"max":3600.0},{"current":2696.724,"min":1200.0,"max":3600.0},{"current":2699.768,"min":1200.0,"max":3600.0},{"current":2694.565,"min":1200.0,"max":3600.0},{"current":2673.279,"min":1200.0,"max":3600.0},{"current":2694.892,"min":1200.0,"max":3600.0},{"current":2696.046,"min":1200.0,"max":3600.0},{"current":2681.231,"min":1200.0,"max":3600.0},{"current":2694.921,"min":1200.0,"max":3600.0},{"current":2696.191,"min":1200.0,"max":3600.0},{"current":2695.459,"min":1200.0,"max":3600.0},{"current":2603.305,"min":1200.0,"max":3600.0},{"current":2693.613,"min":1200.0,"max":3600.0},{"current":2694.635,"min":1200.0,"max":3600.0},{"current":2695.515,"min":1200.0,"max":3600.0},{"current":2695.318,"min":1200.0,"max":3600.0},{"current":2695.132,"min":1200.0,"max":3600.0},{"current":2695.624,"min":1200.0,"max":3600.0},{"current":2694.034,"min":1200.0,"max":3600.0},{"current":2694.412,"min":1200.0,"max":3600.0},{"current":2679.809,"min":1200.0,"max":3600.0}],"disk_write_speed":71.88345920500898,"process_ids":[2113736,2113939]} +{"timestamp":1678267460.312211,"rapl_power_draw_absolute":166.8897448958465,"rapl_estimated_attributable_power_draw":8.528697185727966,"cpu_time_seconds":{"2113736":{"user":434.14,"system":88.3,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":7.09,"system":10.28,"children_user":2.98,"children_system":102.78,"iowait":10.73}},"average_relative_cpu_utilization":0.05795599883524577,"absolute_cpu_utilization":1.003728139398073,"relative_mem_usage":0.01796344677859678,"absolute_mem_usage":3691496448.0,"absolute_mem_percent_usage":0.006824363951781194,"mem_info_per_process":{"2113736":{"rss":3636477952,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3230687232,"pss":3394421760,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":491.85999999999996,"nvidia_estimated_attributable_power_draw":69.95,"average_gpu_estimated_utilization_absolute":0.24333333333333332,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":21.25,"mem":14.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.75,"mem":3.75,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.333333333333332,"mem":16.666666666666668,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.95},"cpu_count_adjusted_average_load":[0.23162500000000003,0.229875,0.2225],"cpu_freq":[{"current":2694.733,"min":1200.0,"max":3600.0},{"current":2698.386,"min":1200.0,"max":3600.0},{"current":2695.351,"min":1200.0,"max":3600.0},{"current":2699.207,"min":1200.0,"max":3600.0},{"current":2706.755,"min":1200.0,"max":3600.0},{"current":2695.145,"min":1200.0,"max":3600.0},{"current":2701.279,"min":1200.0,"max":3600.0},{"current":2696.632,"min":1200.0,"max":3600.0},{"current":2711.79,"min":1200.0,"max":3600.0},{"current":2695.861,"min":1200.0,"max":3600.0},{"current":2693.932,"min":1200.0,"max":3600.0},{"current":2696.709,"min":1200.0,"max":3600.0},{"current":2832.394,"min":1200.0,"max":3600.0},{"current":2696.171,"min":1200.0,"max":3600.0},{"current":2723.428,"min":1200.0,"max":3600.0},{"current":2692.889,"min":1200.0,"max":3600.0},{"current":2695.974,"min":1200.0,"max":3600.0},{"current":2819.42,"min":1200.0,"max":3600.0},{"current":2697.516,"min":1200.0,"max":3600.0},{"current":2682.702,"min":1200.0,"max":3600.0},{"current":2781.666,"min":1200.0,"max":3600.0},{"current":2696.013,"min":1200.0,"max":3600.0},{"current":2771.61,"min":1200.0,"max":3600.0},{"current":2692.658,"min":1200.0,"max":3600.0},{"current":2694.094,"min":1200.0,"max":3600.0},{"current":2709.139,"min":1200.0,"max":3600.0},{"current":2693.784,"min":1200.0,"max":3600.0},{"current":2697.474,"min":1200.0,"max":3600.0},{"current":2698.455,"min":1200.0,"max":3600.0},{"current":2695.076,"min":1200.0,"max":3600.0},{"current":2763.455,"min":1200.0,"max":3600.0},{"current":2767.964,"min":1200.0,"max":3600.0},{"current":2702.037,"min":1200.0,"max":3600.0},{"current":2696.395,"min":1200.0,"max":3600.0},{"current":2695.52,"min":1200.0,"max":3600.0},{"current":2696.857,"min":1200.0,"max":3600.0},{"current":2775.806,"min":1200.0,"max":3600.0},{"current":2697.974,"min":1200.0,"max":3600.0},{"current":2651.839,"min":1200.0,"max":3600.0},{"current":2699.837,"min":1200.0,"max":3600.0},{"current":2723.162,"min":1200.0,"max":3600.0},{"current":2764.156,"min":1200.0,"max":3600.0},{"current":2695.918,"min":1200.0,"max":3600.0},{"current":2694.165,"min":1200.0,"max":3600.0},{"current":2748.255,"min":1200.0,"max":3600.0},{"current":2845.41,"min":1200.0,"max":3600.0},{"current":2716.46,"min":1200.0,"max":3600.0},{"current":2695.976,"min":1200.0,"max":3600.0},{"current":2695.602,"min":1200.0,"max":3600.0},{"current":2696.486,"min":1200.0,"max":3600.0},{"current":2850.46,"min":1200.0,"max":3600.0},{"current":2818.609,"min":1200.0,"max":3600.0},{"current":2632.071,"min":1200.0,"max":3600.0},{"current":2756.372,"min":1200.0,"max":3600.0},{"current":2695.634,"min":1200.0,"max":3600.0},{"current":2819.962,"min":1200.0,"max":3600.0},{"current":2695.309,"min":1200.0,"max":3600.0},{"current":2692.086,"min":1200.0,"max":3600.0},{"current":2696.874,"min":1200.0,"max":3600.0},{"current":2854.46,"min":1200.0,"max":3600.0},{"current":2694.886,"min":1200.0,"max":3600.0},{"current":2693.55,"min":1200.0,"max":3600.0},{"current":2694.313,"min":1200.0,"max":3600.0},{"current":2755.022,"min":1200.0,"max":3600.0},{"current":2693.833,"min":1200.0,"max":3600.0},{"current":2695.779,"min":1200.0,"max":3600.0},{"current":2787.072,"min":1200.0,"max":3600.0},{"current":2696.165,"min":1200.0,"max":3600.0},{"current":2698.706,"min":1200.0,"max":3600.0},{"current":2693.91,"min":1200.0,"max":3600.0},{"current":2697.59,"min":1200.0,"max":3600.0},{"current":2694.156,"min":1200.0,"max":3600.0},{"current":2693.681,"min":1200.0,"max":3600.0},{"current":2694.498,"min":1200.0,"max":3600.0},{"current":2696.501,"min":1200.0,"max":3600.0},{"current":2693.949,"min":1200.0,"max":3600.0},{"current":2733.885,"min":1200.0,"max":3600.0},{"current":2694.693,"min":1200.0,"max":3600.0},{"current":2762.561,"min":1200.0,"max":3600.0},{"current":2783.963,"min":1200.0,"max":3600.0}],"disk_write_speed":71.18645582826801,"process_ids":[2113736,2113939]} +{"timestamp":1678267476.184238,"rapl_power_draw_absolute":167.20559066851652,"rapl_estimated_attributable_power_draw":8.436587594929573,"cpu_time_seconds":{"2113736":{"user":447.47,"system":90.84,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":7.3,"system":10.61,"children_user":3.09,"children_system":105.94,"iowait":11.08}},"average_relative_cpu_utilization":0.0572225153345264,"absolute_cpu_utilization":0.9987095407180306,"relative_mem_usage":0.018006736553726317,"absolute_mem_usage":3694133248.0,"absolute_mem_percent_usage":0.006829238528560973,"mem_info_per_process":{"2113736":{"rss":3634724864,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3233320960,"pss":3397058560,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":467.45000000000005,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.245,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":11.666666666666666,"mem":7.666666666666667,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.5,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.5,"mem":15.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23199999999999998,0.230125,0.222625],"cpu_freq":[{"current":2694.517,"min":1200.0,"max":3600.0},{"current":2630.602,"min":1200.0,"max":3600.0},{"current":2713.643,"min":1200.0,"max":3600.0},{"current":2695.651,"min":1200.0,"max":3600.0},{"current":2699.287,"min":1200.0,"max":3600.0},{"current":2696.135,"min":1200.0,"max":3600.0},{"current":2708.935,"min":1200.0,"max":3600.0},{"current":2697.639,"min":1200.0,"max":3600.0},{"current":2694.332,"min":1200.0,"max":3600.0},{"current":2718.891,"min":1200.0,"max":3600.0},{"current":2661.675,"min":1200.0,"max":3600.0},{"current":2736.15,"min":1200.0,"max":3600.0},{"current":2834.296,"min":1200.0,"max":3600.0},{"current":2709.28,"min":1200.0,"max":3600.0},{"current":2709.931,"min":1200.0,"max":3600.0},{"current":2692.265,"min":1200.0,"max":3600.0},{"current":2694.763,"min":1200.0,"max":3600.0},{"current":2832.879,"min":1200.0,"max":3600.0},{"current":2711.593,"min":1200.0,"max":3600.0},{"current":2693.608,"min":1200.0,"max":3600.0},{"current":2769.865,"min":1200.0,"max":3600.0},{"current":2696.063,"min":1200.0,"max":3600.0},{"current":2770.217,"min":1200.0,"max":3600.0},{"current":2625.13,"min":1200.0,"max":3600.0},{"current":2698.563,"min":1200.0,"max":3600.0},{"current":2701.886,"min":1200.0,"max":3600.0},{"current":2683.693,"min":1200.0,"max":3600.0},{"current":2695.482,"min":1200.0,"max":3600.0},{"current":2697.252,"min":1200.0,"max":3600.0},{"current":2697.003,"min":1200.0,"max":3600.0},{"current":2752.945,"min":1200.0,"max":3600.0},{"current":2711.951,"min":1200.0,"max":3600.0},{"current":2697.713,"min":1200.0,"max":3600.0},{"current":2696.876,"min":1200.0,"max":3600.0},{"current":2694.4,"min":1200.0,"max":3600.0},{"current":2694.136,"min":1200.0,"max":3600.0},{"current":2772.536,"min":1200.0,"max":3600.0},{"current":2697.14,"min":1200.0,"max":3600.0},{"current":2694.894,"min":1200.0,"max":3600.0},{"current":2693.642,"min":1200.0,"max":3600.0},{"current":2724.3,"min":1200.0,"max":3600.0},{"current":2856.904,"min":1200.0,"max":3600.0},{"current":2706.229,"min":1200.0,"max":3600.0},{"current":2705.991,"min":1200.0,"max":3600.0},{"current":2712.069,"min":1200.0,"max":3600.0},{"current":2801.057,"min":1200.0,"max":3600.0},{"current":2714.711,"min":1200.0,"max":3600.0},{"current":2708.21,"min":1200.0,"max":3600.0},{"current":2711.06,"min":1200.0,"max":3600.0},{"current":2695.319,"min":1200.0,"max":3600.0},{"current":2813.123,"min":1200.0,"max":3600.0},{"current":2787.026,"min":1200.0,"max":3600.0},{"current":2624.76,"min":1200.0,"max":3600.0},{"current":2721.279,"min":1200.0,"max":3600.0},{"current":2709.631,"min":1200.0,"max":3600.0},{"current":2856.999,"min":1200.0,"max":3600.0},{"current":2780.85,"min":1200.0,"max":3600.0},{"current":2664.097,"min":1200.0,"max":3600.0},{"current":2751.518,"min":1200.0,"max":3600.0},{"current":2871.698,"min":1200.0,"max":3600.0},{"current":2776.88,"min":1200.0,"max":3600.0},{"current":2694.396,"min":1200.0,"max":3600.0},{"current":2693.594,"min":1200.0,"max":3600.0},{"current":2761.996,"min":1200.0,"max":3600.0},{"current":2693.918,"min":1200.0,"max":3600.0},{"current":2694.277,"min":1200.0,"max":3600.0},{"current":2768.304,"min":1200.0,"max":3600.0},{"current":2694.81,"min":1200.0,"max":3600.0},{"current":2693.588,"min":1200.0,"max":3600.0},{"current":2695.265,"min":1200.0,"max":3600.0},{"current":2696.306,"min":1200.0,"max":3600.0},{"current":2693.116,"min":1200.0,"max":3600.0},{"current":2694.118,"min":1200.0,"max":3600.0},{"current":2696.494,"min":1200.0,"max":3600.0},{"current":2695.777,"min":1200.0,"max":3600.0},{"current":2696.107,"min":1200.0,"max":3600.0},{"current":2775.79,"min":1200.0,"max":3600.0},{"current":2694.542,"min":1200.0,"max":3600.0},{"current":2767.056,"min":1200.0,"max":3600.0},{"current":2783.779,"min":1200.0,"max":3600.0}],"disk_write_speed":71.08330536197914,"process_ids":[2113736,2113939]} +{"timestamp":1678267491.632213,"rapl_power_draw_absolute":167.1211853347647,"rapl_estimated_attributable_power_draw":8.426118691283264,"cpu_time_seconds":{"2113736":{"user":460.68,"system":93.09,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":7.52,"system":10.94,"children_user":3.18,"children_system":109.09,"iowait":11.42}},"average_relative_cpu_utilization":0.057321291489620944,"absolute_cpu_utilization":0.9987190589921869,"relative_mem_usage":0.017177781177219603,"absolute_mem_usage":3523186688.0,"absolute_mem_percent_usage":0.006513214510069218,"mem_info_per_process":{"2113736":{"rss":3460583424,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3062374400,"pss":3226112000,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":477.8300000000001,"nvidia_estimated_attributable_power_draw":70.04,"average_gpu_estimated_utilization_absolute":0.24600000000000002,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":27.5,"mem":17.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.6,"mem":16.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.04},"cpu_count_adjusted_average_load":[0.23399999999999999,0.230625,0.223],"cpu_freq":[{"current":2694.507,"min":1200.0,"max":3600.0},{"current":2661.52,"min":1200.0,"max":3600.0},{"current":2726.305,"min":1200.0,"max":3600.0},{"current":2703.932,"min":1200.0,"max":3600.0},{"current":2704.632,"min":1200.0,"max":3600.0},{"current":2666.005,"min":1200.0,"max":3600.0},{"current":2711.76,"min":1200.0,"max":3600.0},{"current":2739.093,"min":1200.0,"max":3600.0},{"current":2724.963,"min":1200.0,"max":3600.0},{"current":2695.229,"min":1200.0,"max":3600.0},{"current":2695.628,"min":1200.0,"max":3600.0},{"current":2637.498,"min":1200.0,"max":3600.0},{"current":2756.569,"min":1200.0,"max":3600.0},{"current":2696.361,"min":1200.0,"max":3600.0},{"current":2697.893,"min":1200.0,"max":3600.0},{"current":2695.178,"min":1200.0,"max":3600.0},{"current":2710.269,"min":1200.0,"max":3600.0},{"current":2825.313,"min":1200.0,"max":3600.0},{"current":2711.225,"min":1200.0,"max":3600.0},{"current":2659.574,"min":1200.0,"max":3600.0},{"current":2691.962,"min":1200.0,"max":3600.0},{"current":2696.548,"min":1200.0,"max":3600.0},{"current":2698.102,"min":1200.0,"max":3600.0},{"current":2681.527,"min":1200.0,"max":3600.0},{"current":2696.552,"min":1200.0,"max":3600.0},{"current":2698.286,"min":1200.0,"max":3600.0},{"current":2697.105,"min":1200.0,"max":3600.0},{"current":2695.374,"min":1200.0,"max":3600.0},{"current":2696.002,"min":1200.0,"max":3600.0},{"current":2693.904,"min":1200.0,"max":3600.0},{"current":2712.311,"min":1200.0,"max":3600.0},{"current":2714.594,"min":1200.0,"max":3600.0},{"current":2763.673,"min":1200.0,"max":3600.0},{"current":2695.755,"min":1200.0,"max":3600.0},{"current":2698.855,"min":1200.0,"max":3600.0},{"current":2697.997,"min":1200.0,"max":3600.0},{"current":2699.851,"min":1200.0,"max":3600.0},{"current":2656.397,"min":1200.0,"max":3600.0},{"current":2655.655,"min":1200.0,"max":3600.0},{"current":2748.733,"min":1200.0,"max":3600.0},{"current":2748.916,"min":1200.0,"max":3600.0},{"current":2830.007,"min":1200.0,"max":3600.0},{"current":2736.038,"min":1200.0,"max":3600.0},{"current":2700.596,"min":1200.0,"max":3600.0},{"current":2716.47,"min":1200.0,"max":3600.0},{"current":2845.783,"min":1200.0,"max":3600.0},{"current":2699.402,"min":1200.0,"max":3600.0},{"current":2708.923,"min":1200.0,"max":3600.0},{"current":2696.567,"min":1200.0,"max":3600.0},{"current":2708.747,"min":1200.0,"max":3600.0},{"current":2846.552,"min":1200.0,"max":3600.0},{"current":2809.334,"min":1200.0,"max":3600.0},{"current":2694.526,"min":1200.0,"max":3600.0},{"current":2696.599,"min":1200.0,"max":3600.0},{"current":2697.243,"min":1200.0,"max":3600.0},{"current":2837.064,"min":1200.0,"max":3600.0},{"current":2707.905,"min":1200.0,"max":3600.0},{"current":2694.686,"min":1200.0,"max":3600.0},{"current":2699.849,"min":1200.0,"max":3600.0},{"current":2852.014,"min":1200.0,"max":3600.0},{"current":2771.694,"min":1200.0,"max":3600.0},{"current":2696.004,"min":1200.0,"max":3600.0},{"current":2697.273,"min":1200.0,"max":3600.0},{"current":2773.362,"min":1200.0,"max":3600.0},{"current":2694.268,"min":1200.0,"max":3600.0},{"current":2694.284,"min":1200.0,"max":3600.0},{"current":2749.298,"min":1200.0,"max":3600.0},{"current":2693.767,"min":1200.0,"max":3600.0},{"current":2694.905,"min":1200.0,"max":3600.0},{"current":2695.746,"min":1200.0,"max":3600.0},{"current":2697.039,"min":1200.0,"max":3600.0},{"current":2694.815,"min":1200.0,"max":3600.0},{"current":2694.336,"min":1200.0,"max":3600.0},{"current":2694.157,"min":1200.0,"max":3600.0},{"current":2696.628,"min":1200.0,"max":3600.0},{"current":2695.863,"min":1200.0,"max":3600.0},{"current":2695.42,"min":1200.0,"max":3600.0},{"current":2773.643,"min":1200.0,"max":3600.0},{"current":2770.196,"min":1200.0,"max":3600.0},{"current":2778.181,"min":1200.0,"max":3600.0}],"disk_write_speed":71.09548820458106,"process_ids":[2113736,2113939]} +{"timestamp":1678267507.536204,"rapl_power_draw_absolute":167.0558844644312,"rapl_estimated_attributable_power_draw":8.358400472112857,"cpu_time_seconds":{"2113736":{"user":474.1,"system":95.58,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":7.74,"system":11.27,"children_user":3.26,"children_system":112.27,"iowait":11.76}},"average_relative_cpu_utilization":0.05692893388991595,"absolute_cpu_utilization":0.9987026528203194,"relative_mem_usage":0.017162335652072445,"absolute_mem_usage":3525509120.0,"absolute_mem_percent_usage":0.006517507923714475,"mem_info_per_process":{"2113736":{"rss":3476885504,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3064696832,"pss":3228434432,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":679.43,"nvidia_estimated_attributable_power_draw":70.04,"average_gpu_estimated_utilization_absolute":0.24,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":18.5,"mem":12.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.0,"mem":16.25,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.04},"cpu_count_adjusted_average_load":[0.23374999999999999,0.23075,0.22312500000000002],"cpu_freq":[{"current":2694.061,"min":1200.0,"max":3600.0},{"current":2692.828,"min":1200.0,"max":3600.0},{"current":2767.969,"min":1200.0,"max":3600.0},{"current":2701.187,"min":1200.0,"max":3600.0},{"current":2694.857,"min":1200.0,"max":3600.0},{"current":2655.565,"min":1200.0,"max":3600.0},{"current":2696.685,"min":1200.0,"max":3600.0},{"current":2704.265,"min":1200.0,"max":3600.0},{"current":2701.792,"min":1200.0,"max":3600.0},{"current":2694.38,"min":1200.0,"max":3600.0},{"current":2692.456,"min":1200.0,"max":3600.0},{"current":2690.581,"min":1200.0,"max":3600.0},{"current":2733.14,"min":1200.0,"max":3600.0},{"current":2698.36,"min":1200.0,"max":3600.0},{"current":2695.405,"min":1200.0,"max":3600.0},{"current":2695.374,"min":1200.0,"max":3600.0},{"current":2756.074,"min":1200.0,"max":3600.0},{"current":2735.915,"min":1200.0,"max":3600.0},{"current":2695.12,"min":1200.0,"max":3600.0},{"current":2692.346,"min":1200.0,"max":3600.0},{"current":2695.966,"min":1200.0,"max":3600.0},{"current":2696.085,"min":1200.0,"max":3600.0},{"current":2700.088,"min":1200.0,"max":3600.0},{"current":2695.958,"min":1200.0,"max":3600.0},{"current":2697.067,"min":1200.0,"max":3600.0},{"current":2695.918,"min":1200.0,"max":3600.0},{"current":2693.293,"min":1200.0,"max":3600.0},{"current":2695.724,"min":1200.0,"max":3600.0},{"current":2764.946,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2689.43,"min":1200.0,"max":3600.0},{"current":2690.036,"min":1200.0,"max":3600.0},{"current":2696.243,"min":1200.0,"max":3600.0},{"current":2696.745,"min":1200.0,"max":3600.0},{"current":2694.46,"min":1200.0,"max":3600.0},{"current":2696.131,"min":1200.0,"max":3600.0},{"current":2696.256,"min":1200.0,"max":3600.0},{"current":2696.008,"min":1200.0,"max":3600.0},{"current":2691.991,"min":1200.0,"max":3600.0},{"current":2693.543,"min":1200.0,"max":3600.0},{"current":2735.581,"min":1200.0,"max":3600.0},{"current":2829.647,"min":1200.0,"max":3600.0},{"current":2712.674,"min":1200.0,"max":3600.0},{"current":2711.425,"min":1200.0,"max":3600.0},{"current":2711.884,"min":1200.0,"max":3600.0},{"current":2819.705,"min":1200.0,"max":3600.0},{"current":2694.667,"min":1200.0,"max":3600.0},{"current":2694.49,"min":1200.0,"max":3600.0},{"current":2705.196,"min":1200.0,"max":3600.0},{"current":2695.631,"min":1200.0,"max":3600.0},{"current":2846.79,"min":1200.0,"max":3600.0},{"current":2827.515,"min":1200.0,"max":3600.0},{"current":2695.046,"min":1200.0,"max":3600.0},{"current":2708.557,"min":1200.0,"max":3600.0},{"current":2696.16,"min":1200.0,"max":3600.0},{"current":2850.271,"min":1200.0,"max":3600.0},{"current":2695.16,"min":1200.0,"max":3600.0},{"current":2692.202,"min":1200.0,"max":3600.0},{"current":2712.178,"min":1200.0,"max":3600.0},{"current":2843.684,"min":1200.0,"max":3600.0},{"current":2775.753,"min":1200.0,"max":3600.0},{"current":2694.317,"min":1200.0,"max":3600.0},{"current":2694.172,"min":1200.0,"max":3600.0},{"current":2760.128,"min":1200.0,"max":3600.0},{"current":2693.898,"min":1200.0,"max":3600.0},{"current":2695.579,"min":1200.0,"max":3600.0},{"current":2782.697,"min":1200.0,"max":3600.0},{"current":2696.885,"min":1200.0,"max":3600.0},{"current":2691.961,"min":1200.0,"max":3600.0},{"current":2710.224,"min":1200.0,"max":3600.0},{"current":2694.861,"min":1200.0,"max":3600.0},{"current":2694.824,"min":1200.0,"max":3600.0},{"current":2696.631,"min":1200.0,"max":3600.0},{"current":2695.631,"min":1200.0,"max":3600.0},{"current":2697.311,"min":1200.0,"max":3600.0},{"current":2695.967,"min":1200.0,"max":3600.0},{"current":2694.455,"min":1200.0,"max":3600.0},{"current":2780.058,"min":1200.0,"max":3600.0},{"current":2767.718,"min":1200.0,"max":3600.0},{"current":2764.251,"min":1200.0,"max":3600.0}],"disk_write_speed":71.63770413871042,"process_ids":[2113736,2113939]} +{"timestamp":1678267522.936244,"rapl_power_draw_absolute":167.36661977194092,"rapl_estimated_attributable_power_draw":8.222687082636332,"cpu_time_seconds":{"2113736":{"user":487.02,"system":98.07,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":7.97,"system":11.54,"children_user":3.35,"children_system":115.4,"iowait":12.1}},"average_relative_cpu_utilization":0.05603302719470258,"absolute_cpu_utilization":1.0040060269322977,"relative_mem_usage":0.016547286870945102,"absolute_mem_usage":3388928000.0,"absolute_mem_percent_usage":0.006265014311719565,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2928115712,"pss":3091853312,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":465.20000000000005,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.302,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":8.25,"mem":5.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":10.666666666666666,"mem":6.333333333333333,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":21.0,"mem":12.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":30.2,"mem":20.8,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23875000000000002,0.23224999999999998,0.22374999999999998],"cpu_freq":[{"current":2694.176,"min":1200.0,"max":3600.0},{"current":2706.738,"min":1200.0,"max":3600.0},{"current":2696.215,"min":1200.0,"max":3600.0},{"current":2715.664,"min":1200.0,"max":3600.0},{"current":2781.83,"min":1200.0,"max":3600.0},{"current":2637.355,"min":1200.0,"max":3600.0},{"current":2708.795,"min":1200.0,"max":3600.0},{"current":2702.421,"min":1200.0,"max":3600.0},{"current":2720.886,"min":1200.0,"max":3600.0},{"current":2724.399,"min":1200.0,"max":3600.0},{"current":2683.647,"min":1200.0,"max":3600.0},{"current":2747.121,"min":1200.0,"max":3600.0},{"current":2856.937,"min":1200.0,"max":3600.0},{"current":2695.686,"min":1200.0,"max":3600.0},{"current":2720.711,"min":1200.0,"max":3600.0},{"current":2694.247,"min":1200.0,"max":3600.0},{"current":2710.422,"min":1200.0,"max":3600.0},{"current":2695.933,"min":1200.0,"max":3600.0},{"current":2705.092,"min":1200.0,"max":3600.0},{"current":2625.211,"min":1200.0,"max":3600.0},{"current":2695.303,"min":1200.0,"max":3600.0},{"current":2697.345,"min":1200.0,"max":3600.0},{"current":2697.636,"min":1200.0,"max":3600.0},{"current":2691.891,"min":1200.0,"max":3600.0},{"current":2694.001,"min":1200.0,"max":3600.0},{"current":2696.035,"min":1200.0,"max":3600.0},{"current":2692.715,"min":1200.0,"max":3600.0},{"current":2695.462,"min":1200.0,"max":3600.0},{"current":2768.218,"min":1200.0,"max":3600.0},{"current":2697.353,"min":1200.0,"max":3600.0},{"current":2767.687,"min":1200.0,"max":3600.0},{"current":2701.191,"min":1200.0,"max":3600.0},{"current":2702.793,"min":1200.0,"max":3600.0},{"current":2701.159,"min":1200.0,"max":3600.0},{"current":2695.922,"min":1200.0,"max":3600.0},{"current":2696.294,"min":1200.0,"max":3600.0},{"current":2697.819,"min":1200.0,"max":3600.0},{"current":2680.832,"min":1200.0,"max":3600.0},{"current":2691.742,"min":1200.0,"max":3600.0},{"current":2682.323,"min":1200.0,"max":3600.0},{"current":2697.739,"min":1200.0,"max":3600.0},{"current":2682.563,"min":1200.0,"max":3600.0},{"current":2696.382,"min":1200.0,"max":3600.0},{"current":2699.697,"min":1200.0,"max":3600.0},{"current":2692.135,"min":1200.0,"max":3600.0},{"current":2684.567,"min":1200.0,"max":3600.0},{"current":2694.244,"min":1200.0,"max":3600.0},{"current":2694.071,"min":1200.0,"max":3600.0},{"current":2695.896,"min":1200.0,"max":3600.0},{"current":2694.735,"min":1200.0,"max":3600.0},{"current":2702.682,"min":1200.0,"max":3600.0},{"current":2800.631,"min":1200.0,"max":3600.0},{"current":2693.058,"min":1200.0,"max":3600.0},{"current":2700.719,"min":1200.0,"max":3600.0},{"current":2710.741,"min":1200.0,"max":3600.0},{"current":2824.07,"min":1200.0,"max":3600.0},{"current":2694.056,"min":1200.0,"max":3600.0},{"current":2709.017,"min":1200.0,"max":3600.0},{"current":2695.892,"min":1200.0,"max":3600.0},{"current":2843.688,"min":1200.0,"max":3600.0},{"current":2697.729,"min":1200.0,"max":3600.0},{"current":2696.49,"min":1200.0,"max":3600.0},{"current":2697.052,"min":1200.0,"max":3600.0},{"current":2774.133,"min":1200.0,"max":3600.0},{"current":2694.135,"min":1200.0,"max":3600.0},{"current":2694.205,"min":1200.0,"max":3600.0},{"current":2768.357,"min":1200.0,"max":3600.0},{"current":2696.608,"min":1200.0,"max":3600.0},{"current":2696.895,"min":1200.0,"max":3600.0},{"current":2693.794,"min":1200.0,"max":3600.0},{"current":2696.515,"min":1200.0,"max":3600.0},{"current":2696.396,"min":1200.0,"max":3600.0},{"current":2695.675,"min":1200.0,"max":3600.0},{"current":2695.901,"min":1200.0,"max":3600.0},{"current":2696.88,"min":1200.0,"max":3600.0},{"current":2695.701,"min":1200.0,"max":3600.0},{"current":2771.944,"min":1200.0,"max":3600.0},{"current":2776.603,"min":1200.0,"max":3600.0},{"current":2773.17,"min":1200.0,"max":3600.0},{"current":2774.691,"min":1200.0,"max":3600.0}],"disk_write_speed":71.69113853613189,"process_ids":[2113736,2113939]} +{"timestamp":1678267538.384187,"rapl_power_draw_absolute":166.78096041068517,"rapl_estimated_attributable_power_draw":8.415585810297685,"cpu_time_seconds":{"2113736":{"user":500.04,"system":100.5,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":8.18,"system":11.84,"children_user":3.42,"children_system":118.57,"iowait":12.43}},"average_relative_cpu_utilization":0.05709958218887596,"absolute_cpu_utilization":1.0036922633847192,"relative_mem_usage":0.01865094778023481,"absolute_mem_usage":3834798080.0,"absolute_mem_percent_usage":0.00708928158218608,"mem_info_per_process":{"2113736":{"rss":3783065600,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3373985792,"pss":3537723392,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":474.8,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.2575,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":19.0,"mem":12.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.5,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":18.75,"mem":10.5,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.75,"mem":18.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23925000000000002,0.232625,0.224125],"cpu_freq":[{"current":2694.172,"min":1200.0,"max":3600.0},{"current":2690.737,"min":1200.0,"max":3600.0},{"current":2774.814,"min":1200.0,"max":3600.0},{"current":2698.002,"min":1200.0,"max":3600.0},{"current":2761.958,"min":1200.0,"max":3600.0},{"current":2696.186,"min":1200.0,"max":3600.0},{"current":2698.279,"min":1200.0,"max":3600.0},{"current":2701.235,"min":1200.0,"max":3600.0},{"current":2694.15,"min":1200.0,"max":3600.0},{"current":2695.577,"min":1200.0,"max":3600.0},{"current":2696.392,"min":1200.0,"max":3600.0},{"current":2691.853,"min":1200.0,"max":3600.0},{"current":2700.764,"min":1200.0,"max":3600.0},{"current":2696.22,"min":1200.0,"max":3600.0},{"current":2696.831,"min":1200.0,"max":3600.0},{"current":2664.36,"min":1200.0,"max":3600.0},{"current":2755.441,"min":1200.0,"max":3600.0},{"current":2694.406,"min":1200.0,"max":3600.0},{"current":2710.163,"min":1200.0,"max":3600.0},{"current":2656.466,"min":1200.0,"max":3600.0},{"current":2695.164,"min":1200.0,"max":3600.0},{"current":2696.322,"min":1200.0,"max":3600.0},{"current":2696.644,"min":1200.0,"max":3600.0},{"current":2695.0,"min":1200.0,"max":3600.0},{"current":2695.808,"min":1200.0,"max":3600.0},{"current":2695.803,"min":1200.0,"max":3600.0},{"current":2696.805,"min":1200.0,"max":3600.0},{"current":2697.205,"min":1200.0,"max":3600.0},{"current":2698.204,"min":1200.0,"max":3600.0},{"current":2694.928,"min":1200.0,"max":3600.0},{"current":2767.027,"min":1200.0,"max":3600.0},{"current":2771.113,"min":1200.0,"max":3600.0},{"current":2696.238,"min":1200.0,"max":3600.0},{"current":2698.349,"min":1200.0,"max":3600.0},{"current":2696.768,"min":1200.0,"max":3600.0},{"current":2698.51,"min":1200.0,"max":3600.0},{"current":2699.764,"min":1200.0,"max":3600.0},{"current":2697.173,"min":1200.0,"max":3600.0},{"current":2765.019,"min":1200.0,"max":3600.0},{"current":2693.904,"min":1200.0,"max":3600.0},{"current":2749.716,"min":1200.0,"max":3600.0},{"current":2781.432,"min":1200.0,"max":3600.0},{"current":2680.754,"min":1200.0,"max":3600.0},{"current":2694.31,"min":1200.0,"max":3600.0},{"current":2694.099,"min":1200.0,"max":3600.0},{"current":2734.387,"min":1200.0,"max":3600.0},{"current":2694.22,"min":1200.0,"max":3600.0},{"current":2695.75,"min":1200.0,"max":3600.0},{"current":2695.16,"min":1200.0,"max":3600.0},{"current":2695.942,"min":1200.0,"max":3600.0},{"current":2760.194,"min":1200.0,"max":3600.0},{"current":2773.601,"min":1200.0,"max":3600.0},{"current":2695.775,"min":1200.0,"max":3600.0},{"current":2696.361,"min":1200.0,"max":3600.0},{"current":2694.227,"min":1200.0,"max":3600.0},{"current":2767.691,"min":1200.0,"max":3600.0},{"current":2693.252,"min":1200.0,"max":3600.0},{"current":2694.363,"min":1200.0,"max":3600.0},{"current":2694.302,"min":1200.0,"max":3600.0},{"current":2746.26,"min":1200.0,"max":3600.0},{"current":2697.501,"min":1200.0,"max":3600.0},{"current":2693.728,"min":1200.0,"max":3600.0},{"current":2694.094,"min":1200.0,"max":3600.0},{"current":2768.55,"min":1200.0,"max":3600.0},{"current":2694.265,"min":1200.0,"max":3600.0},{"current":2694.838,"min":1200.0,"max":3600.0},{"current":2773.455,"min":1200.0,"max":3600.0},{"current":2694.195,"min":1200.0,"max":3600.0},{"current":2697.651,"min":1200.0,"max":3600.0},{"current":2717.117,"min":1200.0,"max":3600.0},{"current":2686.527,"min":1200.0,"max":3600.0},{"current":2696.5,"min":1200.0,"max":3600.0},{"current":2695.505,"min":1200.0,"max":3600.0},{"current":2697.05,"min":1200.0,"max":3600.0},{"current":2695.832,"min":1200.0,"max":3600.0},{"current":2786.027,"min":1200.0,"max":3600.0},{"current":2784.071,"min":1200.0,"max":3600.0},{"current":2774.279,"min":1200.0,"max":3600.0},{"current":2759.956,"min":1200.0,"max":3600.0},{"current":2770.5,"min":1200.0,"max":3600.0}],"disk_write_speed":70.23206847809453,"process_ids":[2113736,2113939]} +{"timestamp":1678267554.03621,"rapl_power_draw_absolute":166.80156076865012,"rapl_estimated_attributable_power_draw":8.486358962877748,"cpu_time_seconds":{"2113736":{"user":513.2,"system":103.0,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":8.37,"system":12.16,"children_user":3.52,"children_system":121.69,"iowait":12.77}},"average_relative_cpu_utilization":0.0577391822567192,"absolute_cpu_utilization":1.0037062135403922,"relative_mem_usage":0.01804977633158023,"absolute_mem_usage":3718287360.0,"absolute_mem_percent_usage":0.006873891544903273,"mem_info_per_process":{"2113736":{"rss":3669635072,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3257475072,"pss":3421212672,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":858.03,"nvidia_estimated_attributable_power_draw":70.0,"average_gpu_estimated_utilization_absolute":0.25,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":20.0,"mem":13.25,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.6666666666666665,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.0,"mem":17.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.0},"cpu_count_adjusted_average_load":[0.23937499999999998,0.23312499999999997,0.224375],"cpu_freq":[{"current":2694.317,"min":1200.0,"max":3600.0},{"current":2696.54,"min":1200.0,"max":3600.0},{"current":2755.301,"min":1200.0,"max":3600.0},{"current":2699.757,"min":1200.0,"max":3600.0},{"current":2702.965,"min":1200.0,"max":3600.0},{"current":2693.142,"min":1200.0,"max":3600.0},{"current":2715.056,"min":1200.0,"max":3600.0},{"current":2712.269,"min":1200.0,"max":3600.0},{"current":2695.057,"min":1200.0,"max":3600.0},{"current":2703.239,"min":1200.0,"max":3600.0},{"current":2695.783,"min":1200.0,"max":3600.0},{"current":2603.795,"min":1200.0,"max":3600.0},{"current":2722.065,"min":1200.0,"max":3600.0},{"current":2708.952,"min":1200.0,"max":3600.0},{"current":2708.579,"min":1200.0,"max":3600.0},{"current":2692.012,"min":1200.0,"max":3600.0},{"current":2828.978,"min":1200.0,"max":3600.0},{"current":2784.334,"min":1200.0,"max":3600.0},{"current":2713.547,"min":1200.0,"max":3600.0},{"current":2694.846,"min":1200.0,"max":3600.0},{"current":2695.186,"min":1200.0,"max":3600.0},{"current":2689.079,"min":1200.0,"max":3600.0},{"current":2696.22,"min":1200.0,"max":3600.0},{"current":2672.238,"min":1200.0,"max":3600.0},{"current":2696.447,"min":1200.0,"max":3600.0},{"current":2697.741,"min":1200.0,"max":3600.0},{"current":2660.768,"min":1200.0,"max":3600.0},{"current":2696.841,"min":1200.0,"max":3600.0},{"current":2696.608,"min":1200.0,"max":3600.0},{"current":2698.455,"min":1200.0,"max":3600.0},{"current":2768.949,"min":1200.0,"max":3600.0},{"current":2770.705,"min":1200.0,"max":3600.0},{"current":2696.632,"min":1200.0,"max":3600.0},{"current":2702.589,"min":1200.0,"max":3600.0},{"current":2695.719,"min":1200.0,"max":3600.0},{"current":2697.26,"min":1200.0,"max":3600.0},{"current":2696.577,"min":1200.0,"max":3600.0},{"current":2661.578,"min":1200.0,"max":3600.0},{"current":2694.13,"min":1200.0,"max":3600.0},{"current":2693.472,"min":1200.0,"max":3600.0},{"current":2723.012,"min":1200.0,"max":3600.0},{"current":2816.914,"min":1200.0,"max":3600.0},{"current":2692.291,"min":1200.0,"max":3600.0},{"current":2694.945,"min":1200.0,"max":3600.0},{"current":2698.935,"min":1200.0,"max":3600.0},{"current":2739.456,"min":1200.0,"max":3600.0},{"current":2694.244,"min":1200.0,"max":3600.0},{"current":2695.174,"min":1200.0,"max":3600.0},{"current":2698.762,"min":1200.0,"max":3600.0},{"current":2694.278,"min":1200.0,"max":3600.0},{"current":2735.08,"min":1200.0,"max":3600.0},{"current":2720.952,"min":1200.0,"max":3600.0},{"current":2694.674,"min":1200.0,"max":3600.0},{"current":2694.233,"min":1200.0,"max":3600.0},{"current":2694.675,"min":1200.0,"max":3600.0},{"current":2700.236,"min":1200.0,"max":3600.0},{"current":2695.865,"min":1200.0,"max":3600.0},{"current":2696.669,"min":1200.0,"max":3600.0},{"current":2754.241,"min":1200.0,"max":3600.0},{"current":2754.418,"min":1200.0,"max":3600.0},{"current":2693.825,"min":1200.0,"max":3600.0},{"current":2696.306,"min":1200.0,"max":3600.0},{"current":2694.027,"min":1200.0,"max":3600.0},{"current":2771.646,"min":1200.0,"max":3600.0},{"current":2695.143,"min":1200.0,"max":3600.0},{"current":2696.937,"min":1200.0,"max":3600.0},{"current":2726.574,"min":1200.0,"max":3600.0},{"current":2693.763,"min":1200.0,"max":3600.0},{"current":2697.245,"min":1200.0,"max":3600.0},{"current":2694.821,"min":1200.0,"max":3600.0},{"current":2695.556,"min":1200.0,"max":3600.0},{"current":2700.962,"min":1200.0,"max":3600.0},{"current":2694.013,"min":1200.0,"max":3600.0},{"current":2694.384,"min":1200.0,"max":3600.0},{"current":2695.377,"min":1200.0,"max":3600.0},{"current":2694.42,"min":1200.0,"max":3600.0},{"current":2738.807,"min":1200.0,"max":3600.0},{"current":2664.67,"min":1200.0,"max":3600.0},{"current":2723.266,"min":1200.0,"max":3600.0},{"current":2686.549,"min":1200.0,"max":3600.0}],"disk_write_speed":71.64552214727397,"process_ids":[2113736,2113939]} +{"timestamp":1678267569.536271,"rapl_power_draw_absolute":166.7143757261797,"rapl_estimated_attributable_power_draw":8.34771038163865,"cpu_time_seconds":{"2113736":{"user":526.14,"system":105.56,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":8.58,"system":12.46,"children_user":3.66,"children_system":124.75,"iowait":13.11}},"average_relative_cpu_utilization":0.05687948063583863,"absolute_cpu_utilization":0.9987159140819424,"relative_mem_usage":0.01745372869236869,"absolute_mem_usage":3577999360.0,"absolute_mem_percent_usage":0.0066145451298237805,"mem_info_per_process":{"2113736":{"rss":3522080768,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3117187072,"pss":3280924672,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":479.9100000000001,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.2275,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":7.2,"mem":4.4,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":4.5,"mem":2.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.75,"mem":15.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.236125,0.23275,0.224375],"cpu_freq":[{"current":2694.272,"min":1200.0,"max":3600.0},{"current":2693.127,"min":1200.0,"max":3600.0},{"current":2724.612,"min":1200.0,"max":3600.0},{"current":2696.074,"min":1200.0,"max":3600.0},{"current":2702.754,"min":1200.0,"max":3600.0},{"current":2703.688,"min":1200.0,"max":3600.0},{"current":2693.974,"min":1200.0,"max":3600.0},{"current":2702.241,"min":1200.0,"max":3600.0},{"current":2696.092,"min":1200.0,"max":3600.0},{"current":2695.832,"min":1200.0,"max":3600.0},{"current":2694.084,"min":1200.0,"max":3600.0},{"current":2686.179,"min":1200.0,"max":3600.0},{"current":2695.384,"min":1200.0,"max":3600.0},{"current":2701.442,"min":1200.0,"max":3600.0},{"current":2697.806,"min":1200.0,"max":3600.0},{"current":2692.52,"min":1200.0,"max":3600.0},{"current":2730.463,"min":1200.0,"max":3600.0},{"current":2695.261,"min":1200.0,"max":3600.0},{"current":2695.858,"min":1200.0,"max":3600.0},{"current":2620.728,"min":1200.0,"max":3600.0},{"current":2771.294,"min":1200.0,"max":3600.0},{"current":2694.985,"min":1200.0,"max":3600.0},{"current":2697.994,"min":1200.0,"max":3600.0},{"current":2695.869,"min":1200.0,"max":3600.0},{"current":2696.304,"min":1200.0,"max":3600.0},{"current":2696.417,"min":1200.0,"max":3600.0},{"current":2693.65,"min":1200.0,"max":3600.0},{"current":2729.218,"min":1200.0,"max":3600.0},{"current":2694.595,"min":1200.0,"max":3600.0},{"current":2694.837,"min":1200.0,"max":3600.0},{"current":2761.463,"min":1200.0,"max":3600.0},{"current":2773.755,"min":1200.0,"max":3600.0},{"current":2696.019,"min":1200.0,"max":3600.0},{"current":2697.004,"min":1200.0,"max":3600.0},{"current":2695.784,"min":1200.0,"max":3600.0},{"current":2655.777,"min":1200.0,"max":3600.0},{"current":2697.016,"min":1200.0,"max":3600.0},{"current":2634.397,"min":1200.0,"max":3600.0},{"current":2694.989,"min":1200.0,"max":3600.0},{"current":2693.765,"min":1200.0,"max":3600.0},{"current":2694.111,"min":1200.0,"max":3600.0},{"current":2758.455,"min":1200.0,"max":3600.0},{"current":2696.241,"min":1200.0,"max":3600.0},{"current":2696.251,"min":1200.0,"max":3600.0},{"current":2693.88,"min":1200.0,"max":3600.0},{"current":2694.128,"min":1200.0,"max":3600.0},{"current":2748.491,"min":1200.0,"max":3600.0},{"current":2698.742,"min":1200.0,"max":3600.0},{"current":2696.5,"min":1200.0,"max":3600.0},{"current":2694.803,"min":1200.0,"max":3600.0},{"current":2772.437,"min":1200.0,"max":3600.0},{"current":2714.038,"min":1200.0,"max":3600.0},{"current":2693.895,"min":1200.0,"max":3600.0},{"current":2694.607,"min":1200.0,"max":3600.0},{"current":2779.884,"min":1200.0,"max":3600.0},{"current":2816.067,"min":1200.0,"max":3600.0},{"current":2872.552,"min":1200.0,"max":3600.0},{"current":2705.747,"min":1200.0,"max":3600.0},{"current":2694.482,"min":1200.0,"max":3600.0},{"current":2862.286,"min":1200.0,"max":3600.0},{"current":2762.606,"min":1200.0,"max":3600.0},{"current":2699.568,"min":1200.0,"max":3600.0},{"current":2693.786,"min":1200.0,"max":3600.0},{"current":2774.95,"min":1200.0,"max":3600.0},{"current":2694.46,"min":1200.0,"max":3600.0},{"current":2696.509,"min":1200.0,"max":3600.0},{"current":2774.614,"min":1200.0,"max":3600.0},{"current":2694.301,"min":1200.0,"max":3600.0},{"current":2695.732,"min":1200.0,"max":3600.0},{"current":2695.071,"min":1200.0,"max":3600.0},{"current":2696.048,"min":1200.0,"max":3600.0},{"current":2624.132,"min":1200.0,"max":3600.0},{"current":2695.764,"min":1200.0,"max":3600.0},{"current":2696.29,"min":1200.0,"max":3600.0},{"current":2695.467,"min":1200.0,"max":3600.0},{"current":2830.22,"min":1200.0,"max":3600.0},{"current":2790.96,"min":1200.0,"max":3600.0},{"current":2770.908,"min":1200.0,"max":3600.0},{"current":2697.187,"min":1200.0,"max":3600.0},{"current":2757.242,"min":1200.0,"max":3600.0}],"disk_write_speed":71.14660791299279,"process_ids":[2113736,2113939]} +{"timestamp":1678267585.284219,"rapl_power_draw_absolute":166.04932282241668,"rapl_estimated_attributable_power_draw":8.508012408826584,"cpu_time_seconds":{"2113736":{"user":539.39,"system":108.07,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":8.78,"system":12.78,"children_user":3.77,"children_system":127.92,"iowait":13.45}},"average_relative_cpu_utilization":0.05825297375008503,"absolute_cpu_utilization":0.9991297237014489,"relative_mem_usage":0.017346131140382658,"absolute_mem_usage":3561453568.0,"absolute_mem_percent_usage":0.006583957397160609,"mem_info_per_process":{"2113736":{"rss":3503230976,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3100643328,"pss":3264378880,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":474.76000000000005,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.2075,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":15.666666666666666,"mem":9.666666666666666,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":3.0,"mem":1.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":20.75,"mem":13.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23562500000000003,0.23275,0.2245],"cpu_freq":[{"current":2695.165,"min":1200.0,"max":3600.0},{"current":2716.743,"min":1200.0,"max":3600.0},{"current":2816.014,"min":1200.0,"max":3600.0},{"current":2706.51,"min":1200.0,"max":3600.0},{"current":2699.926,"min":1200.0,"max":3600.0},{"current":2707.922,"min":1200.0,"max":3600.0},{"current":2720.339,"min":1200.0,"max":3600.0},{"current":2696.669,"min":1200.0,"max":3600.0},{"current":2710.772,"min":1200.0,"max":3600.0},{"current":2708.123,"min":1200.0,"max":3600.0},{"current":2693.036,"min":1200.0,"max":3600.0},{"current":2697.869,"min":1200.0,"max":3600.0},{"current":2707.339,"min":1200.0,"max":3600.0},{"current":2693.612,"min":1200.0,"max":3600.0},{"current":2700.504,"min":1200.0,"max":3600.0},{"current":2697.523,"min":1200.0,"max":3600.0},{"current":2837.14,"min":1200.0,"max":3600.0},{"current":2713.948,"min":1200.0,"max":3600.0},{"current":2694.988,"min":1200.0,"max":3600.0},{"current":2664.848,"min":1200.0,"max":3600.0},{"current":2805.266,"min":1200.0,"max":3600.0},{"current":2694.603,"min":1200.0,"max":3600.0},{"current":2695.985,"min":1200.0,"max":3600.0},{"current":2698.176,"min":1200.0,"max":3600.0},{"current":2698.653,"min":1200.0,"max":3600.0},{"current":2696.641,"min":1200.0,"max":3600.0},{"current":2631.428,"min":1200.0,"max":3600.0},{"current":2718.646,"min":1200.0,"max":3600.0},{"current":2694.552,"min":1200.0,"max":3600.0},{"current":2699.322,"min":1200.0,"max":3600.0},{"current":2810.04,"min":1200.0,"max":3600.0},{"current":2776.955,"min":1200.0,"max":3600.0},{"current":2699.615,"min":1200.0,"max":3600.0},{"current":2696.999,"min":1200.0,"max":3600.0},{"current":2696.867,"min":1200.0,"max":3600.0},{"current":2608.208,"min":1200.0,"max":3600.0},{"current":2697.129,"min":1200.0,"max":3600.0},{"current":2692.109,"min":1200.0,"max":3600.0},{"current":2695.375,"min":1200.0,"max":3600.0},{"current":2698.262,"min":1200.0,"max":3600.0},{"current":2706.712,"min":1200.0,"max":3600.0},{"current":2848.803,"min":1200.0,"max":3600.0},{"current":2657.572,"min":1200.0,"max":3600.0},{"current":2709.552,"min":1200.0,"max":3600.0},{"current":2694.23,"min":1200.0,"max":3600.0},{"current":2694.779,"min":1200.0,"max":3600.0},{"current":2694.529,"min":1200.0,"max":3600.0},{"current":2835.741,"min":1200.0,"max":3600.0},{"current":2694.872,"min":1200.0,"max":3600.0},{"current":2706.824,"min":1200.0,"max":3600.0},{"current":2863.357,"min":1200.0,"max":3600.0},{"current":2709.573,"min":1200.0,"max":3600.0},{"current":2694.93,"min":1200.0,"max":3600.0},{"current":2840.55,"min":1200.0,"max":3600.0},{"current":2694.458,"min":1200.0,"max":3600.0},{"current":2713.048,"min":1200.0,"max":3600.0},{"current":2692.265,"min":1200.0,"max":3600.0},{"current":2839.697,"min":1200.0,"max":3600.0},{"current":2706.792,"min":1200.0,"max":3600.0},{"current":2852.852,"min":1200.0,"max":3600.0},{"current":2694.302,"min":1200.0,"max":3600.0},{"current":2694.403,"min":1200.0,"max":3600.0},{"current":2693.916,"min":1200.0,"max":3600.0},{"current":2771.908,"min":1200.0,"max":3600.0},{"current":2694.243,"min":1200.0,"max":3600.0},{"current":2709.626,"min":1200.0,"max":3600.0},{"current":2840.013,"min":1200.0,"max":3600.0},{"current":2695.42,"min":1200.0,"max":3600.0},{"current":2693.774,"min":1200.0,"max":3600.0},{"current":2693.999,"min":1200.0,"max":3600.0},{"current":2659.799,"min":1200.0,"max":3600.0},{"current":2652.363,"min":1200.0,"max":3600.0},{"current":2696.168,"min":1200.0,"max":3600.0},{"current":2695.513,"min":1200.0,"max":3600.0},{"current":2695.436,"min":1200.0,"max":3600.0},{"current":2782.12,"min":1200.0,"max":3600.0},{"current":2769.269,"min":1200.0,"max":3600.0},{"current":2773.28,"min":1200.0,"max":3600.0},{"current":2694.45,"min":1200.0,"max":3600.0},{"current":2768.625,"min":1200.0,"max":3600.0}],"disk_write_speed":71.79961245931418,"process_ids":[2113736,2113939]} +{"timestamp":1678267601.860253,"rapl_power_draw_absolute":167.632072807891,"rapl_estimated_attributable_power_draw":8.35344344294036,"cpu_time_seconds":{"2113736":{"user":553.49,"system":110.56,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":8.99,"system":13.12,"children_user":3.84,"children_system":131.14,"iowait":13.79}},"average_relative_cpu_utilization":0.056410280661034956,"absolute_cpu_utilization":1.003712298125446,"relative_mem_usage":0.01880749308511675,"absolute_mem_usage":3862061056.0,"absolute_mem_percent_usage":0.007139681866529704,"mem_info_per_process":{"2113736":{"rss":3808911360,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3401248768,"pss":3564986368,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":480.07000000000005,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.2,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":23.0,"mem":15.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":20.0,"mem":12.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23500000000000001,0.23275,0.224625],"cpu_freq":[{"current":2694.731,"min":1200.0,"max":3600.0},{"current":2696.391,"min":1200.0,"max":3600.0},{"current":2664.677,"min":1200.0,"max":3600.0},{"current":2702.685,"min":1200.0,"max":3600.0},{"current":2704.505,"min":1200.0,"max":3600.0},{"current":2693.905,"min":1200.0,"max":3600.0},{"current":2700.491,"min":1200.0,"max":3600.0},{"current":2693.894,"min":1200.0,"max":3600.0},{"current":2703.716,"min":1200.0,"max":3600.0},{"current":2695.699,"min":1200.0,"max":3600.0},{"current":2636.13,"min":1200.0,"max":3600.0},{"current":2696.78,"min":1200.0,"max":3600.0},{"current":2695.166,"min":1200.0,"max":3600.0},{"current":2693.863,"min":1200.0,"max":3600.0},{"current":2694.648,"min":1200.0,"max":3600.0},{"current":2680.207,"min":1200.0,"max":3600.0},{"current":2687.452,"min":1200.0,"max":3600.0},{"current":2693.776,"min":1200.0,"max":3600.0},{"current":2695.964,"min":1200.0,"max":3600.0},{"current":2694.129,"min":1200.0,"max":3600.0},{"current":2727.233,"min":1200.0,"max":3600.0},{"current":2699.796,"min":1200.0,"max":3600.0},{"current":2695.948,"min":1200.0,"max":3600.0},{"current":2693.86,"min":1200.0,"max":3600.0},{"current":2696.885,"min":1200.0,"max":3600.0},{"current":2697.934,"min":1200.0,"max":3600.0},{"current":2692.246,"min":1200.0,"max":3600.0},{"current":2695.422,"min":1200.0,"max":3600.0},{"current":2697.783,"min":1200.0,"max":3600.0},{"current":2710.562,"min":1200.0,"max":3600.0},{"current":2776.285,"min":1200.0,"max":3600.0},{"current":2761.607,"min":1200.0,"max":3600.0},{"current":2698.83,"min":1200.0,"max":3600.0},{"current":2697.839,"min":1200.0,"max":3600.0},{"current":2695.512,"min":1200.0,"max":3600.0},{"current":2694.769,"min":1200.0,"max":3600.0},{"current":2696.133,"min":1200.0,"max":3600.0},{"current":2693.112,"min":1200.0,"max":3600.0},{"current":2695.211,"min":1200.0,"max":3600.0},{"current":2695.361,"min":1200.0,"max":3600.0},{"current":2711.307,"min":1200.0,"max":3600.0},{"current":2825.722,"min":1200.0,"max":3600.0},{"current":2698.711,"min":1200.0,"max":3600.0},{"current":2694.122,"min":1200.0,"max":3600.0},{"current":2703.202,"min":1200.0,"max":3600.0},{"current":2698.027,"min":1200.0,"max":3600.0},{"current":2710.02,"min":1200.0,"max":3600.0},{"current":2819.57,"min":1200.0,"max":3600.0},{"current":2700.86,"min":1200.0,"max":3600.0},{"current":2694.999,"min":1200.0,"max":3600.0},{"current":2751.768,"min":1200.0,"max":3600.0},{"current":2694.88,"min":1200.0,"max":3600.0},{"current":2691.092,"min":1200.0,"max":3600.0},{"current":2758.636,"min":1200.0,"max":3600.0},{"current":2693.829,"min":1200.0,"max":3600.0},{"current":2678.285,"min":1200.0,"max":3600.0},{"current":2696.33,"min":1200.0,"max":3600.0},{"current":2757.785,"min":1200.0,"max":3600.0},{"current":2698.905,"min":1200.0,"max":3600.0},{"current":2696.095,"min":1200.0,"max":3600.0},{"current":2653.565,"min":1200.0,"max":3600.0},{"current":2696.007,"min":1200.0,"max":3600.0},{"current":2695.541,"min":1200.0,"max":3600.0},{"current":2757.554,"min":1200.0,"max":3600.0},{"current":2695.446,"min":1200.0,"max":3600.0},{"current":2695.527,"min":1200.0,"max":3600.0},{"current":2682.113,"min":1200.0,"max":3600.0},{"current":2696.393,"min":1200.0,"max":3600.0},{"current":2694.979,"min":1200.0,"max":3600.0},{"current":2694.98,"min":1200.0,"max":3600.0},{"current":2627.885,"min":1200.0,"max":3600.0},{"current":2696.137,"min":1200.0,"max":3600.0},{"current":2694.387,"min":1200.0,"max":3600.0},{"current":2697.405,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2747.831,"min":1200.0,"max":3600.0},{"current":2780.049,"min":1200.0,"max":3600.0},{"current":2771.55,"min":1200.0,"max":3600.0},{"current":2696.847,"min":1200.0,"max":3600.0},{"current":2773.83,"min":1200.0,"max":3600.0}],"disk_write_speed":71.53195501010482,"process_ids":[2113736,2113939]} +{"timestamp":1678267617.504193,"rapl_power_draw_absolute":165.89626458515013,"rapl_estimated_attributable_power_draw":8.546088030756202,"cpu_time_seconds":{"2113736":{"user":566.58,"system":113.11,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":9.18,"system":13.44,"children_user":3.9,"children_system":134.31,"iowait":14.13}},"average_relative_cpu_utilization":0.05857738727173113,"absolute_cpu_utilization":0.9937007274467923,"relative_mem_usage":0.01841830099734838,"absolute_mem_usage":3781083136.0,"absolute_mem_percent_usage":0.006989980300803527,"mem_info_per_process":{"2113736":{"rss":3728621568,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3320270848,"pss":3484008448,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":463.78,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.18,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":7.0,"mem":4.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":12.666666666666666,"mem":7.333333333333333,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":14.666666666666666,"mem":8.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":18.0,"mem":12.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.236375,0.23312499999999997,0.225],"cpu_freq":[{"current":2695.063,"min":1200.0,"max":3600.0},{"current":2753.074,"min":1200.0,"max":3600.0},{"current":2857.16,"min":1200.0,"max":3600.0},{"current":2708.03,"min":1200.0,"max":3600.0},{"current":2709.63,"min":1200.0,"max":3600.0},{"current":2697.265,"min":1200.0,"max":3600.0},{"current":2708.68,"min":1200.0,"max":3600.0},{"current":2691.992,"min":1200.0,"max":3600.0},{"current":2695.628,"min":1200.0,"max":3600.0},{"current":2724.923,"min":1200.0,"max":3600.0},{"current":2623.623,"min":1200.0,"max":3600.0},{"current":2702.454,"min":1200.0,"max":3600.0},{"current":2697.338,"min":1200.0,"max":3600.0},{"current":2846.35,"min":1200.0,"max":3600.0},{"current":2708.428,"min":1200.0,"max":3600.0},{"current":2828.168,"min":1200.0,"max":3600.0},{"current":2857.395,"min":1200.0,"max":3600.0},{"current":2624.257,"min":1200.0,"max":3600.0},{"current":2708.617,"min":1200.0,"max":3600.0},{"current":2661.254,"min":1200.0,"max":3600.0},{"current":2795.679,"min":1200.0,"max":3600.0},{"current":2747.022,"min":1200.0,"max":3600.0},{"current":2734.752,"min":1200.0,"max":3600.0},{"current":2744.504,"min":1200.0,"max":3600.0},{"current":2767.334,"min":1200.0,"max":3600.0},{"current":2744.849,"min":1200.0,"max":3600.0},{"current":2827.549,"min":1200.0,"max":3600.0},{"current":2795.962,"min":1200.0,"max":3600.0},{"current":2710.915,"min":1200.0,"max":3600.0},{"current":2743.596,"min":1200.0,"max":3600.0},{"current":2917.919,"min":1200.0,"max":3600.0},{"current":2822.983,"min":1200.0,"max":3600.0},{"current":2872.411,"min":1200.0,"max":3600.0},{"current":2815.792,"min":1200.0,"max":3600.0},{"current":2745.692,"min":1200.0,"max":3600.0},{"current":2938.727,"min":1200.0,"max":3600.0},{"current":2870.284,"min":1200.0,"max":3600.0},{"current":2824.764,"min":1200.0,"max":3600.0},{"current":2827.248,"min":1200.0,"max":3600.0},{"current":2757.883,"min":1200.0,"max":3600.0},{"current":2734.99,"min":1200.0,"max":3600.0},{"current":2724.304,"min":1200.0,"max":3600.0},{"current":2693.885,"min":1200.0,"max":3600.0},{"current":2694.255,"min":1200.0,"max":3600.0},{"current":2694.393,"min":1200.0,"max":3600.0},{"current":2693.781,"min":1200.0,"max":3600.0},{"current":2706.808,"min":1200.0,"max":3600.0},{"current":2837.657,"min":1200.0,"max":3600.0},{"current":2709.851,"min":1200.0,"max":3600.0},{"current":2784.928,"min":1200.0,"max":3600.0},{"current":2840.731,"min":1200.0,"max":3600.0},{"current":2708.164,"min":1200.0,"max":3600.0},{"current":2707.606,"min":1200.0,"max":3600.0},{"current":2695.085,"min":1200.0,"max":3600.0},{"current":2707.922,"min":1200.0,"max":3600.0},{"current":2866.035,"min":1200.0,"max":3600.0},{"current":2689.388,"min":1200.0,"max":3600.0},{"current":2864.899,"min":1200.0,"max":3600.0},{"current":2698.369,"min":1200.0,"max":3600.0},{"current":2772.47,"min":1200.0,"max":3600.0},{"current":2754.769,"min":1200.0,"max":3600.0},{"current":2706.535,"min":1200.0,"max":3600.0},{"current":2707.743,"min":1200.0,"max":3600.0},{"current":2739.876,"min":1200.0,"max":3600.0},{"current":2784.916,"min":1200.0,"max":3600.0},{"current":2707.26,"min":1200.0,"max":3600.0},{"current":2975.12,"min":1200.0,"max":3600.0},{"current":2881.207,"min":1200.0,"max":3600.0},{"current":2706.407,"min":1200.0,"max":3600.0},{"current":2870.676,"min":1200.0,"max":3600.0},{"current":2782.324,"min":1200.0,"max":3600.0},{"current":2849.511,"min":1200.0,"max":3600.0},{"current":2762.335,"min":1200.0,"max":3600.0},{"current":2875.31,"min":1200.0,"max":3600.0},{"current":2745.588,"min":1200.0,"max":3600.0},{"current":2969.5,"min":1200.0,"max":3600.0},{"current":2960.501,"min":1200.0,"max":3600.0},{"current":2973.677,"min":1200.0,"max":3600.0},{"current":2819.559,"min":1200.0,"max":3600.0},{"current":2955.803,"min":1200.0,"max":3600.0}],"disk_write_speed":72.24088791692095,"process_ids":[2113736,2113939]} +{"timestamp":1678267633.05222,"rapl_power_draw_absolute":159.72772324896488,"rapl_estimated_attributable_power_draw":9.786245464976732,"cpu_time_seconds":{"2113736":{"user":579.7,"system":115.55,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":9.37,"system":13.75,"children_user":3.99,"children_system":137.44,"iowait":14.48}},"average_relative_cpu_utilization":0.07022188547137431,"absolute_cpu_utilization":0.9987169986116249,"relative_mem_usage":0.018889759097996426,"absolute_mem_usage":3888439296.0,"absolute_mem_percent_usage":0.007188446564722753,"mem_info_per_process":{"2113736":{"rss":3835191296,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3427627008,"pss":3591364608,"swap":0},"2113939":{"rss":448147456,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160346112,"pss":297074688,"swap":0}},"nvidia_draw_absolute":476.63,"nvidia_estimated_attributable_power_draw":70.0,"average_gpu_estimated_utilization_absolute":0.15,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":11.75,"mem":7.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":11.5,"mem":6.75,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":19.5,"mem":11.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":15.0,"mem":9.25,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.0},"cpu_count_adjusted_average_load":[0.22774999999999998,0.23137500000000003,0.2245],"cpu_freq":[{"current":2693.988,"min":1200.0,"max":3600.0},{"current":2694.333,"min":1200.0,"max":3600.0},{"current":2697.183,"min":1200.0,"max":3600.0},{"current":2694.247,"min":1200.0,"max":3600.0},{"current":2708.527,"min":1200.0,"max":3600.0},{"current":2700.171,"min":1200.0,"max":3600.0},{"current":2697.208,"min":1200.0,"max":3600.0},{"current":2826.107,"min":1200.0,"max":3600.0},{"current":2695.008,"min":1200.0,"max":3600.0},{"current":2701.708,"min":1200.0,"max":3600.0},{"current":2694.375,"min":1200.0,"max":3600.0},{"current":2696.209,"min":1200.0,"max":3600.0},{"current":2701.097,"min":1200.0,"max":3600.0},{"current":2697.023,"min":1200.0,"max":3600.0},{"current":2694.33,"min":1200.0,"max":3600.0},{"current":2701.129,"min":1200.0,"max":3600.0},{"current":2741.024,"min":1200.0,"max":3600.0},{"current":2694.009,"min":1200.0,"max":3600.0},{"current":2694.983,"min":1200.0,"max":3600.0},{"current":2695.801,"min":1200.0,"max":3600.0},{"current":2693.809,"min":1200.0,"max":3600.0},{"current":2699.405,"min":1200.0,"max":3600.0},{"current":2701.246,"min":1200.0,"max":3600.0},{"current":2696.961,"min":1200.0,"max":3600.0},{"current":2696.125,"min":1200.0,"max":3600.0},{"current":2697.181,"min":1200.0,"max":3600.0},{"current":2695.723,"min":1200.0,"max":3600.0},{"current":2648.472,"min":1200.0,"max":3600.0},{"current":2694.025,"min":1200.0,"max":3600.0},{"current":2695.613,"min":1200.0,"max":3600.0},{"current":2698.304,"min":1200.0,"max":3600.0},{"current":2670.931,"min":1200.0,"max":3600.0},{"current":2698.302,"min":1200.0,"max":3600.0},{"current":2612.526,"min":1200.0,"max":3600.0},{"current":2694.784,"min":1200.0,"max":3600.0},{"current":2648.414,"min":1200.0,"max":3600.0},{"current":2695.477,"min":1200.0,"max":3600.0},{"current":2694.292,"min":1200.0,"max":3600.0},{"current":2629.241,"min":1200.0,"max":3600.0},{"current":2607.748,"min":1200.0,"max":3600.0},{"current":2715.56,"min":1200.0,"max":3600.0},{"current":2698.139,"min":1200.0,"max":3600.0},{"current":2694.637,"min":1200.0,"max":3600.0},{"current":2695.377,"min":1200.0,"max":3600.0},{"current":2693.995,"min":1200.0,"max":3600.0},{"current":2695.193,"min":1200.0,"max":3600.0},{"current":2673.356,"min":1200.0,"max":3600.0},{"current":2691.022,"min":1200.0,"max":3600.0},{"current":2694.733,"min":1200.0,"max":3600.0},{"current":2693.859,"min":1200.0,"max":3600.0},{"current":2670.41,"min":1200.0,"max":3600.0},{"current":2694.623,"min":1200.0,"max":3600.0},{"current":2694.141,"min":1200.0,"max":3600.0},{"current":2696.983,"min":1200.0,"max":3600.0},{"current":2695.934,"min":1200.0,"max":3600.0},{"current":2695.551,"min":1200.0,"max":3600.0},{"current":2697.004,"min":1200.0,"max":3600.0},{"current":2737.359,"min":1200.0,"max":3600.0},{"current":2735.021,"min":1200.0,"max":3600.0},{"current":2710.606,"min":1200.0,"max":3600.0},{"current":2694.78,"min":1200.0,"max":3600.0},{"current":2696.53,"min":1200.0,"max":3600.0},{"current":2730.231,"min":1200.0,"max":3600.0},{"current":2693.969,"min":1200.0,"max":3600.0},{"current":2694.243,"min":1200.0,"max":3600.0},{"current":2695.065,"min":1200.0,"max":3600.0},{"current":2693.156,"min":1200.0,"max":3600.0},{"current":2695.795,"min":1200.0,"max":3600.0},{"current":2698.558,"min":1200.0,"max":3600.0},{"current":2695.251,"min":1200.0,"max":3600.0},{"current":2694.045,"min":1200.0,"max":3600.0},{"current":2693.643,"min":1200.0,"max":3600.0},{"current":2693.762,"min":1200.0,"max":3600.0},{"current":2700.695,"min":1200.0,"max":3600.0},{"current":2693.888,"min":1200.0,"max":3600.0},{"current":2695.207,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2673.148,"min":1200.0,"max":3600.0},{"current":2657.734,"min":1200.0,"max":3600.0},{"current":2686.018,"min":1200.0,"max":3600.0}],"disk_write_speed":58.324265344585115,"process_ids":[2113736,2113939]} +{"timestamp":1678267649.168202,"rapl_power_draw_absolute":163.8306884985484,"rapl_estimated_attributable_power_draw":8.282163354009814,"cpu_time_seconds":{"2113736":{"user":593.29,"system":118.09,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":9.65,"system":14.09,"children_user":4.07,"children_system":140.67,"iowait":14.76}},"average_relative_cpu_utilization":0.05757351004119755,"absolute_cpu_utilization":1.0037236594825174,"relative_mem_usage":0.019198041303224143,"absolute_mem_usage":3945037824.0,"absolute_mem_percent_usage":0.007293078645410882,"mem_info_per_process":{"2113736":{"rss":3892174848,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3484221440,"pss":3647956992,"swap":0},"2113939":{"rss":448151552,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160354304,"pss":297080832,"swap":0}},"nvidia_draw_absolute":728.56,"nvidia_estimated_attributable_power_draw":71.49,"average_gpu_estimated_utilization_absolute":0.1325,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":9.0,"mem":6.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":7.666666666666667,"mem":4.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":72.33333333333333,"mem":41.666666666666664,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":13.25,"mem":7.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":71.49},"cpu_count_adjusted_average_load":[0.22712500000000002,0.23112499999999997,0.2245],"cpu_freq":[{"current":2645.189,"min":1200.0,"max":3600.0},{"current":2698.936,"min":1200.0,"max":3600.0},{"current":2711.667,"min":1200.0,"max":3600.0},{"current":2694.483,"min":1200.0,"max":3600.0},{"current":2706.275,"min":1200.0,"max":3600.0},{"current":2711.001,"min":1200.0,"max":3600.0},{"current":2764.303,"min":1200.0,"max":3600.0},{"current":2695.125,"min":1200.0,"max":3600.0},{"current":2739.543,"min":1200.0,"max":3600.0},{"current":2697.552,"min":1200.0,"max":3600.0},{"current":2715.514,"min":1200.0,"max":3600.0},{"current":2710.07,"min":1200.0,"max":3600.0},{"current":2708.172,"min":1200.0,"max":3600.0},{"current":2698.038,"min":1200.0,"max":3600.0},{"current":2696.355,"min":1200.0,"max":3600.0},{"current":2710.108,"min":1200.0,"max":3600.0},{"current":2740.729,"min":1200.0,"max":3600.0},{"current":2733.191,"min":1200.0,"max":3600.0},{"current":2597.09,"min":1200.0,"max":3600.0},{"current":2665.874,"min":1200.0,"max":3600.0},{"current":2714.516,"min":1200.0,"max":3600.0},{"current":2696.056,"min":1200.0,"max":3600.0},{"current":2755.822,"min":1200.0,"max":3600.0},{"current":2697.945,"min":1200.0,"max":3600.0},{"current":2695.648,"min":1200.0,"max":3600.0},{"current":2695.034,"min":1200.0,"max":3600.0},{"current":2662.066,"min":1200.0,"max":3600.0},{"current":2695.09,"min":1200.0,"max":3600.0},{"current":2694.992,"min":1200.0,"max":3600.0},{"current":2696.82,"min":1200.0,"max":3600.0},{"current":2698.038,"min":1200.0,"max":3600.0},{"current":2688.039,"min":1200.0,"max":3600.0},{"current":2694.457,"min":1200.0,"max":3600.0},{"current":2693.762,"min":1200.0,"max":3600.0},{"current":2694.69,"min":1200.0,"max":3600.0},{"current":2776.236,"min":1200.0,"max":3600.0},{"current":2695.73,"min":1200.0,"max":3600.0},{"current":2693.709,"min":1200.0,"max":3600.0},{"current":2697.286,"min":1200.0,"max":3600.0},{"current":2692.361,"min":1200.0,"max":3600.0},{"current":2731.753,"min":1200.0,"max":3600.0},{"current":2694.531,"min":1200.0,"max":3600.0},{"current":2707.128,"min":1200.0,"max":3600.0},{"current":2695.951,"min":1200.0,"max":3600.0},{"current":2699.764,"min":1200.0,"max":3600.0},{"current":2695.301,"min":1200.0,"max":3600.0},{"current":2632.6,"min":1200.0,"max":3600.0},{"current":2780.646,"min":1200.0,"max":3600.0},{"current":2711.727,"min":1200.0,"max":3600.0},{"current":2695.32,"min":1200.0,"max":3600.0},{"current":2708.06,"min":1200.0,"max":3600.0},{"current":2743.011,"min":1200.0,"max":3600.0},{"current":2693.898,"min":1200.0,"max":3600.0},{"current":2694.212,"min":1200.0,"max":3600.0},{"current":2716.747,"min":1200.0,"max":3600.0},{"current":2693.534,"min":1200.0,"max":3600.0},{"current":2693.948,"min":1200.0,"max":3600.0},{"current":2693.4,"min":1200.0,"max":3600.0},{"current":2779.339,"min":1200.0,"max":3600.0},{"current":2750.127,"min":1200.0,"max":3600.0},{"current":2674.588,"min":1200.0,"max":3600.0},{"current":2785.968,"min":1200.0,"max":3600.0},{"current":2705.746,"min":1200.0,"max":3600.0},{"current":2694.578,"min":1200.0,"max":3600.0},{"current":2694.602,"min":1200.0,"max":3600.0},{"current":2697.862,"min":1200.0,"max":3600.0},{"current":2711.224,"min":1200.0,"max":3600.0},{"current":2697.886,"min":1200.0,"max":3600.0},{"current":2697.345,"min":1200.0,"max":3600.0},{"current":2694.201,"min":1200.0,"max":3600.0},{"current":2744.672,"min":1200.0,"max":3600.0},{"current":2694.456,"min":1200.0,"max":3600.0},{"current":2711.335,"min":1200.0,"max":3600.0},{"current":2694.248,"min":1200.0,"max":3600.0},{"current":2695.883,"min":1200.0,"max":3600.0},{"current":2766.161,"min":1200.0,"max":3600.0},{"current":2728.253,"min":1200.0,"max":3600.0},{"current":2724.483,"min":1200.0,"max":3600.0},{"current":2696.535,"min":1200.0,"max":3600.0},{"current":2728.691,"min":1200.0,"max":3600.0}],"disk_write_speed":71.92876241705883,"process_ids":[2113736,2113939]} +{"timestamp":1678267665.408198,"rapl_power_draw_absolute":160.28317866164292,"rapl_estimated_attributable_power_draw":8.461656422737029,"cpu_time_seconds":{"2113736":{"user":606.81,"system":120.81,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":9.84,"system":14.41,"children_user":4.19,"children_system":143.85,"iowait":15.1}},"average_relative_cpu_utilization":0.06023811970758594,"absolute_cpu_utilization":0.9987355743924357,"relative_mem_usage":0.019362470182620536,"absolute_mem_usage":3978815488.0,"absolute_mem_percent_usage":0.00735552244721973,"mem_info_per_process":{"2113736":{"rss":3925237760,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3518001152,"pss":3681734656,"swap":0},"2113939":{"rss":448151552,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160354304,"pss":297080832,"swap":0}},"nvidia_draw_absolute":644.0099999999999,"nvidia_estimated_attributable_power_draw":71.4,"average_gpu_estimated_utilization_absolute":0.1875,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":9.333333333333334,"mem":6.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":7.0,"mem":4.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":62.8,"mem":35.8,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":18.75,"mem":11.25,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":71.4},"cpu_count_adjusted_average_load":[0.22574999999999998,0.230625,0.2245],"cpu_freq":[{"current":2679.45,"min":1200.0,"max":3600.0},{"current":2697.373,"min":1200.0,"max":3600.0},{"current":2695.333,"min":1200.0,"max":3600.0},{"current":2694.456,"min":1200.0,"max":3600.0},{"current":2707.169,"min":1200.0,"max":3600.0},{"current":2705.178,"min":1200.0,"max":3600.0},{"current":2709.335,"min":1200.0,"max":3600.0},{"current":2673.862,"min":1200.0,"max":3600.0},{"current":2695.436,"min":1200.0,"max":3600.0},{"current":2732.66,"min":1200.0,"max":3600.0},{"current":2695.541,"min":1200.0,"max":3600.0},{"current":2593.862,"min":1200.0,"max":3600.0},{"current":2697.862,"min":1200.0,"max":3600.0},{"current":2694.474,"min":1200.0,"max":3600.0},{"current":2694.81,"min":1200.0,"max":3600.0},{"current":2696.39,"min":1200.0,"max":3600.0},{"current":2714.59,"min":1200.0,"max":3600.0},{"current":2698.225,"min":1200.0,"max":3600.0},{"current":2680.632,"min":1200.0,"max":3600.0},{"current":2697.825,"min":1200.0,"max":3600.0},{"current":2700.918,"min":1200.0,"max":3600.0},{"current":2708.698,"min":1200.0,"max":3600.0},{"current":2698.054,"min":1200.0,"max":3600.0},{"current":2696.127,"min":1200.0,"max":3600.0},{"current":2697.685,"min":1200.0,"max":3600.0},{"current":2696.488,"min":1200.0,"max":3600.0},{"current":2694.747,"min":1200.0,"max":3600.0},{"current":2768.548,"min":1200.0,"max":3600.0},{"current":2733.681,"min":1200.0,"max":3600.0},{"current":2699.919,"min":1200.0,"max":3600.0},{"current":2694.204,"min":1200.0,"max":3600.0},{"current":2717.504,"min":1200.0,"max":3600.0},{"current":2695.59,"min":1200.0,"max":3600.0},{"current":2694.657,"min":1200.0,"max":3600.0},{"current":2696.118,"min":1200.0,"max":3600.0},{"current":2695.753,"min":1200.0,"max":3600.0},{"current":2695.905,"min":1200.0,"max":3600.0},{"current":2696.752,"min":1200.0,"max":3600.0},{"current":2694.368,"min":1200.0,"max":3600.0},{"current":2693.932,"min":1200.0,"max":3600.0},{"current":2713.123,"min":1200.0,"max":3600.0},{"current":2695.831,"min":1200.0,"max":3600.0},{"current":2693.459,"min":1200.0,"max":3600.0},{"current":2696.82,"min":1200.0,"max":3600.0},{"current":2693.933,"min":1200.0,"max":3600.0},{"current":2693.989,"min":1200.0,"max":3600.0},{"current":2648.325,"min":1200.0,"max":3600.0},{"current":2697.311,"min":1200.0,"max":3600.0},{"current":2695.75,"min":1200.0,"max":3600.0},{"current":2695.612,"min":1200.0,"max":3600.0},{"current":2693.841,"min":1200.0,"max":3600.0},{"current":2712.127,"min":1200.0,"max":3600.0},{"current":2695.357,"min":1200.0,"max":3600.0},{"current":2694.012,"min":1200.0,"max":3600.0},{"current":2695.408,"min":1200.0,"max":3600.0},{"current":2693.994,"min":1200.0,"max":3600.0},{"current":2697.217,"min":1200.0,"max":3600.0},{"current":2633.075,"min":1200.0,"max":3600.0},{"current":2707.533,"min":1200.0,"max":3600.0},{"current":2738.882,"min":1200.0,"max":3600.0},{"current":2694.242,"min":1200.0,"max":3600.0},{"current":2696.479,"min":1200.0,"max":3600.0},{"current":2695.137,"min":1200.0,"max":3600.0},{"current":2696.496,"min":1200.0,"max":3600.0},{"current":2693.998,"min":1200.0,"max":3600.0},{"current":2695.766,"min":1200.0,"max":3600.0},{"current":2828.171,"min":1200.0,"max":3600.0},{"current":2724.692,"min":1200.0,"max":3600.0},{"current":2695.22,"min":1200.0,"max":3600.0},{"current":2601.567,"min":1200.0,"max":3600.0},{"current":2677.495,"min":1200.0,"max":3600.0},{"current":2696.868,"min":1200.0,"max":3600.0},{"current":2695.616,"min":1200.0,"max":3600.0},{"current":2697.875,"min":1200.0,"max":3600.0},{"current":2695.434,"min":1200.0,"max":3600.0},{"current":2694.053,"min":1200.0,"max":3600.0},{"current":2727.88,"min":1200.0,"max":3600.0},{"current":2782.599,"min":1200.0,"max":3600.0},{"current":2742.007,"min":1200.0,"max":3600.0},{"current":2830.206,"min":1200.0,"max":3600.0}],"disk_write_speed":71.31064571354358,"process_ids":[2113736,2113939]} +{"timestamp":1678267681.620275,"rapl_power_draw_absolute":161.65753145141213,"rapl_estimated_attributable_power_draw":8.302731174888837,"cpu_time_seconds":{"2113736":{"user":620.31,"system":123.53,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":10.07,"system":14.7,"children_user":4.32,"children_system":147.03,"iowait":15.44}},"average_relative_cpu_utilization":0.05842456016819111,"absolute_cpu_utilization":0.9987134895744749,"relative_mem_usage":0.019437166812578375,"absolute_mem_usage":3991052288.0,"absolute_mem_percent_usage":0.007378144269556955,"mem_info_per_process":{"2113736":{"rss":3949465600,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3530235904,"pss":3693971456,"swap":0},"2113939":{"rss":448151552,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160354304,"pss":297080832,"swap":0}},"nvidia_draw_absolute":840.9399999999999,"nvidia_estimated_attributable_power_draw":210.36,"average_gpu_estimated_utilization_absolute":0.21600000000000003,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":10.0,"mem":6.333333333333333,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.5,"mem":5.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":74.4,"mem":42.2,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":21.6,"mem":13.8,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":210.36},"cpu_count_adjusted_average_load":[0.23362500000000003,0.232125,0.22512500000000002],"cpu_freq":[{"current":2705.819,"min":1200.0,"max":3600.0},{"current":2692.864,"min":1200.0,"max":3600.0},{"current":2695.382,"min":1200.0,"max":3600.0},{"current":2707.661,"min":1200.0,"max":3600.0},{"current":2708.956,"min":1200.0,"max":3600.0},{"current":2709.24,"min":1200.0,"max":3600.0},{"current":2747.549,"min":1200.0,"max":3600.0},{"current":2696.971,"min":1200.0,"max":3600.0},{"current":2695.17,"min":1200.0,"max":3600.0},{"current":2710.619,"min":1200.0,"max":3600.0},{"current":2706.582,"min":1200.0,"max":3600.0},{"current":2691.973,"min":1200.0,"max":3600.0},{"current":2713.462,"min":1200.0,"max":3600.0},{"current":2697.108,"min":1200.0,"max":3600.0},{"current":2700.799,"min":1200.0,"max":3600.0},{"current":2697.505,"min":1200.0,"max":3600.0},{"current":2747.719,"min":1200.0,"max":3600.0},{"current":2711.37,"min":1200.0,"max":3600.0},{"current":2684.734,"min":1200.0,"max":3600.0},{"current":2595.743,"min":1200.0,"max":3600.0},{"current":2695.823,"min":1200.0,"max":3600.0},{"current":2696.191,"min":1200.0,"max":3600.0},{"current":2694.356,"min":1200.0,"max":3600.0},{"current":2690.436,"min":1200.0,"max":3600.0},{"current":2697.328,"min":1200.0,"max":3600.0},{"current":2695.819,"min":1200.0,"max":3600.0},{"current":2651.49,"min":1200.0,"max":3600.0},{"current":2695.569,"min":1200.0,"max":3600.0},{"current":2695.185,"min":1200.0,"max":3600.0},{"current":2668.333,"min":1200.0,"max":3600.0},{"current":2699.645,"min":1200.0,"max":3600.0},{"current":2813.742,"min":1200.0,"max":3600.0},{"current":2712.648,"min":1200.0,"max":3600.0},{"current":2695.569,"min":1200.0,"max":3600.0},{"current":2695.77,"min":1200.0,"max":3600.0},{"current":2697.972,"min":1200.0,"max":3600.0},{"current":2695.966,"min":1200.0,"max":3600.0},{"current":2695.283,"min":1200.0,"max":3600.0},{"current":2693.79,"min":1200.0,"max":3600.0},{"current":2693.885,"min":1200.0,"max":3600.0},{"current":2743.145,"min":1200.0,"max":3600.0},{"current":2785.231,"min":1200.0,"max":3600.0},{"current":2695.622,"min":1200.0,"max":3600.0},{"current":2696.078,"min":1200.0,"max":3600.0},{"current":2696.549,"min":1200.0,"max":3600.0},{"current":2694.261,"min":1200.0,"max":3600.0},{"current":2636.595,"min":1200.0,"max":3600.0},{"current":2731.227,"min":1200.0,"max":3600.0},{"current":2702.404,"min":1200.0,"max":3600.0},{"current":2735.195,"min":1200.0,"max":3600.0},{"current":2694.759,"min":1200.0,"max":3600.0},{"current":2743.179,"min":1200.0,"max":3600.0},{"current":2703.308,"min":1200.0,"max":3600.0},{"current":2703.961,"min":1200.0,"max":3600.0},{"current":2698.26,"min":1200.0,"max":3600.0},{"current":2740.993,"min":1200.0,"max":3600.0},{"current":2691.802,"min":1200.0,"max":3600.0},{"current":2694.261,"min":1200.0,"max":3600.0},{"current":2758.068,"min":1200.0,"max":3600.0},{"current":2792.547,"min":1200.0,"max":3600.0},{"current":2695.265,"min":1200.0,"max":3600.0},{"current":2694.082,"min":1200.0,"max":3600.0},{"current":2695.153,"min":1200.0,"max":3600.0},{"current":2694.278,"min":1200.0,"max":3600.0},{"current":2688.125,"min":1200.0,"max":3600.0},{"current":2696.279,"min":1200.0,"max":3600.0},{"current":2733.441,"min":1200.0,"max":3600.0},{"current":2694.313,"min":1200.0,"max":3600.0},{"current":2697.531,"min":1200.0,"max":3600.0},{"current":2724.826,"min":1200.0,"max":3600.0},{"current":2816.263,"min":1200.0,"max":3600.0},{"current":2695.404,"min":1200.0,"max":3600.0},{"current":2714.166,"min":1200.0,"max":3600.0},{"current":2695.16,"min":1200.0,"max":3600.0},{"current":2695.43,"min":1200.0,"max":3600.0},{"current":2693.981,"min":1200.0,"max":3600.0},{"current":2733.458,"min":1200.0,"max":3600.0},{"current":2712.321,"min":1200.0,"max":3600.0},{"current":2699.335,"min":1200.0,"max":3600.0},{"current":2710.152,"min":1200.0,"max":3600.0}],"disk_write_speed":71.99743537759286,"process_ids":[2113736,2113939]} +{"timestamp":1678267697.976194,"rapl_power_draw_absolute":160.59543709846875,"rapl_estimated_attributable_power_draw":8.219341165353688,"cpu_time_seconds":{"2113736":{"user":633.98,"system":126.23,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":10.28,"system":15.04,"children_user":4.43,"children_system":150.25,"iowait":15.78}},"average_relative_cpu_utilization":0.05883813736544592,"absolute_cpu_utilization":1.0036471929262691,"relative_mem_usage":0.01651489962208891,"absolute_mem_usage":3388936192.0,"absolute_mem_percent_usage":0.0062650294560357735,"mem_info_per_process":{"2113736":{"rss":3410423808,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2928119808,"pss":3091855360,"swap":0},"2113939":{"rss":448151552,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160354304,"pss":297080832,"swap":0}},"nvidia_draw_absolute":903.81,"nvidia_estimated_attributable_power_draw":252.74,"average_gpu_estimated_utilization_absolute":0.278,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":6.333333333333333,"mem":3.6666666666666665,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":73.75,"mem":42.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":27.8,"mem":18.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":252.74},"cpu_count_adjusted_average_load":[0.23537499999999997,0.23275,0.22549999999999998],"cpu_freq":[{"current":2663.503,"min":1200.0,"max":3600.0},{"current":2694.561,"min":1200.0,"max":3600.0},{"current":2693.777,"min":1200.0,"max":3600.0},{"current":2698.912,"min":1200.0,"max":3600.0},{"current":2705.872,"min":1200.0,"max":3600.0},{"current":2704.981,"min":1200.0,"max":3600.0},{"current":2707.275,"min":1200.0,"max":3600.0},{"current":2694.853,"min":1200.0,"max":3600.0},{"current":2701.066,"min":1200.0,"max":3600.0},{"current":2695.217,"min":1200.0,"max":3600.0},{"current":2698.629,"min":1200.0,"max":3600.0},{"current":2696.431,"min":1200.0,"max":3600.0},{"current":2696.9,"min":1200.0,"max":3600.0},{"current":2694.72,"min":1200.0,"max":3600.0},{"current":2718.231,"min":1200.0,"max":3600.0},{"current":2694.264,"min":1200.0,"max":3600.0},{"current":2740.833,"min":1200.0,"max":3600.0},{"current":2694.585,"min":1200.0,"max":3600.0},{"current":2692.263,"min":1200.0,"max":3600.0},{"current":2633.755,"min":1200.0,"max":3600.0},{"current":2703.173,"min":1200.0,"max":3600.0},{"current":2698.792,"min":1200.0,"max":3600.0},{"current":2694.652,"min":1200.0,"max":3600.0},{"current":2695.315,"min":1200.0,"max":3600.0},{"current":2697.216,"min":1200.0,"max":3600.0},{"current":2678.0,"min":1200.0,"max":3600.0},{"current":2624.563,"min":1200.0,"max":3600.0},{"current":2708.585,"min":1200.0,"max":3600.0},{"current":2696.163,"min":1200.0,"max":3600.0},{"current":2700.996,"min":1200.0,"max":3600.0},{"current":2696.002,"min":1200.0,"max":3600.0},{"current":2718.667,"min":1200.0,"max":3600.0},{"current":2700.19,"min":1200.0,"max":3600.0},{"current":2698.675,"min":1200.0,"max":3600.0},{"current":2767.761,"min":1200.0,"max":3600.0},{"current":2696.184,"min":1200.0,"max":3600.0},{"current":2695.289,"min":1200.0,"max":3600.0},{"current":2694.528,"min":1200.0,"max":3600.0},{"current":2695.057,"min":1200.0,"max":3600.0},{"current":2692.32,"min":1200.0,"max":3600.0},{"current":2706.058,"min":1200.0,"max":3600.0},{"current":2693.126,"min":1200.0,"max":3600.0},{"current":2694.699,"min":1200.0,"max":3600.0},{"current":2693.929,"min":1200.0,"max":3600.0},{"current":2703.369,"min":1200.0,"max":3600.0},{"current":2694.138,"min":1200.0,"max":3600.0},{"current":2696.467,"min":1200.0,"max":3600.0},{"current":2683.975,"min":1200.0,"max":3600.0},{"current":2694.574,"min":1200.0,"max":3600.0},{"current":2696.0,"min":1200.0,"max":3600.0},{"current":2694.909,"min":1200.0,"max":3600.0},{"current":2692.188,"min":1200.0,"max":3600.0},{"current":2698.457,"min":1200.0,"max":3600.0},{"current":2694.0,"min":1200.0,"max":3600.0},{"current":2695.168,"min":1200.0,"max":3600.0},{"current":2695.998,"min":1200.0,"max":3600.0},{"current":2607.074,"min":1200.0,"max":3600.0},{"current":2696.673,"min":1200.0,"max":3600.0},{"current":2695.988,"min":1200.0,"max":3600.0},{"current":2714.68,"min":1200.0,"max":3600.0},{"current":2706.764,"min":1200.0,"max":3600.0},{"current":2696.854,"min":1200.0,"max":3600.0},{"current":2695.813,"min":1200.0,"max":3600.0},{"current":2695.925,"min":1200.0,"max":3600.0},{"current":2682.66,"min":1200.0,"max":3600.0},{"current":2694.607,"min":1200.0,"max":3600.0},{"current":2719.406,"min":1200.0,"max":3600.0},{"current":2696.364,"min":1200.0,"max":3600.0},{"current":2693.823,"min":1200.0,"max":3600.0},{"current":2631.902,"min":1200.0,"max":3600.0},{"current":2812.202,"min":1200.0,"max":3600.0},{"current":2694.991,"min":1200.0,"max":3600.0},{"current":2695.62,"min":1200.0,"max":3600.0},{"current":2694.129,"min":1200.0,"max":3600.0},{"current":2696.442,"min":1200.0,"max":3600.0},{"current":2598.563,"min":1200.0,"max":3600.0},{"current":2726.036,"min":1200.0,"max":3600.0},{"current":2720.578,"min":1200.0,"max":3600.0},{"current":2698.652,"min":1200.0,"max":3600.0},{"current":2738.905,"min":1200.0,"max":3600.0}],"disk_write_speed":72.54712173193944,"process_ids":[2113736,2113939]} +{"timestamp":1678267714.508172,"rapl_power_draw_absolute":161.14271585767233,"rapl_estimated_attributable_power_draw":8.028986488673652,"cpu_time_seconds":{"2113736":{"user":647.78,"system":128.97,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":10.48,"system":15.36,"children_user":4.53,"children_system":153.59,"iowait":16.13}},"average_relative_cpu_utilization":0.05728832094660274,"absolute_cpu_utilization":0.998989204559453,"relative_mem_usage":0.016511189625368374,"absolute_mem_usage":3388936192.0,"absolute_mem_percent_usage":0.0062650294560357735,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2928119808,"pss":3091855360,"swap":0},"2113939":{"rss":448151552,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160354304,"pss":297080832,"swap":0}},"nvidia_draw_absolute":847.76,"nvidia_estimated_attributable_power_draw":229.9,"average_gpu_estimated_utilization_absolute":0.2525,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":7.5,"mem":4.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":73.66666666666667,"mem":42.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.25,"mem":16.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":229.9},"cpu_count_adjusted_average_load":[0.239875,0.233875,0.22599999999999998],"cpu_freq":[{"current":2663.491,"min":1200.0,"max":3600.0},{"current":2696.405,"min":1200.0,"max":3600.0},{"current":2707.042,"min":1200.0,"max":3600.0},{"current":2714.403,"min":1200.0,"max":3600.0},{"current":2707.549,"min":1200.0,"max":3600.0},{"current":2709.681,"min":1200.0,"max":3600.0},{"current":2740.792,"min":1200.0,"max":3600.0},{"current":2693.048,"min":1200.0,"max":3600.0},{"current":2704.799,"min":1200.0,"max":3600.0},{"current":2707.199,"min":1200.0,"max":3600.0},{"current":2697.365,"min":1200.0,"max":3600.0},{"current":2715.467,"min":1200.0,"max":3600.0},{"current":2710.741,"min":1200.0,"max":3600.0},{"current":2700.25,"min":1200.0,"max":3600.0},{"current":2695.572,"min":1200.0,"max":3600.0},{"current":2696.703,"min":1200.0,"max":3600.0},{"current":2694.741,"min":1200.0,"max":3600.0},{"current":2694.524,"min":1200.0,"max":3600.0},{"current":2695.553,"min":1200.0,"max":3600.0},{"current":2694.2,"min":1200.0,"max":3600.0},{"current":2696.557,"min":1200.0,"max":3600.0},{"current":2695.529,"min":1200.0,"max":3600.0},{"current":2694.011,"min":1200.0,"max":3600.0},{"current":2696.055,"min":1200.0,"max":3600.0},{"current":2693.83,"min":1200.0,"max":3600.0},{"current":2734.366,"min":1200.0,"max":3600.0},{"current":2634.249,"min":1200.0,"max":3600.0},{"current":2702.358,"min":1200.0,"max":3600.0},{"current":2786.635,"min":1200.0,"max":3600.0},{"current":2696.642,"min":1200.0,"max":3600.0},{"current":2694.239,"min":1200.0,"max":3600.0},{"current":2595.455,"min":1200.0,"max":3600.0},{"current":2696.794,"min":1200.0,"max":3600.0},{"current":2659.245,"min":1200.0,"max":3600.0},{"current":2702.683,"min":1200.0,"max":3600.0},{"current":2696.675,"min":1200.0,"max":3600.0},{"current":2696.537,"min":1200.0,"max":3600.0},{"current":2693.815,"min":1200.0,"max":3600.0},{"current":2658.536,"min":1200.0,"max":3600.0},{"current":2696.574,"min":1200.0,"max":3600.0},{"current":2740.835,"min":1200.0,"max":3600.0},{"current":2781.053,"min":1200.0,"max":3600.0},{"current":2695.024,"min":1200.0,"max":3600.0},{"current":2756.399,"min":1200.0,"max":3600.0},{"current":2694.018,"min":1200.0,"max":3600.0},{"current":2698.499,"min":1200.0,"max":3600.0},{"current":2695.976,"min":1200.0,"max":3600.0},{"current":2748.642,"min":1200.0,"max":3600.0},{"current":2697.01,"min":1200.0,"max":3600.0},{"current":2696.046,"min":1200.0,"max":3600.0},{"current":2695.301,"min":1200.0,"max":3600.0},{"current":2728.92,"min":1200.0,"max":3600.0},{"current":2708.387,"min":1200.0,"max":3600.0},{"current":2708.059,"min":1200.0,"max":3600.0},{"current":2693.747,"min":1200.0,"max":3600.0},{"current":2748.035,"min":1200.0,"max":3600.0},{"current":2741.611,"min":1200.0,"max":3600.0},{"current":2698.383,"min":1200.0,"max":3600.0},{"current":2741.063,"min":1200.0,"max":3600.0},{"current":2736.68,"min":1200.0,"max":3600.0},{"current":2694.803,"min":1200.0,"max":3600.0},{"current":2695.296,"min":1200.0,"max":3600.0},{"current":2694.339,"min":1200.0,"max":3600.0},{"current":2695.201,"min":1200.0,"max":3600.0},{"current":2694.482,"min":1200.0,"max":3600.0},{"current":2695.597,"min":1200.0,"max":3600.0},{"current":2755.962,"min":1200.0,"max":3600.0},{"current":2694.718,"min":1200.0,"max":3600.0},{"current":2604.154,"min":1200.0,"max":3600.0},{"current":2694.517,"min":1200.0,"max":3600.0},{"current":2727.848,"min":1200.0,"max":3600.0},{"current":2734.142,"min":1200.0,"max":3600.0},{"current":2696.236,"min":1200.0,"max":3600.0},{"current":2649.371,"min":1200.0,"max":3600.0},{"current":2695.726,"min":1200.0,"max":3600.0},{"current":2694.454,"min":1200.0,"max":3600.0},{"current":2711.234,"min":1200.0,"max":3600.0},{"current":2791.423,"min":1200.0,"max":3600.0},{"current":2695.126,"min":1200.0,"max":3600.0},{"current":2812.681,"min":1200.0,"max":3600.0}],"disk_write_speed":72.15030619512802,"process_ids":[2113736,2113939]} +{"timestamp":1678267730.604178,"rapl_power_draw_absolute":158.50922032592683,"rapl_estimated_attributable_power_draw":8.06939276407826,"cpu_time_seconds":{"2113736":{"user":661.13,"system":131.72,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":10.71,"system":15.64,"children_user":4.62,"children_system":156.8,"iowait":16.47}},"average_relative_cpu_utilization":0.05869994654462496,"absolute_cpu_utilization":0.9987327907449374,"relative_mem_usage":0.01647536127010083,"absolute_mem_usage":3388933120.0,"absolute_mem_percent_usage":0.006265023776917195,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2928119808,"pss":3091852288,"swap":0},"2113939":{"rss":448151552,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160354304,"pss":297080832,"swap":0}},"nvidia_draw_absolute":817.6700000000001,"nvidia_estimated_attributable_power_draw":215.69,"average_gpu_estimated_utilization_absolute":0.276,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":11.0,"mem":7.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.0,"mem":5.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":75.33333333333333,"mem":43.333333333333336,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":27.6,"mem":18.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":215.69},"cpu_count_adjusted_average_load":[0.23575,0.23325,0.225875],"cpu_freq":[{"current":2677.69,"min":1200.0,"max":3600.0},{"current":2628.859,"min":1200.0,"max":3600.0},{"current":2694.898,"min":1200.0,"max":3600.0},{"current":2654.982,"min":1200.0,"max":3600.0},{"current":2707.351,"min":1200.0,"max":3600.0},{"current":2709.321,"min":1200.0,"max":3600.0},{"current":2724.489,"min":1200.0,"max":3600.0},{"current":2715.281,"min":1200.0,"max":3600.0},{"current":2693.814,"min":1200.0,"max":3600.0},{"current":2694.901,"min":1200.0,"max":3600.0},{"current":2725.655,"min":1200.0,"max":3600.0},{"current":2747.347,"min":1200.0,"max":3600.0},{"current":2696.37,"min":1200.0,"max":3600.0},{"current":2710.205,"min":1200.0,"max":3600.0},{"current":2697.667,"min":1200.0,"max":3600.0},{"current":2705.96,"min":1200.0,"max":3600.0},{"current":2696.414,"min":1200.0,"max":3600.0},{"current":2708.781,"min":1200.0,"max":3600.0},{"current":2695.765,"min":1200.0,"max":3600.0},{"current":2692.367,"min":1200.0,"max":3600.0},{"current":2694.653,"min":1200.0,"max":3600.0},{"current":2694.445,"min":1200.0,"max":3600.0},{"current":2698.251,"min":1200.0,"max":3600.0},{"current":2709.512,"min":1200.0,"max":3600.0},{"current":2700.164,"min":1200.0,"max":3600.0},{"current":2695.843,"min":1200.0,"max":3600.0},{"current":2696.491,"min":1200.0,"max":3600.0},{"current":2701.735,"min":1200.0,"max":3600.0},{"current":2705.524,"min":1200.0,"max":3600.0},{"current":2705.654,"min":1200.0,"max":3600.0},{"current":2690.53,"min":1200.0,"max":3600.0},{"current":2635.094,"min":1200.0,"max":3600.0},{"current":2693.883,"min":1200.0,"max":3600.0},{"current":2702.457,"min":1200.0,"max":3600.0},{"current":2678.421,"min":1200.0,"max":3600.0},{"current":2685.447,"min":1200.0,"max":3600.0},{"current":2696.579,"min":1200.0,"max":3600.0},{"current":2627.827,"min":1200.0,"max":3600.0},{"current":2695.529,"min":1200.0,"max":3600.0},{"current":2695.173,"min":1200.0,"max":3600.0},{"current":2719.19,"min":1200.0,"max":3600.0},{"current":2727.94,"min":1200.0,"max":3600.0},{"current":2708.9,"min":1200.0,"max":3600.0},{"current":2743.231,"min":1200.0,"max":3600.0},{"current":2694.171,"min":1200.0,"max":3600.0},{"current":2693.984,"min":1200.0,"max":3600.0},{"current":2693.503,"min":1200.0,"max":3600.0},{"current":2745.979,"min":1200.0,"max":3600.0},{"current":2701.499,"min":1200.0,"max":3600.0},{"current":2706.248,"min":1200.0,"max":3600.0},{"current":2707.724,"min":1200.0,"max":3600.0},{"current":2757.939,"min":1200.0,"max":3600.0},{"current":2694.608,"min":1200.0,"max":3600.0},{"current":2693.986,"min":1200.0,"max":3600.0},{"current":2695.356,"min":1200.0,"max":3600.0},{"current":2712.034,"min":1200.0,"max":3600.0},{"current":2711.381,"min":1200.0,"max":3600.0},{"current":2696.961,"min":1200.0,"max":3600.0},{"current":2733.084,"min":1200.0,"max":3600.0},{"current":2706.63,"min":1200.0,"max":3600.0},{"current":2696.404,"min":1200.0,"max":3600.0},{"current":2697.724,"min":1200.0,"max":3600.0},{"current":2694.923,"min":1200.0,"max":3600.0},{"current":2651.947,"min":1200.0,"max":3600.0},{"current":2697.013,"min":1200.0,"max":3600.0},{"current":2696.965,"min":1200.0,"max":3600.0},{"current":2735.336,"min":1200.0,"max":3600.0},{"current":2694.56,"min":1200.0,"max":3600.0},{"current":2696.178,"min":1200.0,"max":3600.0},{"current":2720.213,"min":1200.0,"max":3600.0},{"current":2781.385,"min":1200.0,"max":3600.0},{"current":2706.252,"min":1200.0,"max":3600.0},{"current":2694.733,"min":1200.0,"max":3600.0},{"current":2694.114,"min":1200.0,"max":3600.0},{"current":2693.846,"min":1200.0,"max":3600.0},{"current":2696.33,"min":1200.0,"max":3600.0},{"current":2709.455,"min":1200.0,"max":3600.0},{"current":2688.831,"min":1200.0,"max":3600.0},{"current":2693.796,"min":1200.0,"max":3600.0},{"current":2776.012,"min":1200.0,"max":3600.0}],"disk_write_speed":72.51478221862946,"process_ids":[2113736,2113939]} +{"timestamp":1678267746.732194,"rapl_power_draw_absolute":157.70334486620786,"rapl_estimated_attributable_power_draw":8.25006559499462,"cpu_time_seconds":{"2113736":{"user":674.72,"system":134.27,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":10.91,"system":15.95,"children_user":4.75,"children_system":159.94,"iowait":16.82}},"average_relative_cpu_utilization":0.06039322305524123,"absolute_cpu_utilization":1.0037258646584148,"relative_mem_usage":0.01651002097732902,"absolute_mem_usage":3388936192.0,"absolute_mem_percent_usage":0.0062650294560357735,"mem_info_per_process":{"2113736":{"rss":3529961472,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2928119808,"pss":3091855360,"swap":0},"2113939":{"rss":448151552,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160354304,"pss":297080832,"swap":0}},"nvidia_draw_absolute":843.04,"nvidia_estimated_attributable_power_draw":218.52,"average_gpu_estimated_utilization_absolute":0.23600000000000002,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":9.0,"mem":6.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":13.333333333333334,"mem":7.333333333333333,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":76.25,"mem":43.5,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.6,"mem":15.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":218.52},"cpu_count_adjusted_average_load":[0.235875,0.23349999999999999,0.226125],"cpu_freq":[{"current":2701.93,"min":1200.0,"max":3600.0},{"current":2694.899,"min":1200.0,"max":3600.0},{"current":2704.837,"min":1200.0,"max":3600.0},{"current":2647.725,"min":1200.0,"max":3600.0},{"current":2708.474,"min":1200.0,"max":3600.0},{"current":2706.555,"min":1200.0,"max":3600.0},{"current":2730.997,"min":1200.0,"max":3600.0},{"current":2627.621,"min":1200.0,"max":3600.0},{"current":2697.998,"min":1200.0,"max":3600.0},{"current":2696.248,"min":1200.0,"max":3600.0},{"current":2696.258,"min":1200.0,"max":3600.0},{"current":2696.615,"min":1200.0,"max":3600.0},{"current":2709.1,"min":1200.0,"max":3600.0},{"current":2696.149,"min":1200.0,"max":3600.0},{"current":2698.029,"min":1200.0,"max":3600.0},{"current":2710.766,"min":1200.0,"max":3600.0},{"current":2696.416,"min":1200.0,"max":3600.0},{"current":2713.954,"min":1200.0,"max":3600.0},{"current":2697.408,"min":1200.0,"max":3600.0},{"current":2629.641,"min":1200.0,"max":3600.0},{"current":2695.22,"min":1200.0,"max":3600.0},{"current":2853.184,"min":1200.0,"max":3600.0},{"current":2840.954,"min":1200.0,"max":3600.0},{"current":2792.11,"min":1200.0,"max":3600.0},{"current":2693.248,"min":1200.0,"max":3600.0},{"current":2693.443,"min":1200.0,"max":3600.0},{"current":2694.747,"min":1200.0,"max":3600.0},{"current":2699.002,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2697.825,"min":1200.0,"max":3600.0},{"current":2793.529,"min":1200.0,"max":3600.0},{"current":2836.376,"min":1200.0,"max":3600.0},{"current":2696.268,"min":1200.0,"max":3600.0},{"current":2695.436,"min":1200.0,"max":3600.0},{"current":2792.979,"min":1200.0,"max":3600.0},{"current":2698.148,"min":1200.0,"max":3600.0},{"current":2695.454,"min":1200.0,"max":3600.0},{"current":2691.593,"min":1200.0,"max":3600.0},{"current":2700.448,"min":1200.0,"max":3600.0},{"current":2694.635,"min":1200.0,"max":3600.0},{"current":2777.352,"min":1200.0,"max":3600.0},{"current":2745.088,"min":1200.0,"max":3600.0},{"current":2694.868,"min":1200.0,"max":3600.0},{"current":2773.56,"min":1200.0,"max":3600.0},{"current":2725.564,"min":1200.0,"max":3600.0},{"current":2694.068,"min":1200.0,"max":3600.0},{"current":2791.028,"min":1200.0,"max":3600.0},{"current":2807.074,"min":1200.0,"max":3600.0},{"current":2706.54,"min":1200.0,"max":3600.0},{"current":2698.427,"min":1200.0,"max":3600.0},{"current":2696.359,"min":1200.0,"max":3600.0},{"current":2728.357,"min":1200.0,"max":3600.0},{"current":2694.651,"min":1200.0,"max":3600.0},{"current":2707.993,"min":1200.0,"max":3600.0},{"current":2694.009,"min":1200.0,"max":3600.0},{"current":2729.014,"min":1200.0,"max":3600.0},{"current":2698.841,"min":1200.0,"max":3600.0},{"current":2709.185,"min":1200.0,"max":3600.0},{"current":2732.935,"min":1200.0,"max":3600.0},{"current":2763.441,"min":1200.0,"max":3600.0},{"current":2694.055,"min":1200.0,"max":3600.0},{"current":2694.801,"min":1200.0,"max":3600.0},{"current":2694.948,"min":1200.0,"max":3600.0},{"current":2693.439,"min":1200.0,"max":3600.0},{"current":2732.317,"min":1200.0,"max":3600.0},{"current":2693.829,"min":1200.0,"max":3600.0},{"current":2747.461,"min":1200.0,"max":3600.0},{"current":2696.018,"min":1200.0,"max":3600.0},{"current":2697.382,"min":1200.0,"max":3600.0},{"current":2694.276,"min":1200.0,"max":3600.0},{"current":2693.765,"min":1200.0,"max":3600.0},{"current":2814.192,"min":1200.0,"max":3600.0},{"current":2694.729,"min":1200.0,"max":3600.0},{"current":2694.727,"min":1200.0,"max":3600.0},{"current":2762.478,"min":1200.0,"max":3600.0},{"current":2693.858,"min":1200.0,"max":3600.0},{"current":2715.195,"min":1200.0,"max":3600.0},{"current":2750.814,"min":1200.0,"max":3600.0},{"current":2693.802,"min":1200.0,"max":3600.0},{"current":2714.646,"min":1200.0,"max":3600.0}],"disk_write_speed":71.62180145771848,"process_ids":[2113736,2113939]} +{"timestamp":1678267762.952224,"rapl_power_draw_absolute":155.11463100351037,"rapl_estimated_attributable_power_draw":8.550857545109702,"cpu_time_seconds":{"2113736":{"user":688.23,"system":136.99,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":11.11,"system":16.26,"children_user":4.85,"children_system":163.17,"iowait":17.16}},"average_relative_cpu_utilization":0.06398106430725237,"absolute_cpu_utilization":1.0090028016334245,"relative_mem_usage":0.016502478990966428,"absolute_mem_usage":3388936192.0,"absolute_mem_percent_usage":0.0062650294560357735,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2928119808,"pss":3091855360,"swap":0},"2113939":{"rss":448151552,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160354304,"pss":297080832,"swap":0}},"nvidia_draw_absolute":655.98,"nvidia_estimated_attributable_power_draw":248.11,"average_gpu_estimated_utilization_absolute":0.284,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":12.0,"mem":7.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":76.33333333333333,"mem":43.666666666666664,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":28.4,"mem":19.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":248.11},"cpu_count_adjusted_average_load":[0.23625,0.23374999999999999,0.226375],"cpu_freq":[{"current":2703.158,"min":1200.0,"max":3600.0},{"current":2668.994,"min":1200.0,"max":3600.0},{"current":2695.717,"min":1200.0,"max":3600.0},{"current":2694.714,"min":1200.0,"max":3600.0},{"current":2713.666,"min":1200.0,"max":3600.0},{"current":2711.54,"min":1200.0,"max":3600.0},{"current":2780.015,"min":1200.0,"max":3600.0},{"current":2694.913,"min":1200.0,"max":3600.0},{"current":2699.202,"min":1200.0,"max":3600.0},{"current":2696.429,"min":1200.0,"max":3600.0},{"current":2695.203,"min":1200.0,"max":3600.0},{"current":2662.468,"min":1200.0,"max":3600.0},{"current":2699.528,"min":1200.0,"max":3600.0},{"current":2761.141,"min":1200.0,"max":3600.0},{"current":2694.274,"min":1200.0,"max":3600.0},{"current":2696.542,"min":1200.0,"max":3600.0},{"current":2703.963,"min":1200.0,"max":3600.0},{"current":2709.883,"min":1200.0,"max":3600.0},{"current":2693.105,"min":1200.0,"max":3600.0},{"current":2632.097,"min":1200.0,"max":3600.0},{"current":2705.429,"min":1200.0,"max":3600.0},{"current":2650.055,"min":1200.0,"max":3600.0},{"current":2701.518,"min":1200.0,"max":3600.0},{"current":2703.585,"min":1200.0,"max":3600.0},{"current":2691.063,"min":1200.0,"max":3600.0},{"current":2694.124,"min":1200.0,"max":3600.0},{"current":2694.479,"min":1200.0,"max":3600.0},{"current":2693.809,"min":1200.0,"max":3600.0},{"current":2773.737,"min":1200.0,"max":3600.0},{"current":2708.18,"min":1200.0,"max":3600.0},{"current":2698.752,"min":1200.0,"max":3600.0},{"current":2768.579,"min":1200.0,"max":3600.0},{"current":2704.23,"min":1200.0,"max":3600.0},{"current":2753.255,"min":1200.0,"max":3600.0},{"current":2724.005,"min":1200.0,"max":3600.0},{"current":2750.483,"min":1200.0,"max":3600.0},{"current":2697.367,"min":1200.0,"max":3600.0},{"current":2693.241,"min":1200.0,"max":3600.0},{"current":2696.831,"min":1200.0,"max":3600.0},{"current":2795.283,"min":1200.0,"max":3600.0},{"current":2701.913,"min":1200.0,"max":3600.0},{"current":2709.411,"min":1200.0,"max":3600.0},{"current":2694.767,"min":1200.0,"max":3600.0},{"current":2689.299,"min":1200.0,"max":3600.0},{"current":2693.823,"min":1200.0,"max":3600.0},{"current":2698.368,"min":1200.0,"max":3600.0},{"current":2689.915,"min":1200.0,"max":3600.0},{"current":2758.792,"min":1200.0,"max":3600.0},{"current":2937.967,"min":1200.0,"max":3600.0},{"current":2733.516,"min":1200.0,"max":3600.0},{"current":2697.607,"min":1200.0,"max":3600.0},{"current":2718.875,"min":1200.0,"max":3600.0},{"current":2693.886,"min":1200.0,"max":3600.0},{"current":2694.014,"min":1200.0,"max":3600.0},{"current":2696.656,"min":1200.0,"max":3600.0},{"current":2693.781,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2693.754,"min":1200.0,"max":3600.0},{"current":2685.539,"min":1200.0,"max":3600.0},{"current":2665.778,"min":1200.0,"max":3600.0},{"current":2747.514,"min":1200.0,"max":3600.0},{"current":2591.706,"min":1200.0,"max":3600.0},{"current":2761.726,"min":1200.0,"max":3600.0},{"current":2693.224,"min":1200.0,"max":3600.0},{"current":2780.245,"min":1200.0,"max":3600.0},{"current":2695.331,"min":1200.0,"max":3600.0},{"current":2694.953,"min":1200.0,"max":3600.0},{"current":2696.454,"min":1200.0,"max":3600.0},{"current":2699.613,"min":1200.0,"max":3600.0},{"current":2733.548,"min":1200.0,"max":3600.0},{"current":3005.727,"min":1200.0,"max":3600.0},{"current":2819.458,"min":1200.0,"max":3600.0},{"current":2894.797,"min":1200.0,"max":3600.0},{"current":2995.329,"min":1200.0,"max":3600.0},{"current":3193.547,"min":1200.0,"max":3600.0},{"current":3143.601,"min":1200.0,"max":3600.0},{"current":3266.68,"min":1200.0,"max":3600.0},{"current":2701.452,"min":1200.0,"max":3600.0},{"current":2721.46,"min":1200.0,"max":3600.0},{"current":2654.198,"min":1200.0,"max":3600.0}],"disk_write_speed":10.86511550796044,"process_ids":[2113736,2113939]} +{"timestamp":1678267779.200238,"rapl_power_draw_absolute":157.55039847566653,"rapl_estimated_attributable_power_draw":8.235179419549993,"cpu_time_seconds":{"2113736":{"user":702.03,"system":139.43,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":11.24,"system":16.56,"children_user":4.95,"children_system":166.41,"iowait":17.26}},"average_relative_cpu_utilization":0.060346286328180246,"absolute_cpu_utilization":0.9990457767814094,"relative_mem_usage":0.016483792230307732,"absolute_mem_usage":3388936192.0,"absolute_mem_percent_usage":0.0062650294560357735,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2928119808,"pss":3091855360,"swap":0},"2113939":{"rss":448151552,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160354304,"pss":297080832,"swap":0}},"nvidia_draw_absolute":886.8700000000001,"nvidia_estimated_attributable_power_draw":91.02,"average_gpu_estimated_utilization_absolute":0.25666666666666665,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":13.75,"mem":8.75,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":4.666666666666667,"mem":2.3333333333333335,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":74.66666666666667,"mem":42.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.666666666666668,"mem":17.666666666666668,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":91.02},"cpu_count_adjusted_average_load":[0.23700000000000002,0.234125,0.226625],"cpu_freq":[{"current":2666.703,"min":1200.0,"max":3600.0},{"current":2694.986,"min":1200.0,"max":3600.0},{"current":2696.091,"min":1200.0,"max":3600.0},{"current":2696.52,"min":1200.0,"max":3600.0},{"current":2700.698,"min":1200.0,"max":3600.0},{"current":2712.892,"min":1200.0,"max":3600.0},{"current":2753.826,"min":1200.0,"max":3600.0},{"current":2700.077,"min":1200.0,"max":3600.0},{"current":2693.704,"min":1200.0,"max":3600.0},{"current":2698.944,"min":1200.0,"max":3600.0},{"current":2699.412,"min":1200.0,"max":3600.0},{"current":2693.5,"min":1200.0,"max":3600.0},{"current":2696.986,"min":1200.0,"max":3600.0},{"current":2702.414,"min":1200.0,"max":3600.0},{"current":2709.823,"min":1200.0,"max":3600.0},{"current":2704.822,"min":1200.0,"max":3600.0},{"current":2696.287,"min":1200.0,"max":3600.0},{"current":2712.972,"min":1200.0,"max":3600.0},{"current":2728.752,"min":1200.0,"max":3600.0},{"current":2694.781,"min":1200.0,"max":3600.0},{"current":2696.195,"min":1200.0,"max":3600.0},{"current":2703.893,"min":1200.0,"max":3600.0},{"current":2767.172,"min":1200.0,"max":3600.0},{"current":2730.263,"min":1200.0,"max":3600.0},{"current":2696.845,"min":1200.0,"max":3600.0},{"current":2701.845,"min":1200.0,"max":3600.0},{"current":2693.003,"min":1200.0,"max":3600.0},{"current":2744.397,"min":1200.0,"max":3600.0},{"current":3228.465,"min":1200.0,"max":3600.0},{"current":2792.502,"min":1200.0,"max":3600.0},{"current":2780.393,"min":1200.0,"max":3600.0},{"current":2753.368,"min":1200.0,"max":3600.0},{"current":2696.89,"min":1200.0,"max":3600.0},{"current":2693.997,"min":1200.0,"max":3600.0},{"current":2696.013,"min":1200.0,"max":3600.0},{"current":2694.35,"min":1200.0,"max":3600.0},{"current":2696.047,"min":1200.0,"max":3600.0},{"current":2841.863,"min":1200.0,"max":3600.0},{"current":2696.622,"min":1200.0,"max":3600.0},{"current":2694.797,"min":1200.0,"max":3600.0},{"current":2711.92,"min":1200.0,"max":3600.0},{"current":2730.128,"min":1200.0,"max":3600.0},{"current":2720.97,"min":1200.0,"max":3600.0},{"current":2756.307,"min":1200.0,"max":3600.0},{"current":2696.065,"min":1200.0,"max":3600.0},{"current":2694.117,"min":1200.0,"max":3600.0},{"current":2694.816,"min":1200.0,"max":3600.0},{"current":2715.512,"min":1200.0,"max":3600.0},{"current":2727.999,"min":1200.0,"max":3600.0},{"current":2694.445,"min":1200.0,"max":3600.0},{"current":2698.751,"min":1200.0,"max":3600.0},{"current":2737.816,"min":1200.0,"max":3600.0},{"current":2701.084,"min":1200.0,"max":3600.0},{"current":2696.416,"min":1200.0,"max":3600.0},{"current":2696.641,"min":1200.0,"max":3600.0},{"current":2695.49,"min":1200.0,"max":3600.0},{"current":2714.713,"min":1200.0,"max":3600.0},{"current":2744.705,"min":1200.0,"max":3600.0},{"current":2709.791,"min":1200.0,"max":3600.0},{"current":2778.162,"min":1200.0,"max":3600.0},{"current":2695.779,"min":1200.0,"max":3600.0},{"current":2759.836,"min":1200.0,"max":3600.0},{"current":2694.665,"min":1200.0,"max":3600.0},{"current":2695.866,"min":1200.0,"max":3600.0},{"current":2754.627,"min":1200.0,"max":3600.0},{"current":2694.33,"min":1200.0,"max":3600.0},{"current":2760.055,"min":1200.0,"max":3600.0},{"current":2696.09,"min":1200.0,"max":3600.0},{"current":2695.002,"min":1200.0,"max":3600.0},{"current":2693.637,"min":1200.0,"max":3600.0},{"current":2698.912,"min":1200.0,"max":3600.0},{"current":2813.773,"min":1200.0,"max":3600.0},{"current":2694.889,"min":1200.0,"max":3600.0},{"current":2708.869,"min":1200.0,"max":3600.0},{"current":2697.544,"min":1200.0,"max":3600.0},{"current":2697.083,"min":1200.0,"max":3600.0},{"current":2783.897,"min":1200.0,"max":3600.0},{"current":2731.452,"min":1200.0,"max":3600.0},{"current":2696.72,"min":1200.0,"max":3600.0},{"current":2754.645,"min":1200.0,"max":3600.0}],"disk_write_speed":70.31612300238477,"process_ids":[2113736,2113939]} +{"timestamp":1678267795.292186,"rapl_power_draw_absolute":157.93527305308805,"rapl_estimated_attributable_power_draw":8.338958334845207,"cpu_time_seconds":{"2113736":{"user":715.35,"system":142.19,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":11.48,"system":16.85,"children_user":5.02,"children_system":169.63,"iowait":17.6}},"average_relative_cpu_utilization":0.06093259000472025,"absolute_cpu_utilization":1.0086850934638325,"relative_mem_usage":0.01649589093310519,"absolute_mem_usage":3388934144.0,"absolute_mem_percent_usage":0.006265025669956722,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2928119808,"pss":3091853312,"swap":0},"2113939":{"rss":448151552,"vms":11098914816,"shared":22138880,"text":2633728,"lib":0,"data":2829561856,"dirty":0,"uss":160354304,"pss":297080832,"swap":0}},"nvidia_draw_absolute":685.95,"nvidia_estimated_attributable_power_draw":258.97,"average_gpu_estimated_utilization_absolute":0.265,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":7.0,"mem":5.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":74.0,"mem":42.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":26.5,"mem":17.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":258.97},"cpu_count_adjusted_average_load":[0.232375,0.23325,0.226375],"cpu_freq":[{"current":2714.797,"min":1200.0,"max":3600.0},{"current":2631.946,"min":1200.0,"max":3600.0},{"current":2710.03,"min":1200.0,"max":3600.0},{"current":2756.138,"min":1200.0,"max":3600.0},{"current":2710.164,"min":1200.0,"max":3600.0},{"current":2696.352,"min":1200.0,"max":3600.0},{"current":2722.009,"min":1200.0,"max":3600.0},{"current":2696.032,"min":1200.0,"max":3600.0},{"current":2872.018,"min":1200.0,"max":3600.0},{"current":2696.403,"min":1200.0,"max":3600.0},{"current":2695.655,"min":1200.0,"max":3600.0},{"current":2724.575,"min":1200.0,"max":3600.0},{"current":2694.679,"min":1200.0,"max":3600.0},{"current":2700.35,"min":1200.0,"max":3600.0},{"current":2709.817,"min":1200.0,"max":3600.0},{"current":2714.568,"min":1200.0,"max":3600.0},{"current":2697.515,"min":1200.0,"max":3600.0},{"current":2702.474,"min":1200.0,"max":3600.0},{"current":2694.289,"min":1200.0,"max":3600.0},{"current":2592.907,"min":1200.0,"max":3600.0},{"current":2708.092,"min":1200.0,"max":3600.0},{"current":2697.764,"min":1200.0,"max":3600.0},{"current":2759.36,"min":1200.0,"max":3600.0},{"current":2764.463,"min":1200.0,"max":3600.0},{"current":2693.979,"min":1200.0,"max":3600.0},{"current":2703.271,"min":1200.0,"max":3600.0},{"current":2677.561,"min":1200.0,"max":3600.0},{"current":2697.158,"min":1200.0,"max":3600.0},{"current":2697.149,"min":1200.0,"max":3600.0},{"current":2695.044,"min":1200.0,"max":3600.0},{"current":2697.232,"min":1200.0,"max":3600.0},{"current":2687.839,"min":1200.0,"max":3600.0},{"current":2735.076,"min":1200.0,"max":3600.0},{"current":2696.646,"min":1200.0,"max":3600.0},{"current":2774.853,"min":1200.0,"max":3600.0},{"current":2695.035,"min":1200.0,"max":3600.0},{"current":2694.284,"min":1200.0,"max":3600.0},{"current":2704.715,"min":1200.0,"max":3600.0},{"current":2694.904,"min":1200.0,"max":3600.0},{"current":2695.929,"min":1200.0,"max":3600.0},{"current":2725.559,"min":1200.0,"max":3600.0},{"current":2739.361,"min":1200.0,"max":3600.0},{"current":2694.376,"min":1200.0,"max":3600.0},{"current":2695.856,"min":1200.0,"max":3600.0},{"current":2694.033,"min":1200.0,"max":3600.0},{"current":2694.035,"min":1200.0,"max":3600.0},{"current":2693.963,"min":1200.0,"max":3600.0},{"current":2698.214,"min":1200.0,"max":3600.0},{"current":2709.871,"min":1200.0,"max":3600.0},{"current":2695.344,"min":1200.0,"max":3600.0},{"current":2697.634,"min":1200.0,"max":3600.0},{"current":2703.621,"min":1200.0,"max":3600.0},{"current":2695.872,"min":1200.0,"max":3600.0},{"current":2694.344,"min":1200.0,"max":3600.0},{"current":2695.168,"min":1200.0,"max":3600.0},{"current":2694.774,"min":1200.0,"max":3600.0},{"current":2697.782,"min":1200.0,"max":3600.0},{"current":2693.769,"min":1200.0,"max":3600.0},{"current":2721.683,"min":1200.0,"max":3600.0},{"current":2716.394,"min":1200.0,"max":3600.0},{"current":2694.897,"min":1200.0,"max":3600.0},{"current":2693.852,"min":1200.0,"max":3600.0},{"current":2628.177,"min":1200.0,"max":3600.0},{"current":2695.07,"min":1200.0,"max":3600.0},{"current":2831.963,"min":1200.0,"max":3600.0},{"current":2694.439,"min":1200.0,"max":3600.0},{"current":2726.182,"min":1200.0,"max":3600.0},{"current":2693.68,"min":1200.0,"max":3600.0},{"current":2695.624,"min":1200.0,"max":3600.0},{"current":2694.199,"min":1200.0,"max":3600.0},{"current":2693.831,"min":1200.0,"max":3600.0},{"current":2831.318,"min":1200.0,"max":3600.0},{"current":2873.818,"min":1200.0,"max":3600.0},{"current":2694.224,"min":1200.0,"max":3600.0},{"current":2694.944,"min":1200.0,"max":3600.0},{"current":2696.111,"min":1200.0,"max":3600.0},{"current":2693.78,"min":1200.0,"max":3600.0},{"current":2740.598,"min":1200.0,"max":3600.0},{"current":2694.749,"min":1200.0,"max":3600.0},{"current":2677.425,"min":1200.0,"max":3600.0}],"disk_write_speed":71.72478421279888,"process_ids":[2113736,2113939]} +{"timestamp":1678267811.640237,"rapl_power_draw_absolute":156.60800113753157,"rapl_estimated_attributable_power_draw":8.313979354731769,"cpu_time_seconds":{"2113736":{"user":728.95,"system":144.94,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":11.79,"system":17.14,"children_user":5.09,"children_system":172.85,"iowait":17.94}},"average_relative_cpu_utilization":0.06142116339242489,"absolute_cpu_utilization":0.9987255207278715,"relative_mem_usage":0.01651658367345621,"absolute_mem_usage":3394203648.0,"absolute_mem_percent_usage":0.006274767251358174,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929868800,"pss":3092721664,"swap":0},"2113939":{"rss":452300800,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165605376,"pss":301481984,"swap":0}},"nvidia_draw_absolute":690.68,"nvidia_estimated_attributable_power_draw":68.99,"average_gpu_estimated_utilization_absolute":0.2625,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":74.0,"mem":41.75,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":26.25,"mem":17.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":68.99},"cpu_count_adjusted_average_load":[0.23575,0.23399999999999999,0.22675],"cpu_freq":[{"current":2710.911,"min":1200.0,"max":3600.0},{"current":2647.328,"min":1200.0,"max":3600.0},{"current":2730.859,"min":1200.0,"max":3600.0},{"current":2733.537,"min":1200.0,"max":3600.0},{"current":2710.936,"min":1200.0,"max":3600.0},{"current":2709.215,"min":1200.0,"max":3600.0},{"current":2745.731,"min":1200.0,"max":3600.0},{"current":2711.25,"min":1200.0,"max":3600.0},{"current":2659.306,"min":1200.0,"max":3600.0},{"current":2708.18,"min":1200.0,"max":3600.0},{"current":2696.268,"min":1200.0,"max":3600.0},{"current":2650.815,"min":1200.0,"max":3600.0},{"current":2710.551,"min":1200.0,"max":3600.0},{"current":2695.81,"min":1200.0,"max":3600.0},{"current":2696.734,"min":1200.0,"max":3600.0},{"current":2695.849,"min":1200.0,"max":3600.0},{"current":2696.727,"min":1200.0,"max":3600.0},{"current":2698.009,"min":1200.0,"max":3600.0},{"current":2694.716,"min":1200.0,"max":3600.0},{"current":2743.873,"min":1200.0,"max":3600.0},{"current":2788.113,"min":1200.0,"max":3600.0},{"current":2697.766,"min":1200.0,"max":3600.0},{"current":2702.292,"min":1200.0,"max":3600.0},{"current":2811.479,"min":1200.0,"max":3600.0},{"current":2694.401,"min":1200.0,"max":3600.0},{"current":2696.632,"min":1200.0,"max":3600.0},{"current":2692.076,"min":1200.0,"max":3600.0},{"current":2700.026,"min":1200.0,"max":3600.0},{"current":2727.943,"min":1200.0,"max":3600.0},{"current":2693.957,"min":1200.0,"max":3600.0},{"current":2709.176,"min":1200.0,"max":3600.0},{"current":2692.957,"min":1200.0,"max":3600.0},{"current":2695.908,"min":1200.0,"max":3600.0},{"current":2696.914,"min":1200.0,"max":3600.0},{"current":2786.929,"min":1200.0,"max":3600.0},{"current":2725.78,"min":1200.0,"max":3600.0},{"current":2710.321,"min":1200.0,"max":3600.0},{"current":2708.444,"min":1200.0,"max":3600.0},{"current":2695.253,"min":1200.0,"max":3600.0},{"current":2767.138,"min":1200.0,"max":3600.0},{"current":2696.927,"min":1200.0,"max":3600.0},{"current":2712.929,"min":1200.0,"max":3600.0},{"current":2693.976,"min":1200.0,"max":3600.0},{"current":2694.878,"min":1200.0,"max":3600.0},{"current":2693.889,"min":1200.0,"max":3600.0},{"current":2718.389,"min":1200.0,"max":3600.0},{"current":2609.209,"min":1200.0,"max":3600.0},{"current":2694.157,"min":1200.0,"max":3600.0},{"current":2714.815,"min":1200.0,"max":3600.0},{"current":2697.062,"min":1200.0,"max":3600.0},{"current":2695.006,"min":1200.0,"max":3600.0},{"current":2760.683,"min":1200.0,"max":3600.0},{"current":2694.909,"min":1200.0,"max":3600.0},{"current":2697.34,"min":1200.0,"max":3600.0},{"current":2700.776,"min":1200.0,"max":3600.0},{"current":2695.942,"min":1200.0,"max":3600.0},{"current":2707.228,"min":1200.0,"max":3600.0},{"current":2742.625,"min":1200.0,"max":3600.0},{"current":2745.064,"min":1200.0,"max":3600.0},{"current":2728.421,"min":1200.0,"max":3600.0},{"current":2692.729,"min":1200.0,"max":3600.0},{"current":2694.344,"min":1200.0,"max":3600.0},{"current":2694.437,"min":1200.0,"max":3600.0},{"current":2784.15,"min":1200.0,"max":3600.0},{"current":2755.614,"min":1200.0,"max":3600.0},{"current":2696.262,"min":1200.0,"max":3600.0},{"current":2688.107,"min":1200.0,"max":3600.0},{"current":2698.221,"min":1200.0,"max":3600.0},{"current":2628.487,"min":1200.0,"max":3600.0},{"current":2693.999,"min":1200.0,"max":3600.0},{"current":2693.942,"min":1200.0,"max":3600.0},{"current":2716.046,"min":1200.0,"max":3600.0},{"current":2692.852,"min":1200.0,"max":3600.0},{"current":2695.317,"min":1200.0,"max":3600.0},{"current":2685.772,"min":1200.0,"max":3600.0},{"current":2733.684,"min":1200.0,"max":3600.0},{"current":2711.366,"min":1200.0,"max":3600.0},{"current":2788.609,"min":1200.0,"max":3600.0},{"current":2695.654,"min":1200.0,"max":3600.0},{"current":2695.305,"min":1200.0,"max":3600.0}],"disk_write_speed":72.2512469092062,"process_ids":[2113736,2113939]} +{"timestamp":1678267828.224245,"rapl_power_draw_absolute":159.3473635372677,"rapl_estimated_attributable_power_draw":8.018775669323716,"cpu_time_seconds":{"2113736":{"user":742.91,"system":147.56,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":11.99,"system":17.46,"children_user":5.21,"children_system":176.08,"iowait":18.28}},"average_relative_cpu_utilization":0.05795137747280551,"absolute_cpu_utilization":0.9986810510757972,"relative_mem_usage":0.01704248625308891,"absolute_mem_usage":3505938432.0,"absolute_mem_percent_usage":0.006481328152291122,"mem_info_per_process":{"2113736":{"rss":3450933248,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3041599488,"pss":3204452352,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301486080,"swap":0}},"nvidia_draw_absolute":686.1200000000001,"nvidia_estimated_attributable_power_draw":68.99,"average_gpu_estimated_utilization_absolute":0.218,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":17.0,"mem":11.333333333333334,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":10.0,"mem":5.75,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":74.0,"mem":42.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":21.8,"mem":13.8,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":68.99},"cpu_count_adjusted_average_load":[0.23450000000000001,0.233875,0.226875],"cpu_freq":[{"current":2707.503,"min":1200.0,"max":3600.0},{"current":2695.818,"min":1200.0,"max":3600.0},{"current":2715.014,"min":1200.0,"max":3600.0},{"current":2748.315,"min":1200.0,"max":3600.0},{"current":2701.658,"min":1200.0,"max":3600.0},{"current":2724.835,"min":1200.0,"max":3600.0},{"current":2705.739,"min":1200.0,"max":3600.0},{"current":2704.695,"min":1200.0,"max":3600.0},{"current":2693.891,"min":1200.0,"max":3600.0},{"current":2694.249,"min":1200.0,"max":3600.0},{"current":2697.11,"min":1200.0,"max":3600.0},{"current":2667.569,"min":1200.0,"max":3600.0},{"current":2698.412,"min":1200.0,"max":3600.0},{"current":2698.342,"min":1200.0,"max":3600.0},{"current":2698.778,"min":1200.0,"max":3600.0},{"current":2711.882,"min":1200.0,"max":3600.0},{"current":2700.087,"min":1200.0,"max":3600.0},{"current":2694.809,"min":1200.0,"max":3600.0},{"current":2689.767,"min":1200.0,"max":3600.0},{"current":2623.541,"min":1200.0,"max":3600.0},{"current":2743.814,"min":1200.0,"max":3600.0},{"current":2693.793,"min":1200.0,"max":3600.0},{"current":2761.894,"min":1200.0,"max":3600.0},{"current":2759.82,"min":1200.0,"max":3600.0},{"current":2684.54,"min":1200.0,"max":3600.0},{"current":2695.457,"min":1200.0,"max":3600.0},{"current":2695.378,"min":1200.0,"max":3600.0},{"current":2697.198,"min":1200.0,"max":3600.0},{"current":2843.577,"min":1200.0,"max":3600.0},{"current":2694.521,"min":1200.0,"max":3600.0},{"current":2714.545,"min":1200.0,"max":3600.0},{"current":2693.987,"min":1200.0,"max":3600.0},{"current":2681.969,"min":1200.0,"max":3600.0},{"current":2693.811,"min":1200.0,"max":3600.0},{"current":2640.879,"min":1200.0,"max":3600.0},{"current":2696.096,"min":1200.0,"max":3600.0},{"current":2695.62,"min":1200.0,"max":3600.0},{"current":2694.033,"min":1200.0,"max":3600.0},{"current":2698.996,"min":1200.0,"max":3600.0},{"current":2707.893,"min":1200.0,"max":3600.0},{"current":2730.102,"min":1200.0,"max":3600.0},{"current":2688.618,"min":1200.0,"max":3600.0},{"current":2695.574,"min":1200.0,"max":3600.0},{"current":2699.887,"min":1200.0,"max":3600.0},{"current":2694.097,"min":1200.0,"max":3600.0},{"current":2694.044,"min":1200.0,"max":3600.0},{"current":2693.39,"min":1200.0,"max":3600.0},{"current":2694.676,"min":1200.0,"max":3600.0},{"current":2662.72,"min":1200.0,"max":3600.0},{"current":2693.946,"min":1200.0,"max":3600.0},{"current":2693.921,"min":1200.0,"max":3600.0},{"current":2699.162,"min":1200.0,"max":3600.0},{"current":2695.199,"min":1200.0,"max":3600.0},{"current":2730.486,"min":1200.0,"max":3600.0},{"current":2694.063,"min":1200.0,"max":3600.0},{"current":2694.642,"min":1200.0,"max":3600.0},{"current":2698.703,"min":1200.0,"max":3600.0},{"current":2692.415,"min":1200.0,"max":3600.0},{"current":2697.53,"min":1200.0,"max":3600.0},{"current":2719.969,"min":1200.0,"max":3600.0},{"current":2692.874,"min":1200.0,"max":3600.0},{"current":2694.164,"min":1200.0,"max":3600.0},{"current":2619.072,"min":1200.0,"max":3600.0},{"current":2695.545,"min":1200.0,"max":3600.0},{"current":2823.152,"min":1200.0,"max":3600.0},{"current":2694.213,"min":1200.0,"max":3600.0},{"current":2789.551,"min":1200.0,"max":3600.0},{"current":2695.639,"min":1200.0,"max":3600.0},{"current":2699.893,"min":1200.0,"max":3600.0},{"current":2694.388,"min":1200.0,"max":3600.0},{"current":2693.77,"min":1200.0,"max":3600.0},{"current":2711.121,"min":1200.0,"max":3600.0},{"current":2652.66,"min":1200.0,"max":3600.0},{"current":2697.152,"min":1200.0,"max":3600.0},{"current":2707.26,"min":1200.0,"max":3600.0},{"current":2694.012,"min":1200.0,"max":3600.0},{"current":2698.885,"min":1200.0,"max":3600.0},{"current":2695.894,"min":1200.0,"max":3600.0},{"current":2696.28,"min":1200.0,"max":3600.0},{"current":2788.997,"min":1200.0,"max":3600.0}],"disk_write_speed":71.83885871992986,"process_ids":[2113736,2113939]} +{"timestamp":1678267844.36419,"rapl_power_draw_absolute":159.48324955407816,"rapl_estimated_attributable_power_draw":8.205598393050069,"cpu_time_seconds":{"2113736":{"user":756.55,"system":150.08,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":12.19,"system":17.77,"children_user":5.34,"children_system":179.31,"iowait":18.63}},"average_relative_cpu_utilization":0.0591842722773989,"absolute_cpu_utilization":1.0037250099415265,"relative_mem_usage":0.016882109280021276,"absolute_mem_usage":3471028224.0,"absolute_mem_percent_usage":0.006416790648766378,"mem_info_per_process":{"2113736":{"rss":3418275840,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3006689280,"pss":3169542144,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301486080,"swap":0}},"nvidia_draw_absolute":658.2,"nvidia_estimated_attributable_power_draw":68.99,"average_gpu_estimated_utilization_absolute":0.2475,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":5.333333333333333,"mem":3.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":10.333333333333334,"mem":5.333333333333333,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":73.66666666666667,"mem":41.666666666666664,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.75,"mem":17.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":68.99},"cpu_count_adjusted_average_load":[0.23500000000000001,0.23399999999999999,0.227],"cpu_freq":[{"current":2682.414,"min":1200.0,"max":3600.0},{"current":2694.858,"min":1200.0,"max":3600.0},{"current":2694.204,"min":1200.0,"max":3600.0},{"current":2699.35,"min":1200.0,"max":3600.0},{"current":2700.299,"min":1200.0,"max":3600.0},{"current":2710.336,"min":1200.0,"max":3600.0},{"current":2748.409,"min":1200.0,"max":3600.0},{"current":2697.775,"min":1200.0,"max":3600.0},{"current":2759.751,"min":1200.0,"max":3600.0},{"current":2754.239,"min":1200.0,"max":3600.0},{"current":2708.546,"min":1200.0,"max":3600.0},{"current":2701.669,"min":1200.0,"max":3600.0},{"current":2711.057,"min":1200.0,"max":3600.0},{"current":2711.606,"min":1200.0,"max":3600.0},{"current":2694.219,"min":1200.0,"max":3600.0},{"current":2713.691,"min":1200.0,"max":3600.0},{"current":2698.699,"min":1200.0,"max":3600.0},{"current":2700.517,"min":1200.0,"max":3600.0},{"current":2655.655,"min":1200.0,"max":3600.0},{"current":2696.281,"min":1200.0,"max":3600.0},{"current":2721.979,"min":1200.0,"max":3600.0},{"current":2695.84,"min":1200.0,"max":3600.0},{"current":2696.764,"min":1200.0,"max":3600.0},{"current":2826.578,"min":1200.0,"max":3600.0},{"current":2654.177,"min":1200.0,"max":3600.0},{"current":2742.831,"min":1200.0,"max":3600.0},{"current":2629.237,"min":1200.0,"max":3600.0},{"current":2676.803,"min":1200.0,"max":3600.0},{"current":2694.559,"min":1200.0,"max":3600.0},{"current":2695.867,"min":1200.0,"max":3600.0},{"current":2699.507,"min":1200.0,"max":3600.0},{"current":2692.219,"min":1200.0,"max":3600.0},{"current":2694.629,"min":1200.0,"max":3600.0},{"current":2778.719,"min":1200.0,"max":3600.0},{"current":2698.803,"min":1200.0,"max":3600.0},{"current":2696.751,"min":1200.0,"max":3600.0},{"current":2696.143,"min":1200.0,"max":3600.0},{"current":2695.379,"min":1200.0,"max":3600.0},{"current":2695.127,"min":1200.0,"max":3600.0},{"current":2693.812,"min":1200.0,"max":3600.0},{"current":2728.778,"min":1200.0,"max":3600.0},{"current":2710.844,"min":1200.0,"max":3600.0},{"current":2695.238,"min":1200.0,"max":3600.0},{"current":2622.458,"min":1200.0,"max":3600.0},{"current":2694.194,"min":1200.0,"max":3600.0},{"current":2705.324,"min":1200.0,"max":3600.0},{"current":2693.776,"min":1200.0,"max":3600.0},{"current":2694.126,"min":1200.0,"max":3600.0},{"current":2621.682,"min":1200.0,"max":3600.0},{"current":2699.063,"min":1200.0,"max":3600.0},{"current":2698.797,"min":1200.0,"max":3600.0},{"current":2773.915,"min":1200.0,"max":3600.0},{"current":2708.836,"min":1200.0,"max":3600.0},{"current":2698.968,"min":1200.0,"max":3600.0},{"current":2700.731,"min":1200.0,"max":3600.0},{"current":2748.121,"min":1200.0,"max":3600.0},{"current":2711.724,"min":1200.0,"max":3600.0},{"current":2694.888,"min":1200.0,"max":3600.0},{"current":2754.488,"min":1200.0,"max":3600.0},{"current":2740.327,"min":1200.0,"max":3600.0},{"current":2595.687,"min":1200.0,"max":3600.0},{"current":2695.497,"min":1200.0,"max":3600.0},{"current":2695.345,"min":1200.0,"max":3600.0},{"current":2696.037,"min":1200.0,"max":3600.0},{"current":2748.074,"min":1200.0,"max":3600.0},{"current":2675.456,"min":1200.0,"max":3600.0},{"current":2731.048,"min":1200.0,"max":3600.0},{"current":2633.979,"min":1200.0,"max":3600.0},{"current":2633.26,"min":1200.0,"max":3600.0},{"current":2697.82,"min":1200.0,"max":3600.0},{"current":2693.914,"min":1200.0,"max":3600.0},{"current":2715.432,"min":1200.0,"max":3600.0},{"current":2695.526,"min":1200.0,"max":3600.0},{"current":2765.507,"min":1200.0,"max":3600.0},{"current":2695.328,"min":1200.0,"max":3600.0},{"current":2694.661,"min":1200.0,"max":3600.0},{"current":2694.46,"min":1200.0,"max":3600.0},{"current":2707.197,"min":1200.0,"max":3600.0},{"current":2695.527,"min":1200.0,"max":3600.0},{"current":2696.53,"min":1200.0,"max":3600.0}],"disk_write_speed":72.27035829860436,"process_ids":[2113736,2113939]} +{"timestamp":1678267860.560243,"rapl_power_draw_absolute":158.1184442170725,"rapl_estimated_attributable_power_draw":8.062299920391375,"cpu_time_seconds":{"2113736":{"user":770.09,"system":152.73,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":12.39,"system":18.07,"children_user":5.45,"children_system":182.53,"iowait":18.97}},"average_relative_cpu_utilization":0.05876793873451388,"absolute_cpu_utilization":0.9986737279384913,"relative_mem_usage":0.01650636338867662,"absolute_mem_usage":3394204672.0,"absolute_mem_percent_usage":0.006274769144397701,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929868800,"pss":3092718592,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301486080,"swap":0}},"nvidia_draw_absolute":716.2,"nvidia_estimated_attributable_power_draw":248.43,"average_gpu_estimated_utilization_absolute":0.23,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.0,"mem":2.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":74.0,"mem":42.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.0,"mem":15.8,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":248.43},"cpu_count_adjusted_average_load":[0.23275,0.23362500000000003,0.227],"cpu_freq":[{"current":2688.459,"min":1200.0,"max":3600.0},{"current":2695.64,"min":1200.0,"max":3600.0},{"current":2694.425,"min":1200.0,"max":3600.0},{"current":2713.999,"min":1200.0,"max":3600.0},{"current":2694.446,"min":1200.0,"max":3600.0},{"current":2742.144,"min":1200.0,"max":3600.0},{"current":2730.234,"min":1200.0,"max":3600.0},{"current":2699.464,"min":1200.0,"max":3600.0},{"current":2778.56,"min":1200.0,"max":3600.0},{"current":2698.425,"min":1200.0,"max":3600.0},{"current":2712.31,"min":1200.0,"max":3600.0},{"current":2793.878,"min":1200.0,"max":3600.0},{"current":2711.259,"min":1200.0,"max":3600.0},{"current":2713.187,"min":1200.0,"max":3600.0},{"current":2698.704,"min":1200.0,"max":3600.0},{"current":2698.002,"min":1200.0,"max":3600.0},{"current":2701.467,"min":1200.0,"max":3600.0},{"current":2697.424,"min":1200.0,"max":3600.0},{"current":2746.898,"min":1200.0,"max":3600.0},{"current":2692.415,"min":1200.0,"max":3600.0},{"current":2730.019,"min":1200.0,"max":3600.0},{"current":2694.645,"min":1200.0,"max":3600.0},{"current":2696.255,"min":1200.0,"max":3600.0},{"current":2738.118,"min":1200.0,"max":3600.0},{"current":2680.204,"min":1200.0,"max":3600.0},{"current":2695.936,"min":1200.0,"max":3600.0},{"current":2697.036,"min":1200.0,"max":3600.0},{"current":2693.764,"min":1200.0,"max":3600.0},{"current":2698.123,"min":1200.0,"max":3600.0},{"current":2694.676,"min":1200.0,"max":3600.0},{"current":2700.889,"min":1200.0,"max":3600.0},{"current":2720.67,"min":1200.0,"max":3600.0},{"current":2699.773,"min":1200.0,"max":3600.0},{"current":2695.719,"min":1200.0,"max":3600.0},{"current":2694.963,"min":1200.0,"max":3600.0},{"current":2711.617,"min":1200.0,"max":3600.0},{"current":2750.039,"min":1200.0,"max":3600.0},{"current":2723.777,"min":1200.0,"max":3600.0},{"current":2694.663,"min":1200.0,"max":3600.0},{"current":2697.677,"min":1200.0,"max":3600.0},{"current":2718.129,"min":1200.0,"max":3600.0},{"current":2708.203,"min":1200.0,"max":3600.0},{"current":2697.785,"min":1200.0,"max":3600.0},{"current":2698.187,"min":1200.0,"max":3600.0},{"current":2694.265,"min":1200.0,"max":3600.0},{"current":2694.41,"min":1200.0,"max":3600.0},{"current":2695.204,"min":1200.0,"max":3600.0},{"current":2694.194,"min":1200.0,"max":3600.0},{"current":2625.091,"min":1200.0,"max":3600.0},{"current":2697.351,"min":1200.0,"max":3600.0},{"current":2695.151,"min":1200.0,"max":3600.0},{"current":2693.974,"min":1200.0,"max":3600.0},{"current":2696.402,"min":1200.0,"max":3600.0},{"current":2696.608,"min":1200.0,"max":3600.0},{"current":2698.031,"min":1200.0,"max":3600.0},{"current":2694.052,"min":1200.0,"max":3600.0},{"current":2693.67,"min":1200.0,"max":3600.0},{"current":2743.878,"min":1200.0,"max":3600.0},{"current":2727.833,"min":1200.0,"max":3600.0},{"current":2696.349,"min":1200.0,"max":3600.0},{"current":2697.667,"min":1200.0,"max":3600.0},{"current":2698.315,"min":1200.0,"max":3600.0},{"current":2694.547,"min":1200.0,"max":3600.0},{"current":2694.898,"min":1200.0,"max":3600.0},{"current":2714.129,"min":1200.0,"max":3600.0},{"current":2695.249,"min":1200.0,"max":3600.0},{"current":2720.072,"min":1200.0,"max":3600.0},{"current":2693.773,"min":1200.0,"max":3600.0},{"current":2700.241,"min":1200.0,"max":3600.0},{"current":2693.777,"min":1200.0,"max":3600.0},{"current":2773.347,"min":1200.0,"max":3600.0},{"current":2768.111,"min":1200.0,"max":3600.0},{"current":2695.673,"min":1200.0,"max":3600.0},{"current":2695.283,"min":1200.0,"max":3600.0},{"current":2695.254,"min":1200.0,"max":3600.0},{"current":2694.715,"min":1200.0,"max":3600.0},{"current":2612.617,"min":1200.0,"max":3600.0},{"current":2694.262,"min":1200.0,"max":3600.0},{"current":2693.771,"min":1200.0,"max":3600.0},{"current":2696.327,"min":1200.0,"max":3600.0}],"disk_write_speed":71.71126084965967,"process_ids":[2113736,2113939]} +{"timestamp":1678267876.936259,"rapl_power_draw_absolute":160.0751817335227,"rapl_estimated_attributable_power_draw":7.969170328120773,"cpu_time_seconds":{"2113736":{"user":783.81,"system":155.4,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":12.88,"system":18.4,"children_user":5.56,"children_system":185.73,"iowait":19.31}},"average_relative_cpu_utilization":0.057352432917448244,"absolute_cpu_utilization":0.9990351442821515,"relative_mem_usage":0.016634852403422978,"absolute_mem_usage":3421888512.0,"absolute_mem_percent_usage":0.006325947467986562,"mem_info_per_process":{"2113736":{"rss":3369345024,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2957549568,"pss":3120402432,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301486080,"swap":0}},"nvidia_draw_absolute":693.97,"nvidia_estimated_attributable_power_draw":72.94,"average_gpu_estimated_utilization_absolute":0.255,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":11.5,"mem":7.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":8.0,"mem":4.25,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":75.33333333333333,"mem":43.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.5,"mem":17.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":72.94},"cpu_count_adjusted_average_load":[0.231875,0.23337500000000003,0.227],"cpu_freq":[{"current":2704.084,"min":1200.0,"max":3600.0},{"current":2629.497,"min":1200.0,"max":3600.0},{"current":2694.563,"min":1200.0,"max":3600.0},{"current":2773.052,"min":1200.0,"max":3600.0},{"current":2710.81,"min":1200.0,"max":3600.0},{"current":2706.113,"min":1200.0,"max":3600.0},{"current":2791.171,"min":1200.0,"max":3600.0},{"current":2713.035,"min":1200.0,"max":3600.0},{"current":2764.654,"min":1200.0,"max":3600.0},{"current":2732.478,"min":1200.0,"max":3600.0},{"current":2709.646,"min":1200.0,"max":3600.0},{"current":2665.239,"min":1200.0,"max":3600.0},{"current":2709.329,"min":1200.0,"max":3600.0},{"current":2710.646,"min":1200.0,"max":3600.0},{"current":2720.003,"min":1200.0,"max":3600.0},{"current":2710.242,"min":1200.0,"max":3600.0},{"current":2699.188,"min":1200.0,"max":3600.0},{"current":2725.641,"min":1200.0,"max":3600.0},{"current":2703.276,"min":1200.0,"max":3600.0},{"current":2793.765,"min":1200.0,"max":3600.0},{"current":2971.442,"min":1200.0,"max":3600.0},{"current":2699.248,"min":1200.0,"max":3600.0},{"current":2778.747,"min":1200.0,"max":3600.0},{"current":3051.278,"min":1200.0,"max":3600.0},{"current":2794.792,"min":1200.0,"max":3600.0},{"current":2841.593,"min":1200.0,"max":3600.0},{"current":2840.628,"min":1200.0,"max":3600.0},{"current":2742.912,"min":1200.0,"max":3600.0},{"current":3039.302,"min":1200.0,"max":3600.0},{"current":2761.132,"min":1200.0,"max":3600.0},{"current":2806.564,"min":1200.0,"max":3600.0},{"current":2857.5,"min":1200.0,"max":3600.0},{"current":2975.768,"min":1200.0,"max":3600.0},{"current":2794.794,"min":1200.0,"max":3600.0},{"current":2967.389,"min":1200.0,"max":3600.0},{"current":2787.618,"min":1200.0,"max":3600.0},{"current":2848.751,"min":1200.0,"max":3600.0},{"current":2775.17,"min":1200.0,"max":3600.0},{"current":2798.498,"min":1200.0,"max":3600.0},{"current":2796.508,"min":1200.0,"max":3600.0},{"current":2846.125,"min":1200.0,"max":3600.0},{"current":2876.605,"min":1200.0,"max":3600.0},{"current":2711.9,"min":1200.0,"max":3600.0},{"current":2696.489,"min":1200.0,"max":3600.0},{"current":2697.839,"min":1200.0,"max":3600.0},{"current":2708.176,"min":1200.0,"max":3600.0},{"current":2693.588,"min":1200.0,"max":3600.0},{"current":2706.061,"min":1200.0,"max":3600.0},{"current":2693.035,"min":1200.0,"max":3600.0},{"current":2698.953,"min":1200.0,"max":3600.0},{"current":2709.814,"min":1200.0,"max":3600.0},{"current":2835.89,"min":1200.0,"max":3600.0},{"current":2705.896,"min":1200.0,"max":3600.0},{"current":2707.232,"min":1200.0,"max":3600.0},{"current":2709.388,"min":1200.0,"max":3600.0},{"current":2707.84,"min":1200.0,"max":3600.0},{"current":2699.129,"min":1200.0,"max":3600.0},{"current":2694.665,"min":1200.0,"max":3600.0},{"current":2762.555,"min":1200.0,"max":3600.0},{"current":2830.879,"min":1200.0,"max":3600.0},{"current":2763.497,"min":1200.0,"max":3600.0},{"current":2717.431,"min":1200.0,"max":3600.0},{"current":2739.065,"min":1200.0,"max":3600.0},{"current":2965.509,"min":1200.0,"max":3600.0},{"current":3048.642,"min":1200.0,"max":3600.0},{"current":2838.541,"min":1200.0,"max":3600.0},{"current":2942.052,"min":1200.0,"max":3600.0},{"current":2706.876,"min":1200.0,"max":3600.0},{"current":2698.672,"min":1200.0,"max":3600.0},{"current":2709.926,"min":1200.0,"max":3600.0},{"current":2711.385,"min":1200.0,"max":3600.0},{"current":2875.057,"min":1200.0,"max":3600.0},{"current":2863.358,"min":1200.0,"max":3600.0},{"current":2694.492,"min":1200.0,"max":3600.0},{"current":2879.08,"min":1200.0,"max":3600.0},{"current":2734.668,"min":1200.0,"max":3600.0},{"current":2812.259,"min":1200.0,"max":3600.0},{"current":2721.693,"min":1200.0,"max":3600.0},{"current":2697.87,"min":1200.0,"max":3600.0},{"current":2787.652,"min":1200.0,"max":3600.0}],"disk_write_speed":72.97683248258333,"process_ids":[2113736,2113939]} +{"timestamp":1678267892.652165,"rapl_power_draw_absolute":156.479736282815,"rapl_estimated_attributable_power_draw":9.541254635075408,"cpu_time_seconds":{"2113736":{"user":797.12,"system":157.81,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":13.09,"system":18.68,"children_user":5.64,"children_system":188.93,"iowait":19.66}},"average_relative_cpu_utilization":0.07039408906319065,"absolute_cpu_utilization":0.9987376548226351,"relative_mem_usage":0.016769788174443252,"absolute_mem_usage":3446136832.0,"absolute_mem_percent_usage":0.006370774643965266,"mem_info_per_process":{"2113736":{"rss":3391053824,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2981797888,"pss":3144650752,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301486080,"swap":0}},"nvidia_draw_absolute":466.5,"nvidia_estimated_attributable_power_draw":69.13,"average_gpu_estimated_utilization_absolute":0.28,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":6.5,"mem":4.5,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.0,"mem":5.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":28.0,"mem":18.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.13},"cpu_count_adjusted_average_load":[0.224625,0.23174999999999998,0.226625],"cpu_freq":[{"current":2767.883,"min":1200.0,"max":3600.0},{"current":2771.786,"min":1200.0,"max":3600.0},{"current":2730.405,"min":1200.0,"max":3600.0},{"current":2714.106,"min":1200.0,"max":3600.0},{"current":3073.18,"min":1200.0,"max":3600.0},{"current":2762.905,"min":1200.0,"max":3600.0},{"current":3187.742,"min":1200.0,"max":3600.0},{"current":2761.327,"min":1200.0,"max":3600.0},{"current":2854.016,"min":1200.0,"max":3600.0},{"current":2852.515,"min":1200.0,"max":3600.0},{"current":2900.145,"min":1200.0,"max":3600.0},{"current":2694.562,"min":1200.0,"max":3600.0},{"current":2696.477,"min":1200.0,"max":3600.0},{"current":2694.591,"min":1200.0,"max":3600.0},{"current":2696.571,"min":1200.0,"max":3600.0},{"current":2700.731,"min":1200.0,"max":3600.0},{"current":2769.072,"min":1200.0,"max":3600.0},{"current":2741.785,"min":1200.0,"max":3600.0},{"current":2696.046,"min":1200.0,"max":3600.0},{"current":2714.241,"min":1200.0,"max":3600.0},{"current":3245.92,"min":1200.0,"max":3600.0},{"current":2940.949,"min":1200.0,"max":3600.0},{"current":2918.094,"min":1200.0,"max":3600.0},{"current":3253.139,"min":1200.0,"max":3600.0},{"current":2825.197,"min":1200.0,"max":3600.0},{"current":2771.917,"min":1200.0,"max":3600.0},{"current":2970.672,"min":1200.0,"max":3600.0},{"current":2841.849,"min":1200.0,"max":3600.0},{"current":2902.559,"min":1200.0,"max":3600.0},{"current":3263.507,"min":1200.0,"max":3600.0},{"current":2973.247,"min":1200.0,"max":3600.0},{"current":3026.283,"min":1200.0,"max":3600.0},{"current":2988.382,"min":1200.0,"max":3600.0},{"current":2851.465,"min":1200.0,"max":3600.0},{"current":2737.211,"min":1200.0,"max":3600.0},{"current":2978.955,"min":1200.0,"max":3600.0},{"current":2840.109,"min":1200.0,"max":3600.0},{"current":2964.491,"min":1200.0,"max":3600.0},{"current":3151.753,"min":1200.0,"max":3600.0},{"current":3128.656,"min":1200.0,"max":3600.0},{"current":3034.792,"min":1200.0,"max":3600.0},{"current":2843.063,"min":1200.0,"max":3600.0},{"current":2705.778,"min":1200.0,"max":3600.0},{"current":2693.191,"min":1200.0,"max":3600.0},{"current":3166.633,"min":1200.0,"max":3600.0},{"current":2873.058,"min":1200.0,"max":3600.0},{"current":3041.272,"min":1200.0,"max":3600.0},{"current":2725.382,"min":1200.0,"max":3600.0},{"current":2372.67,"min":1200.0,"max":3600.0},{"current":2804.733,"min":1200.0,"max":3600.0},{"current":2732.931,"min":1200.0,"max":3600.0},{"current":2841.094,"min":1200.0,"max":3600.0},{"current":2718.245,"min":1200.0,"max":3600.0},{"current":2806.418,"min":1200.0,"max":3600.0},{"current":2736.993,"min":1200.0,"max":3600.0},{"current":2736.207,"min":1200.0,"max":3600.0},{"current":2746.073,"min":1200.0,"max":3600.0},{"current":2804.904,"min":1200.0,"max":3600.0},{"current":3190.74,"min":1200.0,"max":3600.0},{"current":3035.711,"min":1200.0,"max":3600.0},{"current":2959.455,"min":1200.0,"max":3600.0},{"current":2995.615,"min":1200.0,"max":3600.0},{"current":2897.919,"min":1200.0,"max":3600.0},{"current":3241.53,"min":1200.0,"max":3600.0},{"current":3339.781,"min":1200.0,"max":3600.0},{"current":3303.228,"min":1200.0,"max":3600.0},{"current":3175.854,"min":1200.0,"max":3600.0},{"current":2973.519,"min":1200.0,"max":3600.0},{"current":3076.42,"min":1200.0,"max":3600.0},{"current":2857.249,"min":1200.0,"max":3600.0},{"current":2927.717,"min":1200.0,"max":3600.0},{"current":3162.105,"min":1200.0,"max":3600.0},{"current":2959.597,"min":1200.0,"max":3600.0},{"current":2963.406,"min":1200.0,"max":3600.0},{"current":2998.007,"min":1200.0,"max":3600.0},{"current":3001.813,"min":1200.0,"max":3600.0},{"current":2953.964,"min":1200.0,"max":3600.0},{"current":2846.183,"min":1200.0,"max":3600.0},{"current":3148.864,"min":1200.0,"max":3600.0},{"current":2765.39,"min":1200.0,"max":3600.0}],"disk_write_speed":5.1120187110212445,"process_ids":[2113736,2113939]} +{"timestamp":1678267908.188191,"rapl_power_draw_absolute":127.50195460721002,"rapl_estimated_attributable_power_draw":14.58606106101761,"cpu_time_seconds":{"2113736":{"user":810.1,"system":160.37,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":13.18,"system":18.94,"children_user":5.74,"children_system":191.96,"iowait":19.85}},"average_relative_cpu_utilization":0.1393671275181823,"absolute_cpu_utilization":0.9987375094383913,"relative_mem_usage":0.018424815862011314,"absolute_mem_usage":3805257728.0,"absolute_mem_percent_usage":0.007034671177936349,"mem_info_per_process":{"2113736":{"rss":3749167104,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3340918784,"pss":3503771648,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301486080,"swap":0}},"nvidia_draw_absolute":455.60999999999996,"nvidia_estimated_attributable_power_draw":71.06,"average_gpu_estimated_utilization_absolute":0.252,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":14.666666666666666,"mem":8.333333333333334,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.5,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.2,"mem":17.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":71.06},"cpu_count_adjusted_average_load":[0.22112500000000002,0.2305,0.22625],"cpu_freq":[{"current":2775.911,"min":1200.0,"max":3600.0},{"current":2759.171,"min":1200.0,"max":3600.0},{"current":2785.197,"min":1200.0,"max":3600.0},{"current":2725.527,"min":1200.0,"max":3600.0},{"current":2701.849,"min":1200.0,"max":3600.0},{"current":2875.967,"min":1200.0,"max":3600.0},{"current":2705.799,"min":1200.0,"max":3600.0},{"current":2694.645,"min":1200.0,"max":3600.0},{"current":2873.223,"min":1200.0,"max":3600.0},{"current":2710.123,"min":1200.0,"max":3600.0},{"current":2720.648,"min":1200.0,"max":3600.0},{"current":2792.483,"min":1200.0,"max":3600.0},{"current":2914.671,"min":1200.0,"max":3600.0},{"current":3032.558,"min":1200.0,"max":3600.0},{"current":2905.02,"min":1200.0,"max":3600.0},{"current":2843.097,"min":1200.0,"max":3600.0},{"current":2832.865,"min":1200.0,"max":3600.0},{"current":2695.543,"min":1200.0,"max":3600.0},{"current":2866.725,"min":1200.0,"max":3600.0},{"current":2710.831,"min":1200.0,"max":3600.0},{"current":3289.241,"min":1200.0,"max":3600.0},{"current":2855.371,"min":1200.0,"max":3600.0},{"current":2699.138,"min":1200.0,"max":3600.0},{"current":3120.771,"min":1200.0,"max":3600.0},{"current":2695.661,"min":1200.0,"max":3600.0},{"current":2725.189,"min":1200.0,"max":3600.0},{"current":2745.218,"min":1200.0,"max":3600.0},{"current":2757.382,"min":1200.0,"max":3600.0},{"current":2905.138,"min":1200.0,"max":3600.0},{"current":2793.415,"min":1200.0,"max":3600.0},{"current":2942.444,"min":1200.0,"max":3600.0},{"current":2758.546,"min":1200.0,"max":3600.0},{"current":2897.409,"min":1200.0,"max":3600.0},{"current":2925.443,"min":1200.0,"max":3600.0},{"current":3163.671,"min":1200.0,"max":3600.0},{"current":3192.81,"min":1200.0,"max":3600.0},{"current":3016.28,"min":1200.0,"max":3600.0},{"current":2863.621,"min":1200.0,"max":3600.0},{"current":2921.433,"min":1200.0,"max":3600.0},{"current":2912.53,"min":1200.0,"max":3600.0},{"current":2988.191,"min":1200.0,"max":3600.0},{"current":2632.433,"min":1200.0,"max":3600.0},{"current":2727.399,"min":1200.0,"max":3600.0},{"current":2721.625,"min":1200.0,"max":3600.0},{"current":3240.465,"min":1200.0,"max":3600.0},{"current":2884.12,"min":1200.0,"max":3600.0},{"current":2890.624,"min":1200.0,"max":3600.0},{"current":2700.649,"min":1200.0,"max":3600.0},{"current":2674.59,"min":1200.0,"max":3600.0},{"current":2708.179,"min":1200.0,"max":3600.0},{"current":2973.715,"min":1200.0,"max":3600.0},{"current":2943.782,"min":1200.0,"max":3600.0},{"current":2914.013,"min":1200.0,"max":3600.0},{"current":2780.716,"min":1200.0,"max":3600.0},{"current":2749.843,"min":1200.0,"max":3600.0},{"current":2706.798,"min":1200.0,"max":3600.0},{"current":2792.363,"min":1200.0,"max":3600.0},{"current":2768.832,"min":1200.0,"max":3600.0},{"current":2971.923,"min":1200.0,"max":3600.0},{"current":2925.082,"min":1200.0,"max":3600.0},{"current":2794.052,"min":1200.0,"max":3600.0},{"current":2893.559,"min":1200.0,"max":3600.0},{"current":2866.722,"min":1200.0,"max":3600.0},{"current":2949.349,"min":1200.0,"max":3600.0},{"current":3054.49,"min":1200.0,"max":3600.0},{"current":3040.991,"min":1200.0,"max":3600.0},{"current":3092.536,"min":1200.0,"max":3600.0},{"current":2898.683,"min":1200.0,"max":3600.0},{"current":3179.716,"min":1200.0,"max":3600.0},{"current":2849.249,"min":1200.0,"max":3600.0},{"current":2971.983,"min":1200.0,"max":3600.0},{"current":3161.382,"min":1200.0,"max":3600.0},{"current":2917.548,"min":1200.0,"max":3600.0},{"current":2811.455,"min":1200.0,"max":3600.0},{"current":3014.975,"min":1200.0,"max":3600.0},{"current":2926.469,"min":1200.0,"max":3600.0},{"current":2904.11,"min":1200.0,"max":3600.0},{"current":2738.969,"min":1200.0,"max":3600.0},{"current":2773.286,"min":1200.0,"max":3600.0},{"current":2791.077,"min":1200.0,"max":3600.0}],"disk_write_speed":68.397838861358,"process_ids":[2113736,2113939]} +{"timestamp":1678267923.860256,"rapl_power_draw_absolute":164.55850864274396,"rapl_estimated_attributable_power_draw":8.276042193969243,"cpu_time_seconds":{"2113736":{"user":823.09,"system":163.07,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":13.35,"system":19.26,"children_user":5.84,"children_system":195.07,"iowait":20.18}},"average_relative_cpu_utilization":0.057524523869840895,"absolute_cpu_utilization":1.0037096691648781,"relative_mem_usage":0.01661626204039871,"absolute_mem_usage":3394213888.0,"absolute_mem_percent_usage":0.006274786181753436,"mem_info_per_process":{"2113736":{"rss":3959939072,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2929860608,"pss":3092726784,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":803.6700000000001,"nvidia_estimated_attributable_power_draw":231.33,"average_gpu_estimated_utilization_absolute":0.28600000000000003,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":20.333333333333332,"mem":13.666666666666666,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":10.666666666666666,"mem":5.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":28.6,"mem":19.8,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":231.33},"cpu_count_adjusted_average_load":[0.22562500000000002,0.231,0.2265],"cpu_freq":[{"current":2707.855,"min":1200.0,"max":3600.0},{"current":2694.471,"min":1200.0,"max":3600.0},{"current":2756.142,"min":1200.0,"max":3600.0},{"current":2697.09,"min":1200.0,"max":3600.0},{"current":2695.235,"min":1200.0,"max":3600.0},{"current":2703.335,"min":1200.0,"max":3600.0},{"current":2769.485,"min":1200.0,"max":3600.0},{"current":2702.308,"min":1200.0,"max":3600.0},{"current":2688.449,"min":1200.0,"max":3600.0},{"current":2693.864,"min":1200.0,"max":3600.0},{"current":2696.199,"min":1200.0,"max":3600.0},{"current":2689.169,"min":1200.0,"max":3600.0},{"current":2698.079,"min":1200.0,"max":3600.0},{"current":2696.268,"min":1200.0,"max":3600.0},{"current":2753.433,"min":1200.0,"max":3600.0},{"current":2694.513,"min":1200.0,"max":3600.0},{"current":2693.98,"min":1200.0,"max":3600.0},{"current":2709.118,"min":1200.0,"max":3600.0},{"current":2761.253,"min":1200.0,"max":3600.0},{"current":2633.45,"min":1200.0,"max":3600.0},{"current":2698.051,"min":1200.0,"max":3600.0},{"current":2680.576,"min":1200.0,"max":3600.0},{"current":2686.064,"min":1200.0,"max":3600.0},{"current":2693.805,"min":1200.0,"max":3600.0},{"current":2692.622,"min":1200.0,"max":3600.0},{"current":2696.222,"min":1200.0,"max":3600.0},{"current":2683.747,"min":1200.0,"max":3600.0},{"current":2697.58,"min":1200.0,"max":3600.0},{"current":2694.909,"min":1200.0,"max":3600.0},{"current":2683.491,"min":1200.0,"max":3600.0},{"current":2693.926,"min":1200.0,"max":3600.0},{"current":2625.174,"min":1200.0,"max":3600.0},{"current":2694.143,"min":1200.0,"max":3600.0},{"current":2693.809,"min":1200.0,"max":3600.0},{"current":2695.201,"min":1200.0,"max":3600.0},{"current":2695.322,"min":1200.0,"max":3600.0},{"current":2695.592,"min":1200.0,"max":3600.0},{"current":2694.078,"min":1200.0,"max":3600.0},{"current":2700.049,"min":1200.0,"max":3600.0},{"current":2698.464,"min":1200.0,"max":3600.0},{"current":2820.17,"min":1200.0,"max":3600.0},{"current":2827.608,"min":1200.0,"max":3600.0},{"current":2693.983,"min":1200.0,"max":3600.0},{"current":2695.955,"min":1200.0,"max":3600.0},{"current":2695.762,"min":1200.0,"max":3600.0},{"current":2701.089,"min":1200.0,"max":3600.0},{"current":2695.226,"min":1200.0,"max":3600.0},{"current":2696.501,"min":1200.0,"max":3600.0},{"current":2694.084,"min":1200.0,"max":3600.0},{"current":2697.603,"min":1200.0,"max":3600.0},{"current":2695.05,"min":1200.0,"max":3600.0},{"current":2825.265,"min":1200.0,"max":3600.0},{"current":2694.781,"min":1200.0,"max":3600.0},{"current":2719.588,"min":1200.0,"max":3600.0},{"current":2693.449,"min":1200.0,"max":3600.0},{"current":2694.284,"min":1200.0,"max":3600.0},{"current":2707.903,"min":1200.0,"max":3600.0},{"current":2693.822,"min":1200.0,"max":3600.0},{"current":2884.905,"min":1200.0,"max":3600.0},{"current":2826.615,"min":1200.0,"max":3600.0},{"current":2694.945,"min":1200.0,"max":3600.0},{"current":2652.537,"min":1200.0,"max":3600.0},{"current":2695.212,"min":1200.0,"max":3600.0},{"current":2697.31,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2695.294,"min":1200.0,"max":3600.0},{"current":2686.245,"min":1200.0,"max":3600.0},{"current":2695.93,"min":1200.0,"max":3600.0},{"current":2696.718,"min":1200.0,"max":3600.0},{"current":2695.483,"min":1200.0,"max":3600.0},{"current":2694.408,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2680.747,"min":1200.0,"max":3600.0},{"current":2694.785,"min":1200.0,"max":3600.0},{"current":2694.122,"min":1200.0,"max":3600.0},{"current":2696.233,"min":1200.0,"max":3600.0},{"current":2695.849,"min":1200.0,"max":3600.0},{"current":2697.569,"min":1200.0,"max":3600.0},{"current":2694.077,"min":1200.0,"max":3600.0},{"current":2695.868,"min":1200.0,"max":3600.0}],"disk_write_speed":72.69746810716312,"process_ids":[2113736,2113939]} +{"timestamp":1678267939.628222,"rapl_power_draw_absolute":164.8878397937999,"rapl_estimated_attributable_power_draw":8.427583050520147,"cpu_time_seconds":{"2113736":{"user":836.38,"system":165.55,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":13.56,"system":19.59,"children_user":5.95,"children_system":198.25,"iowait":20.53}},"average_relative_cpu_utilization":0.057785934183036125,"absolute_cpu_utilization":0.9987576880574387,"relative_mem_usage":0.019468518168471224,"absolute_mem_usage":3996316672.0,"absolute_mem_percent_usage":0.007387876385760778,"mem_info_per_process":{"2113736":{"rss":3944701952,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3531976704,"pss":3694829568,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":465.15999999999997,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.2375,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":27.333333333333332,"mem":17.666666666666668,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.5,"mem":5.25,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.75,"mem":16.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.226125,0.230875,0.226625],"cpu_freq":[{"current":2731.114,"min":1200.0,"max":3600.0},{"current":2695.925,"min":1200.0,"max":3600.0},{"current":2846.058,"min":1200.0,"max":3600.0},{"current":2772.843,"min":1200.0,"max":3600.0},{"current":2696.8,"min":1200.0,"max":3600.0},{"current":2709.744,"min":1200.0,"max":3600.0},{"current":2710.33,"min":1200.0,"max":3600.0},{"current":2708.799,"min":1200.0,"max":3600.0},{"current":2776.318,"min":1200.0,"max":3600.0},{"current":2708.319,"min":1200.0,"max":3600.0},{"current":2701.218,"min":1200.0,"max":3600.0},{"current":2699.128,"min":1200.0,"max":3600.0},{"current":2711.092,"min":1200.0,"max":3600.0},{"current":2694.83,"min":1200.0,"max":3600.0},{"current":2771.327,"min":1200.0,"max":3600.0},{"current":2695.317,"min":1200.0,"max":3600.0},{"current":2706.068,"min":1200.0,"max":3600.0},{"current":2712.605,"min":1200.0,"max":3600.0},{"current":2846.951,"min":1200.0,"max":3600.0},{"current":2694.885,"min":1200.0,"max":3600.0},{"current":2697.091,"min":1200.0,"max":3600.0},{"current":2774.955,"min":1200.0,"max":3600.0},{"current":2768.945,"min":1200.0,"max":3600.0},{"current":2772.533,"min":1200.0,"max":3600.0},{"current":2692.434,"min":1200.0,"max":3600.0},{"current":2697.9,"min":1200.0,"max":3600.0},{"current":2699.468,"min":1200.0,"max":3600.0},{"current":2697.199,"min":1200.0,"max":3600.0},{"current":2699.371,"min":1200.0,"max":3600.0},{"current":2778.908,"min":1200.0,"max":3600.0},{"current":2696.737,"min":1200.0,"max":3600.0},{"current":2695.748,"min":1200.0,"max":3600.0},{"current":2694.768,"min":1200.0,"max":3600.0},{"current":2779.754,"min":1200.0,"max":3600.0},{"current":2698.53,"min":1200.0,"max":3600.0},{"current":2696.665,"min":1200.0,"max":3600.0},{"current":2698.892,"min":1200.0,"max":3600.0},{"current":2698.189,"min":1200.0,"max":3600.0},{"current":2694.545,"min":1200.0,"max":3600.0},{"current":2694.189,"min":1200.0,"max":3600.0},{"current":2772.349,"min":1200.0,"max":3600.0},{"current":2824.996,"min":1200.0,"max":3600.0},{"current":2631.97,"min":1200.0,"max":3600.0},{"current":2707.296,"min":1200.0,"max":3600.0},{"current":2694.26,"min":1200.0,"max":3600.0},{"current":2695.227,"min":1200.0,"max":3600.0},{"current":2708.848,"min":1200.0,"max":3600.0},{"current":2696.527,"min":1200.0,"max":3600.0},{"current":2659.89,"min":1200.0,"max":3600.0},{"current":2709.126,"min":1200.0,"max":3600.0},{"current":2695.128,"min":1200.0,"max":3600.0},{"current":2788.665,"min":1200.0,"max":3600.0},{"current":2710.561,"min":1200.0,"max":3600.0},{"current":2708.401,"min":1200.0,"max":3600.0},{"current":2692.698,"min":1200.0,"max":3600.0},{"current":2694.467,"min":1200.0,"max":3600.0},{"current":2697.167,"min":1200.0,"max":3600.0},{"current":2694.321,"min":1200.0,"max":3600.0},{"current":2693.407,"min":1200.0,"max":3600.0},{"current":2805.346,"min":1200.0,"max":3600.0},{"current":2694.834,"min":1200.0,"max":3600.0},{"current":2632.347,"min":1200.0,"max":3600.0},{"current":2693.894,"min":1200.0,"max":3600.0},{"current":2694.518,"min":1200.0,"max":3600.0},{"current":2752.597,"min":1200.0,"max":3600.0},{"current":2695.209,"min":1200.0,"max":3600.0},{"current":2776.536,"min":1200.0,"max":3600.0},{"current":2695.492,"min":1200.0,"max":3600.0},{"current":2695.413,"min":1200.0,"max":3600.0},{"current":2694.515,"min":1200.0,"max":3600.0},{"current":2696.697,"min":1200.0,"max":3600.0},{"current":2772.856,"min":1200.0,"max":3600.0},{"current":2769.083,"min":1200.0,"max":3600.0},{"current":2694.705,"min":1200.0,"max":3600.0},{"current":2697.158,"min":1200.0,"max":3600.0},{"current":2691.769,"min":1200.0,"max":3600.0},{"current":2695.343,"min":1200.0,"max":3600.0},{"current":2695.445,"min":1200.0,"max":3600.0},{"current":2696.035,"min":1200.0,"max":3600.0},{"current":2694.795,"min":1200.0,"max":3600.0}],"disk_write_speed":71.65279782699683,"process_ids":[2113736,2113939]} +{"timestamp":1678267954.984174,"rapl_power_draw_absolute":165.45477291164224,"rapl_estimated_attributable_power_draw":8.384664575426937,"cpu_time_seconds":{"2113736":{"user":849.34,"system":167.95,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":13.76,"system":19.89,"children_user":6.05,"children_system":201.36,"iowait":20.87}},"average_relative_cpu_utilization":0.05745866135647051,"absolute_cpu_utilization":1.003714843543749,"relative_mem_usage":0.018294121568984332,"absolute_mem_usage":3757159424.0,"absolute_mem_percent_usage":0.006945753218354605,"mem_info_per_process":{"2113736":{"rss":3700838400,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3292819456,"pss":3455672320,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":475.64,"nvidia_estimated_attributable_power_draw":69.56,"average_gpu_estimated_utilization_absolute":0.22399999999999998,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":8.666666666666666,"mem":5.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":26.666666666666668,"mem":15.333333333333334,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.4,"mem":15.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.56},"cpu_count_adjusted_average_load":[0.22574999999999998,0.230625,0.2265],"cpu_freq":[{"current":2808.698,"min":1200.0,"max":3600.0},{"current":2712.21,"min":1200.0,"max":3600.0},{"current":2833.493,"min":1200.0,"max":3600.0},{"current":2708.763,"min":1200.0,"max":3600.0},{"current":2695.359,"min":1200.0,"max":3600.0},{"current":2698.622,"min":1200.0,"max":3600.0},{"current":2694.228,"min":1200.0,"max":3600.0},{"current":2696.672,"min":1200.0,"max":3600.0},{"current":2805.442,"min":1200.0,"max":3600.0},{"current":2696.539,"min":1200.0,"max":3600.0},{"current":2696.249,"min":1200.0,"max":3600.0},{"current":2695.169,"min":1200.0,"max":3600.0},{"current":2699.741,"min":1200.0,"max":3600.0},{"current":2696.003,"min":1200.0,"max":3600.0},{"current":2836.777,"min":1200.0,"max":3600.0},{"current":2777.784,"min":1200.0,"max":3600.0},{"current":2696.767,"min":1200.0,"max":3600.0},{"current":2700.141,"min":1200.0,"max":3600.0},{"current":2805.176,"min":1200.0,"max":3600.0},{"current":2699.087,"min":1200.0,"max":3600.0},{"current":2701.9,"min":1200.0,"max":3600.0},{"current":2772.216,"min":1200.0,"max":3600.0},{"current":2789.487,"min":1200.0,"max":3600.0},{"current":2781.653,"min":1200.0,"max":3600.0},{"current":2749.384,"min":1200.0,"max":3600.0},{"current":2698.759,"min":1200.0,"max":3600.0},{"current":2696.93,"min":1200.0,"max":3600.0},{"current":2729.3,"min":1200.0,"max":3600.0},{"current":2695.982,"min":1200.0,"max":3600.0},{"current":2771.246,"min":1200.0,"max":3600.0},{"current":2698.23,"min":1200.0,"max":3600.0},{"current":2694.179,"min":1200.0,"max":3600.0},{"current":2692.171,"min":1200.0,"max":3600.0},{"current":2767.567,"min":1200.0,"max":3600.0},{"current":2696.252,"min":1200.0,"max":3600.0},{"current":2696.991,"min":1200.0,"max":3600.0},{"current":2696.168,"min":1200.0,"max":3600.0},{"current":2696.903,"min":1200.0,"max":3600.0},{"current":2700.073,"min":1200.0,"max":3600.0},{"current":2701.432,"min":1200.0,"max":3600.0},{"current":2764.674,"min":1200.0,"max":3600.0},{"current":2761.251,"min":1200.0,"max":3600.0},{"current":2622.508,"min":1200.0,"max":3600.0},{"current":2693.999,"min":1200.0,"max":3600.0},{"current":2694.059,"min":1200.0,"max":3600.0},{"current":2695.874,"min":1200.0,"max":3600.0},{"current":2734.8,"min":1200.0,"max":3600.0},{"current":2694.265,"min":1200.0,"max":3600.0},{"current":2681.709,"min":1200.0,"max":3600.0},{"current":2694.595,"min":1200.0,"max":3600.0},{"current":2693.934,"min":1200.0,"max":3600.0},{"current":2803.791,"min":1200.0,"max":3600.0},{"current":2719.115,"min":1200.0,"max":3600.0},{"current":2707.589,"min":1200.0,"max":3600.0},{"current":2644.372,"min":1200.0,"max":3600.0},{"current":2707.454,"min":1200.0,"max":3600.0},{"current":2708.155,"min":1200.0,"max":3600.0},{"current":2708.441,"min":1200.0,"max":3600.0},{"current":2698.174,"min":1200.0,"max":3600.0},{"current":2789.232,"min":1200.0,"max":3600.0},{"current":2695.696,"min":1200.0,"max":3600.0},{"current":2714.839,"min":1200.0,"max":3600.0},{"current":2690.426,"min":1200.0,"max":3600.0},{"current":2695.268,"min":1200.0,"max":3600.0},{"current":2776.823,"min":1200.0,"max":3600.0},{"current":2693.632,"min":1200.0,"max":3600.0},{"current":2695.463,"min":1200.0,"max":3600.0},{"current":2765.64,"min":1200.0,"max":3600.0},{"current":2696.397,"min":1200.0,"max":3600.0},{"current":2694.641,"min":1200.0,"max":3600.0},{"current":2694.521,"min":1200.0,"max":3600.0},{"current":2785.995,"min":1200.0,"max":3600.0},{"current":2776.937,"min":1200.0,"max":3600.0},{"current":2694.126,"min":1200.0,"max":3600.0},{"current":2694.315,"min":1200.0,"max":3600.0},{"current":2696.287,"min":1200.0,"max":3600.0},{"current":2695.234,"min":1200.0,"max":3600.0},{"current":2696.518,"min":1200.0,"max":3600.0},{"current":2696.327,"min":1200.0,"max":3600.0},{"current":2694.446,"min":1200.0,"max":3600.0}],"disk_write_speed":71.91701165761403,"process_ids":[2113736,2113939]} +{"timestamp":1678267971.088211,"rapl_power_draw_absolute":166.28244638617923,"rapl_estimated_attributable_power_draw":8.355365761991306,"cpu_time_seconds":{"2113736":{"user":862.96,"system":170.44,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":13.97,"system":20.19,"children_user":6.16,"children_system":204.52,"iowait":21.2}},"average_relative_cpu_utilization":0.05687981243674055,"absolute_cpu_utilization":0.9990013069544285,"relative_mem_usage":0.01871899093923894,"absolute_mem_usage":3843794944.0,"absolute_mem_percent_usage":0.007105913827462638,"mem_info_per_process":{"2113736":{"rss":3791339520,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3379458048,"pss":3542307840,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":584.16,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.175,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":19.333333333333332,"mem":12.666666666666666,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":18.333333333333332,"mem":10.333333333333334,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":17.5,"mem":12.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.2245,0.230125,0.2265],"cpu_freq":[{"current":2695.144,"min":1200.0,"max":3600.0},{"current":2693.459,"min":1200.0,"max":3600.0},{"current":2689.561,"min":1200.0,"max":3600.0},{"current":2694.169,"min":1200.0,"max":3600.0},{"current":2736.901,"min":1200.0,"max":3600.0},{"current":2698.524,"min":1200.0,"max":3600.0},{"current":2711.801,"min":1200.0,"max":3600.0},{"current":2712.657,"min":1200.0,"max":3600.0},{"current":2843.403,"min":1200.0,"max":3600.0},{"current":2698.596,"min":1200.0,"max":3600.0},{"current":2700.171,"min":1200.0,"max":3600.0},{"current":2696.326,"min":1200.0,"max":3600.0},{"current":2695.257,"min":1200.0,"max":3600.0},{"current":2711.185,"min":1200.0,"max":3600.0},{"current":2831.137,"min":1200.0,"max":3600.0},{"current":2727.176,"min":1200.0,"max":3600.0},{"current":2700.872,"min":1200.0,"max":3600.0},{"current":2727.371,"min":1200.0,"max":3600.0},{"current":2792.487,"min":1200.0,"max":3600.0},{"current":2692.993,"min":1200.0,"max":3600.0},{"current":2695.234,"min":1200.0,"max":3600.0},{"current":2703.337,"min":1200.0,"max":3600.0},{"current":2696.788,"min":1200.0,"max":3600.0},{"current":2697.421,"min":1200.0,"max":3600.0},{"current":2591.493,"min":1200.0,"max":3600.0},{"current":2695.431,"min":1200.0,"max":3600.0},{"current":2698.881,"min":1200.0,"max":3600.0},{"current":2648.57,"min":1200.0,"max":3600.0},{"current":2701.282,"min":1200.0,"max":3600.0},{"current":2722.189,"min":1200.0,"max":3600.0},{"current":2697.746,"min":1200.0,"max":3600.0},{"current":2694.499,"min":1200.0,"max":3600.0},{"current":2694.21,"min":1200.0,"max":3600.0},{"current":2772.178,"min":1200.0,"max":3600.0},{"current":2694.015,"min":1200.0,"max":3600.0},{"current":2694.319,"min":1200.0,"max":3600.0},{"current":2700.062,"min":1200.0,"max":3600.0},{"current":2697.684,"min":1200.0,"max":3600.0},{"current":2695.304,"min":1200.0,"max":3600.0},{"current":2692.311,"min":1200.0,"max":3600.0},{"current":2724.01,"min":1200.0,"max":3600.0},{"current":2824.653,"min":1200.0,"max":3600.0},{"current":2626.254,"min":1200.0,"max":3600.0},{"current":2713.408,"min":1200.0,"max":3600.0},{"current":2712.937,"min":1200.0,"max":3600.0},{"current":2716.708,"min":1200.0,"max":3600.0},{"current":2707.633,"min":1200.0,"max":3600.0},{"current":2735.286,"min":1200.0,"max":3600.0},{"current":2692.5,"min":1200.0,"max":3600.0},{"current":2707.767,"min":1200.0,"max":3600.0},{"current":2695.134,"min":1200.0,"max":3600.0},{"current":2714.895,"min":1200.0,"max":3600.0},{"current":2695.999,"min":1200.0,"max":3600.0},{"current":2706.037,"min":1200.0,"max":3600.0},{"current":2697.833,"min":1200.0,"max":3600.0},{"current":2696.75,"min":1200.0,"max":3600.0},{"current":2696.758,"min":1200.0,"max":3600.0},{"current":2695.353,"min":1200.0,"max":3600.0},{"current":2668.011,"min":1200.0,"max":3600.0},{"current":2799.234,"min":1200.0,"max":3600.0},{"current":2698.1,"min":1200.0,"max":3600.0},{"current":2696.001,"min":1200.0,"max":3600.0},{"current":2692.462,"min":1200.0,"max":3600.0},{"current":2695.628,"min":1200.0,"max":3600.0},{"current":2695.467,"min":1200.0,"max":3600.0},{"current":2696.279,"min":1200.0,"max":3600.0},{"current":2693.892,"min":1200.0,"max":3600.0},{"current":2780.817,"min":1200.0,"max":3600.0},{"current":2697.236,"min":1200.0,"max":3600.0},{"current":2634.613,"min":1200.0,"max":3600.0},{"current":2694.206,"min":1200.0,"max":3600.0},{"current":2781.144,"min":1200.0,"max":3600.0},{"current":2782.75,"min":1200.0,"max":3600.0},{"current":2691.658,"min":1200.0,"max":3600.0},{"current":2693.587,"min":1200.0,"max":3600.0},{"current":2693.775,"min":1200.0,"max":3600.0},{"current":2694.299,"min":1200.0,"max":3600.0},{"current":2694.002,"min":1200.0,"max":3600.0},{"current":2696.358,"min":1200.0,"max":3600.0},{"current":2776.74,"min":1200.0,"max":3600.0}],"disk_write_speed":72.42077518931272,"process_ids":[2113736,2113939]} +{"timestamp":1678267986.808277,"rapl_power_draw_absolute":166.92562810560554,"rapl_estimated_attributable_power_draw":8.376302483893424,"cpu_time_seconds":{"2113736":{"user":876.06,"system":173.07,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":14.18,"system":20.49,"children_user":6.27,"children_system":207.65,"iowait":21.55}},"average_relative_cpu_utilization":0.057051016547228134,"absolute_cpu_utilization":1.0037239853101632,"relative_mem_usage":0.017250462048908753,"absolute_mem_usage":3545175040.0,"absolute_mem_percent_usage":0.006553863747813757,"mem_info_per_process":{"2113736":{"rss":3482558464,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3080835072,"pss":3243687936,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":467.87,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.2475,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":26.666666666666668,"mem":17.666666666666668,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.75,"mem":15.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.22562500000000002,0.230125,0.2265],"cpu_freq":[{"current":2695.843,"min":1200.0,"max":3600.0},{"current":2695.742,"min":1200.0,"max":3600.0},{"current":2871.767,"min":1200.0,"max":3600.0},{"current":2710.593,"min":1200.0,"max":3600.0},{"current":2851.935,"min":1200.0,"max":3600.0},{"current":2707.998,"min":1200.0,"max":3600.0},{"current":2709.471,"min":1200.0,"max":3600.0},{"current":2707.467,"min":1200.0,"max":3600.0},{"current":2789.296,"min":1200.0,"max":3600.0},{"current":2713.705,"min":1200.0,"max":3600.0},{"current":2700.481,"min":1200.0,"max":3600.0},{"current":2693.69,"min":1200.0,"max":3600.0},{"current":2719.567,"min":1200.0,"max":3600.0},{"current":2709.207,"min":1200.0,"max":3600.0},{"current":2846.632,"min":1200.0,"max":3600.0},{"current":2696.716,"min":1200.0,"max":3600.0},{"current":2712.18,"min":1200.0,"max":3600.0},{"current":2711.541,"min":1200.0,"max":3600.0},{"current":2831.184,"min":1200.0,"max":3600.0},{"current":2694.342,"min":1200.0,"max":3600.0},{"current":2695.363,"min":1200.0,"max":3600.0},{"current":2691.012,"min":1200.0,"max":3600.0},{"current":2667.036,"min":1200.0,"max":3600.0},{"current":2698.471,"min":1200.0,"max":3600.0},{"current":2695.161,"min":1200.0,"max":3600.0},{"current":2694.171,"min":1200.0,"max":3600.0},{"current":2694.962,"min":1200.0,"max":3600.0},{"current":2695.867,"min":1200.0,"max":3600.0},{"current":2697.539,"min":1200.0,"max":3600.0},{"current":2689.233,"min":1200.0,"max":3600.0},{"current":2700.475,"min":1200.0,"max":3600.0},{"current":2592.127,"min":1200.0,"max":3600.0},{"current":2684.836,"min":1200.0,"max":3600.0},{"current":2692.754,"min":1200.0,"max":3600.0},{"current":2695.758,"min":1200.0,"max":3600.0},{"current":2695.878,"min":1200.0,"max":3600.0},{"current":2698.571,"min":1200.0,"max":3600.0},{"current":2687.999,"min":1200.0,"max":3600.0},{"current":2697.099,"min":1200.0,"max":3600.0},{"current":2697.599,"min":1200.0,"max":3600.0},{"current":2702.753,"min":1200.0,"max":3600.0},{"current":2806.963,"min":1200.0,"max":3600.0},{"current":2694.119,"min":1200.0,"max":3600.0},{"current":2714.808,"min":1200.0,"max":3600.0},{"current":2780.466,"min":1200.0,"max":3600.0},{"current":2695.844,"min":1200.0,"max":3600.0},{"current":2719.528,"min":1200.0,"max":3600.0},{"current":2696.868,"min":1200.0,"max":3600.0},{"current":2695.639,"min":1200.0,"max":3600.0},{"current":2733.645,"min":1200.0,"max":3600.0},{"current":2758.697,"min":1200.0,"max":3600.0},{"current":2728.225,"min":1200.0,"max":3600.0},{"current":2695.916,"min":1200.0,"max":3600.0},{"current":2693.763,"min":1200.0,"max":3600.0},{"current":2657.213,"min":1200.0,"max":3600.0},{"current":2694.328,"min":1200.0,"max":3600.0},{"current":2696.164,"min":1200.0,"max":3600.0},{"current":2694.224,"min":1200.0,"max":3600.0},{"current":2657.897,"min":1200.0,"max":3600.0},{"current":2716.818,"min":1200.0,"max":3600.0},{"current":2695.812,"min":1200.0,"max":3600.0},{"current":2694.903,"min":1200.0,"max":3600.0},{"current":2695.678,"min":1200.0,"max":3600.0},{"current":2693.805,"min":1200.0,"max":3600.0},{"current":2698.369,"min":1200.0,"max":3600.0},{"current":2775.348,"min":1200.0,"max":3600.0},{"current":2693.848,"min":1200.0,"max":3600.0},{"current":2754.93,"min":1200.0,"max":3600.0},{"current":2694.338,"min":1200.0,"max":3600.0},{"current":2626.225,"min":1200.0,"max":3600.0},{"current":2694.155,"min":1200.0,"max":3600.0},{"current":2762.49,"min":1200.0,"max":3600.0},{"current":2763.031,"min":1200.0,"max":3600.0},{"current":2693.263,"min":1200.0,"max":3600.0},{"current":2695.087,"min":1200.0,"max":3600.0},{"current":2694.524,"min":1200.0,"max":3600.0},{"current":2695.665,"min":1200.0,"max":3600.0},{"current":2695.114,"min":1200.0,"max":3600.0},{"current":2694.292,"min":1200.0,"max":3600.0},{"current":2779.71,"min":1200.0,"max":3600.0}],"disk_write_speed":71.1054986640195,"process_ids":[2113736,2113939]} +{"timestamp":1678268002.38819,"rapl_power_draw_absolute":166.2888181173746,"rapl_estimated_attributable_power_draw":8.467794243944654,"cpu_time_seconds":{"2113736":{"user":889.15,"system":175.56,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":14.39,"system":20.82,"children_user":6.36,"children_system":210.8,"iowait":21.89}},"average_relative_cpu_utilization":0.05798389502342929,"absolute_cpu_utilization":0.9986791366836583,"relative_mem_usage":0.01655845465713116,"absolute_mem_usage":3394200576.0,"absolute_mem_percent_usage":0.006274761572239596,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929860608,"pss":3092713472,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":476.55000000000007,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.2633333333333333,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":13.0,"mem":7.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":26.333333333333332,"mem":17.666666666666668,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23199999999999998,0.23125,0.227],"cpu_freq":[{"current":2690.28,"min":1200.0,"max":3600.0},{"current":2822.05,"min":1200.0,"max":3600.0},{"current":2867.219,"min":1200.0,"max":3600.0},{"current":2743.062,"min":1200.0,"max":3600.0},{"current":2772.181,"min":1200.0,"max":3600.0},{"current":2710.895,"min":1200.0,"max":3600.0},{"current":2708.156,"min":1200.0,"max":3600.0},{"current":2706.011,"min":1200.0,"max":3600.0},{"current":2839.091,"min":1200.0,"max":3600.0},{"current":2702.207,"min":1200.0,"max":3600.0},{"current":2697.593,"min":1200.0,"max":3600.0},{"current":2696.432,"min":1200.0,"max":3600.0},{"current":2696.096,"min":1200.0,"max":3600.0},{"current":2694.406,"min":1200.0,"max":3600.0},{"current":2712.711,"min":1200.0,"max":3600.0},{"current":2747.054,"min":1200.0,"max":3600.0},{"current":2717.934,"min":1200.0,"max":3600.0},{"current":2711.798,"min":1200.0,"max":3600.0},{"current":2829.633,"min":1200.0,"max":3600.0},{"current":2696.408,"min":1200.0,"max":3600.0},{"current":2695.302,"min":1200.0,"max":3600.0},{"current":2787.079,"min":1200.0,"max":3600.0},{"current":2779.48,"min":1200.0,"max":3600.0},{"current":2694.748,"min":1200.0,"max":3600.0},{"current":2695.265,"min":1200.0,"max":3600.0},{"current":2695.918,"min":1200.0,"max":3600.0},{"current":2698.278,"min":1200.0,"max":3600.0},{"current":2694.598,"min":1200.0,"max":3600.0},{"current":2697.068,"min":1200.0,"max":3600.0},{"current":2786.289,"min":1200.0,"max":3600.0},{"current":2697.224,"min":1200.0,"max":3600.0},{"current":2691.195,"min":1200.0,"max":3600.0},{"current":2704.313,"min":1200.0,"max":3600.0},{"current":2760.407,"min":1200.0,"max":3600.0},{"current":2697.588,"min":1200.0,"max":3600.0},{"current":2700.823,"min":1200.0,"max":3600.0},{"current":2698.299,"min":1200.0,"max":3600.0},{"current":2697.49,"min":1200.0,"max":3600.0},{"current":2700.919,"min":1200.0,"max":3600.0},{"current":2696.966,"min":1200.0,"max":3600.0},{"current":2837.127,"min":1200.0,"max":3600.0},{"current":2818.448,"min":1200.0,"max":3600.0},{"current":2681.491,"min":1200.0,"max":3600.0},{"current":2694.603,"min":1200.0,"max":3600.0},{"current":2795.045,"min":1200.0,"max":3600.0},{"current":2703.557,"min":1200.0,"max":3600.0},{"current":2707.68,"min":1200.0,"max":3600.0},{"current":2696.075,"min":1200.0,"max":3600.0},{"current":2759.093,"min":1200.0,"max":3600.0},{"current":2694.018,"min":1200.0,"max":3600.0},{"current":2694.251,"min":1200.0,"max":3600.0},{"current":2843.494,"min":1200.0,"max":3600.0},{"current":2710.045,"min":1200.0,"max":3600.0},{"current":2709.532,"min":1200.0,"max":3600.0},{"current":2694.236,"min":1200.0,"max":3600.0},{"current":2748.391,"min":1200.0,"max":3600.0},{"current":2702.307,"min":1200.0,"max":3600.0},{"current":2696.749,"min":1200.0,"max":3600.0},{"current":2874.67,"min":1200.0,"max":3600.0},{"current":2849.016,"min":1200.0,"max":3600.0},{"current":2694.751,"min":1200.0,"max":3600.0},{"current":2694.945,"min":1200.0,"max":3600.0},{"current":2696.808,"min":1200.0,"max":3600.0},{"current":2693.98,"min":1200.0,"max":3600.0},{"current":2694.461,"min":1200.0,"max":3600.0},{"current":2719.489,"min":1200.0,"max":3600.0},{"current":2694.646,"min":1200.0,"max":3600.0},{"current":2779.923,"min":1200.0,"max":3600.0},{"current":2694.434,"min":1200.0,"max":3600.0},{"current":2695.663,"min":1200.0,"max":3600.0},{"current":2693.997,"min":1200.0,"max":3600.0},{"current":2786.418,"min":1200.0,"max":3600.0},{"current":2772.814,"min":1200.0,"max":3600.0},{"current":2696.453,"min":1200.0,"max":3600.0},{"current":2693.776,"min":1200.0,"max":3600.0},{"current":2697.8,"min":1200.0,"max":3600.0},{"current":2694.781,"min":1200.0,"max":3600.0},{"current":2697.224,"min":1200.0,"max":3600.0},{"current":2693.79,"min":1200.0,"max":3600.0},{"current":2769.026,"min":1200.0,"max":3600.0}],"disk_write_speed":72.38419265977166,"process_ids":[2113736,2113939]} +{"timestamp":1678268018.404261,"rapl_power_draw_absolute":167.89045051733308,"rapl_estimated_attributable_power_draw":8.211129733571793,"cpu_time_seconds":{"2113736":{"user":902.51,"system":178.22,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":14.59,"system":21.14,"children_user":6.4,"children_system":214.02,"iowait":22.24}},"average_relative_cpu_utilization":0.05569248740929164,"absolute_cpu_utilization":0.9987418937432764,"relative_mem_usage":0.016551115827116828,"absolute_mem_usage":3394200576.0,"absolute_mem_percent_usage":0.006274761572239596,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929860608,"pss":3092713472,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":489.5300000000001,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.245,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":16.0,"mem":10.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":7.0,"mem":4.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.5,"mem":16.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.231,0.231,0.227],"cpu_freq":[{"current":2717.993,"min":1200.0,"max":3600.0},{"current":2654.19,"min":1200.0,"max":3600.0},{"current":2844.195,"min":1200.0,"max":3600.0},{"current":2698.802,"min":1200.0,"max":3600.0},{"current":2837.949,"min":1200.0,"max":3600.0},{"current":2697.97,"min":1200.0,"max":3600.0},{"current":2706.398,"min":1200.0,"max":3600.0},{"current":2694.91,"min":1200.0,"max":3600.0},{"current":2847.559,"min":1200.0,"max":3600.0},{"current":2696.755,"min":1200.0,"max":3600.0},{"current":2696.186,"min":1200.0,"max":3600.0},{"current":2815.985,"min":1200.0,"max":3600.0},{"current":2697.925,"min":1200.0,"max":3600.0},{"current":2695.597,"min":1200.0,"max":3600.0},{"current":2696.071,"min":1200.0,"max":3600.0},{"current":2709.948,"min":1200.0,"max":3600.0},{"current":2701.991,"min":1200.0,"max":3600.0},{"current":2695.201,"min":1200.0,"max":3600.0},{"current":2877.517,"min":1200.0,"max":3600.0},{"current":2692.619,"min":1200.0,"max":3600.0},{"current":2697.397,"min":1200.0,"max":3600.0},{"current":2769.429,"min":1200.0,"max":3600.0},{"current":2782.76,"min":1200.0,"max":3600.0},{"current":2696.276,"min":1200.0,"max":3600.0},{"current":2694.938,"min":1200.0,"max":3600.0},{"current":2734.398,"min":1200.0,"max":3600.0},{"current":2698.967,"min":1200.0,"max":3600.0},{"current":2724.89,"min":1200.0,"max":3600.0},{"current":2696.649,"min":1200.0,"max":3600.0},{"current":2696.999,"min":1200.0,"max":3600.0},{"current":2790.5,"min":1200.0,"max":3600.0},{"current":2761.757,"min":1200.0,"max":3600.0},{"current":2771.4,"min":1200.0,"max":3600.0},{"current":2699.885,"min":1200.0,"max":3600.0},{"current":2759.4,"min":1200.0,"max":3600.0},{"current":2694.434,"min":1200.0,"max":3600.0},{"current":2697.133,"min":1200.0,"max":3600.0},{"current":2695.508,"min":1200.0,"max":3600.0},{"current":2697.521,"min":1200.0,"max":3600.0},{"current":2695.126,"min":1200.0,"max":3600.0},{"current":2842.262,"min":1200.0,"max":3600.0},{"current":2877.911,"min":1200.0,"max":3600.0},{"current":2700.224,"min":1200.0,"max":3600.0},{"current":2696.043,"min":1200.0,"max":3600.0},{"current":2723.119,"min":1200.0,"max":3600.0},{"current":2693.971,"min":1200.0,"max":3600.0},{"current":2695.719,"min":1200.0,"max":3600.0},{"current":2694.28,"min":1200.0,"max":3600.0},{"current":2695.416,"min":1200.0,"max":3600.0},{"current":2694.513,"min":1200.0,"max":3600.0},{"current":2708.511,"min":1200.0,"max":3600.0},{"current":2844.661,"min":1200.0,"max":3600.0},{"current":2697.516,"min":1200.0,"max":3600.0},{"current":2694.615,"min":1200.0,"max":3600.0},{"current":2779.697,"min":1200.0,"max":3600.0},{"current":2696.0,"min":1200.0,"max":3600.0},{"current":2694.715,"min":1200.0,"max":3600.0},{"current":2738.646,"min":1200.0,"max":3600.0},{"current":2638.926,"min":1200.0,"max":3600.0},{"current":2848.073,"min":1200.0,"max":3600.0},{"current":2693.618,"min":1200.0,"max":3600.0},{"current":2645.787,"min":1200.0,"max":3600.0},{"current":2671.677,"min":1200.0,"max":3600.0},{"current":2695.316,"min":1200.0,"max":3600.0},{"current":2694.296,"min":1200.0,"max":3600.0},{"current":2783.084,"min":1200.0,"max":3600.0},{"current":2693.469,"min":1200.0,"max":3600.0},{"current":2771.34,"min":1200.0,"max":3600.0},{"current":2694.266,"min":1200.0,"max":3600.0},{"current":2695.295,"min":1200.0,"max":3600.0},{"current":2750.816,"min":1200.0,"max":3600.0},{"current":2780.506,"min":1200.0,"max":3600.0},{"current":2781.597,"min":1200.0,"max":3600.0},{"current":2694.915,"min":1200.0,"max":3600.0},{"current":2694.844,"min":1200.0,"max":3600.0},{"current":2692.786,"min":1200.0,"max":3600.0},{"current":2693.515,"min":1200.0,"max":3600.0},{"current":2693.778,"min":1200.0,"max":3600.0},{"current":2696.426,"min":1200.0,"max":3600.0},{"current":2774.905,"min":1200.0,"max":3600.0}],"disk_write_speed":71.80982220053588,"process_ids":[2113736,2113939]} +{"timestamp":1678268034.272202,"rapl_power_draw_absolute":167.03988034748318,"rapl_estimated_attributable_power_draw":8.4268947994952,"cpu_time_seconds":{"2113736":{"user":915.82,"system":180.78,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":14.82,"system":21.46,"children_user":6.48,"children_system":217.17,"iowait":22.57}},"average_relative_cpu_utilization":0.05747436492205471,"absolute_cpu_utilization":1.0036889983219865,"relative_mem_usage":0.016499692670015605,"absolute_mem_usage":3394200576.0,"absolute_mem_percent_usage":0.006274761572239596,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929860608,"pss":3092713472,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":514.0699999999999,"nvidia_estimated_attributable_power_draw":114.82,"average_gpu_estimated_utilization_absolute":0.265,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":19.75,"mem":13.25,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.5,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":26.5,"mem":18.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":114.82},"cpu_count_adjusted_average_load":[0.22962500000000002,0.23075,0.226875],"cpu_freq":[{"current":2699.157,"min":1200.0,"max":3600.0},{"current":2694.932,"min":1200.0,"max":3600.0},{"current":2834.125,"min":1200.0,"max":3600.0},{"current":2709.698,"min":1200.0,"max":3600.0},{"current":2842.58,"min":1200.0,"max":3600.0},{"current":2708.483,"min":1200.0,"max":3600.0},{"current":2713.234,"min":1200.0,"max":3600.0},{"current":2746.314,"min":1200.0,"max":3600.0},{"current":2712.302,"min":1200.0,"max":3600.0},{"current":2709.768,"min":1200.0,"max":3600.0},{"current":2842.284,"min":1200.0,"max":3600.0},{"current":2823.049,"min":1200.0,"max":3600.0},{"current":2715.457,"min":1200.0,"max":3600.0},{"current":2694.709,"min":1200.0,"max":3600.0},{"current":2694.714,"min":1200.0,"max":3600.0},{"current":2721.083,"min":1200.0,"max":3600.0},{"current":2710.427,"min":1200.0,"max":3600.0},{"current":2695.49,"min":1200.0,"max":3600.0},{"current":2847.631,"min":1200.0,"max":3600.0},{"current":2696.333,"min":1200.0,"max":3600.0},{"current":2770.491,"min":1200.0,"max":3600.0},{"current":2769.908,"min":1200.0,"max":3600.0},{"current":2722.508,"min":1200.0,"max":3600.0},{"current":2695.236,"min":1200.0,"max":3600.0},{"current":2695.888,"min":1200.0,"max":3600.0},{"current":2693.83,"min":1200.0,"max":3600.0},{"current":2698.49,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2697.35,"min":1200.0,"max":3600.0},{"current":2694.893,"min":1200.0,"max":3600.0},{"current":2783.156,"min":1200.0,"max":3600.0},{"current":2696.678,"min":1200.0,"max":3600.0},{"current":2694.045,"min":1200.0,"max":3600.0},{"current":2697.135,"min":1200.0,"max":3600.0},{"current":2778.796,"min":1200.0,"max":3600.0},{"current":2695.495,"min":1200.0,"max":3600.0},{"current":2698.113,"min":1200.0,"max":3600.0},{"current":2696.953,"min":1200.0,"max":3600.0},{"current":2697.621,"min":1200.0,"max":3600.0},{"current":2698.477,"min":1200.0,"max":3600.0},{"current":2693.789,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2658.0,"min":1200.0,"max":3600.0},{"current":2695.41,"min":1200.0,"max":3600.0},{"current":2693.95,"min":1200.0,"max":3600.0},{"current":2698.09,"min":1200.0,"max":3600.0},{"current":2694.181,"min":1200.0,"max":3600.0},{"current":2697.289,"min":1200.0,"max":3600.0},{"current":2703.769,"min":1200.0,"max":3600.0},{"current":2727.819,"min":1200.0,"max":3600.0},{"current":2694.047,"min":1200.0,"max":3600.0},{"current":2818.974,"min":1200.0,"max":3600.0},{"current":2709.363,"min":1200.0,"max":3600.0},{"current":2694.163,"min":1200.0,"max":3600.0},{"current":2707.624,"min":1200.0,"max":3600.0},{"current":2701.846,"min":1200.0,"max":3600.0},{"current":2695.386,"min":1200.0,"max":3600.0},{"current":2698.918,"min":1200.0,"max":3600.0},{"current":2692.763,"min":1200.0,"max":3600.0},{"current":2836.184,"min":1200.0,"max":3600.0},{"current":2693.612,"min":1200.0,"max":3600.0},{"current":2712.557,"min":1200.0,"max":3600.0},{"current":2738.062,"min":1200.0,"max":3600.0},{"current":2696.208,"min":1200.0,"max":3600.0},{"current":2695.56,"min":1200.0,"max":3600.0},{"current":2764.04,"min":1200.0,"max":3600.0},{"current":2695.219,"min":1200.0,"max":3600.0},{"current":2764.649,"min":1200.0,"max":3600.0},{"current":2693.857,"min":1200.0,"max":3600.0},{"current":2693.775,"min":1200.0,"max":3600.0},{"current":2634.942,"min":1200.0,"max":3600.0},{"current":2694.09,"min":1200.0,"max":3600.0},{"current":2767.076,"min":1200.0,"max":3600.0},{"current":2695.825,"min":1200.0,"max":3600.0},{"current":2693.871,"min":1200.0,"max":3600.0},{"current":2695.653,"min":1200.0,"max":3600.0},{"current":2696.702,"min":1200.0,"max":3600.0},{"current":2694.524,"min":1200.0,"max":3600.0},{"current":2695.238,"min":1200.0,"max":3600.0},{"current":2779.922,"min":1200.0,"max":3600.0}],"disk_write_speed":70.61339089842414,"process_ids":[2113736,2113939]} +{"timestamp":1678268049.868255,"rapl_power_draw_absolute":167.23847503445853,"rapl_estimated_attributable_power_draw":8.303274543931783,"cpu_time_seconds":{"2113736":{"user":928.93,"system":183.26,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":15.03,"system":21.76,"children_user":6.57,"children_system":220.3,"iowait":22.91}},"average_relative_cpu_utilization":0.056546961268331856,"absolute_cpu_utilization":0.9936506265181532,"relative_mem_usage":0.016537234840390352,"absolute_mem_usage":3394200576.0,"absolute_mem_percent_usage":0.006274761572239596,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929860608,"pss":3092713472,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":610.85,"nvidia_estimated_attributable_power_draw":203.29,"average_gpu_estimated_utilization_absolute":0.276,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":7.0,"mem":4.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":25.0,"mem":14.333333333333334,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":27.6,"mem":19.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":203.29},"cpu_count_adjusted_average_load":[0.23025,0.230875,0.227],"cpu_freq":[{"current":2695.627,"min":1200.0,"max":3600.0},{"current":2693.465,"min":1200.0,"max":3600.0},{"current":2695.07,"min":1200.0,"max":3600.0},{"current":2718.826,"min":1200.0,"max":3600.0},{"current":2848.04,"min":1200.0,"max":3600.0},{"current":2717.241,"min":1200.0,"max":3600.0},{"current":2696.45,"min":1200.0,"max":3600.0},{"current":2842.115,"min":1200.0,"max":3600.0},{"current":2709.451,"min":1200.0,"max":3600.0},{"current":2709.135,"min":1200.0,"max":3600.0},{"current":2823.854,"min":1200.0,"max":3600.0},{"current":2784.562,"min":1200.0,"max":3600.0},{"current":2700.618,"min":1200.0,"max":3600.0},{"current":2697.335,"min":1200.0,"max":3600.0},{"current":2710.431,"min":1200.0,"max":3600.0},{"current":2711.201,"min":1200.0,"max":3600.0},{"current":2740.092,"min":1200.0,"max":3600.0},{"current":2695.58,"min":1200.0,"max":3600.0},{"current":2854.428,"min":1200.0,"max":3600.0},{"current":2638.587,"min":1200.0,"max":3600.0},{"current":2695.872,"min":1200.0,"max":3600.0},{"current":2773.015,"min":1200.0,"max":3600.0},{"current":2784.342,"min":1200.0,"max":3600.0},{"current":2694.73,"min":1200.0,"max":3600.0},{"current":2695.306,"min":1200.0,"max":3600.0},{"current":2633.025,"min":1200.0,"max":3600.0},{"current":2696.628,"min":1200.0,"max":3600.0},{"current":2684.411,"min":1200.0,"max":3600.0},{"current":2697.518,"min":1200.0,"max":3600.0},{"current":2695.814,"min":1200.0,"max":3600.0},{"current":2756.183,"min":1200.0,"max":3600.0},{"current":2696.688,"min":1200.0,"max":3600.0},{"current":2694.899,"min":1200.0,"max":3600.0},{"current":2696.08,"min":1200.0,"max":3600.0},{"current":2776.235,"min":1200.0,"max":3600.0},{"current":2694.724,"min":1200.0,"max":3600.0},{"current":2697.608,"min":1200.0,"max":3600.0},{"current":2695.968,"min":1200.0,"max":3600.0},{"current":2694.118,"min":1200.0,"max":3600.0},{"current":2700.794,"min":1200.0,"max":3600.0},{"current":2746.042,"min":1200.0,"max":3600.0},{"current":2856.87,"min":1200.0,"max":3600.0},{"current":2830.751,"min":1200.0,"max":3600.0},{"current":2726.564,"min":1200.0,"max":3600.0},{"current":2741.308,"min":1200.0,"max":3600.0},{"current":2714.281,"min":1200.0,"max":3600.0},{"current":2696.546,"min":1200.0,"max":3600.0},{"current":2693.627,"min":1200.0,"max":3600.0},{"current":2695.641,"min":1200.0,"max":3600.0},{"current":2696.311,"min":1200.0,"max":3600.0},{"current":2692.718,"min":1200.0,"max":3600.0},{"current":2771.611,"min":1200.0,"max":3600.0},{"current":2708.077,"min":1200.0,"max":3600.0},{"current":2697.759,"min":1200.0,"max":3600.0},{"current":2693.901,"min":1200.0,"max":3600.0},{"current":2724.287,"min":1200.0,"max":3600.0},{"current":2718.107,"min":1200.0,"max":3600.0},{"current":2695.365,"min":1200.0,"max":3600.0},{"current":2694.126,"min":1200.0,"max":3600.0},{"current":2867.134,"min":1200.0,"max":3600.0},{"current":2696.186,"min":1200.0,"max":3600.0},{"current":2694.633,"min":1200.0,"max":3600.0},{"current":2693.451,"min":1200.0,"max":3600.0},{"current":2695.805,"min":1200.0,"max":3600.0},{"current":2697.479,"min":1200.0,"max":3600.0},{"current":2734.807,"min":1200.0,"max":3600.0},{"current":2696.567,"min":1200.0,"max":3600.0},{"current":2779.239,"min":1200.0,"max":3600.0},{"current":2694.988,"min":1200.0,"max":3600.0},{"current":2695.994,"min":1200.0,"max":3600.0},{"current":2694.876,"min":1200.0,"max":3600.0},{"current":2693.527,"min":1200.0,"max":3600.0},{"current":2731.135,"min":1200.0,"max":3600.0},{"current":2695.354,"min":1200.0,"max":3600.0},{"current":2694.268,"min":1200.0,"max":3600.0},{"current":2697.12,"min":1200.0,"max":3600.0},{"current":2694.479,"min":1200.0,"max":3600.0},{"current":2695.514,"min":1200.0,"max":3600.0},{"current":2690.596,"min":1200.0,"max":3600.0},{"current":2754.227,"min":1200.0,"max":3600.0}],"disk_write_speed":69.7722667855515,"process_ids":[2113736,2113939]} +{"timestamp":1678268065.468224,"rapl_power_draw_absolute":165.59865751520573,"rapl_estimated_attributable_power_draw":8.485731201552195,"cpu_time_seconds":{"2113736":{"user":942.09,"system":185.71,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":15.24,"system":22.04,"children_user":6.63,"children_system":223.48,"iowait":23.24}},"average_relative_cpu_utilization":0.05800173979186982,"absolute_cpu_utilization":0.9987331274944096,"relative_mem_usage":0.019354634796400618,"absolute_mem_usage":3982445568.0,"absolute_mem_percent_usage":0.007362233272339852,"mem_info_per_process":{"2113736":{"rss":3924344832,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3518107648,"pss":3680958464,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":490.97,"nvidia_estimated_attributable_power_draw":71.49,"average_gpu_estimated_utilization_absolute":0.248,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":10.333333333333334,"mem":6.666666666666667,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.5,"mem":5.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":13.666666666666666,"mem":8.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.8,"mem":16.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":71.49},"cpu_count_adjusted_average_load":[0.23162500000000003,0.23112499999999997,0.22725],"cpu_freq":[{"current":2705.361,"min":1200.0,"max":3600.0},{"current":2672.21,"min":1200.0,"max":3600.0},{"current":2691.879,"min":1200.0,"max":3600.0},{"current":2695.622,"min":1200.0,"max":3600.0},{"current":2702.945,"min":1200.0,"max":3600.0},{"current":2764.733,"min":1200.0,"max":3600.0},{"current":2700.313,"min":1200.0,"max":3600.0},{"current":2695.204,"min":1200.0,"max":3600.0},{"current":2704.343,"min":1200.0,"max":3600.0},{"current":2696.099,"min":1200.0,"max":3600.0},{"current":2786.803,"min":1200.0,"max":3600.0},{"current":2720.806,"min":1200.0,"max":3600.0},{"current":2697.129,"min":1200.0,"max":3600.0},{"current":2696.157,"min":1200.0,"max":3600.0},{"current":2696.617,"min":1200.0,"max":3600.0},{"current":2694.848,"min":1200.0,"max":3600.0},{"current":2698.089,"min":1200.0,"max":3600.0},{"current":2696.114,"min":1200.0,"max":3600.0},{"current":2759.01,"min":1200.0,"max":3600.0},{"current":2625.861,"min":1200.0,"max":3600.0},{"current":2696.058,"min":1200.0,"max":3600.0},{"current":2697.174,"min":1200.0,"max":3600.0},{"current":2696.527,"min":1200.0,"max":3600.0},{"current":2822.236,"min":1200.0,"max":3600.0},{"current":2698.201,"min":1200.0,"max":3600.0},{"current":2857.987,"min":1200.0,"max":3600.0},{"current":2696.345,"min":1200.0,"max":3600.0},{"current":2759.133,"min":1200.0,"max":3600.0},{"current":2699.234,"min":1200.0,"max":3600.0},{"current":2696.096,"min":1200.0,"max":3600.0},{"current":2856.425,"min":1200.0,"max":3600.0},{"current":2695.336,"min":1200.0,"max":3600.0},{"current":2720.553,"min":1200.0,"max":3600.0},{"current":2695.518,"min":1200.0,"max":3600.0},{"current":2845.792,"min":1200.0,"max":3600.0},{"current":2787.513,"min":1200.0,"max":3600.0},{"current":2694.717,"min":1200.0,"max":3600.0},{"current":2729.366,"min":1200.0,"max":3600.0},{"current":2793.101,"min":1200.0,"max":3600.0},{"current":2753.443,"min":1200.0,"max":3600.0},{"current":2695.884,"min":1200.0,"max":3600.0},{"current":2729.334,"min":1200.0,"max":3600.0},{"current":2774.97,"min":1200.0,"max":3600.0},{"current":2696.317,"min":1200.0,"max":3600.0},{"current":2694.229,"min":1200.0,"max":3600.0},{"current":2685.28,"min":1200.0,"max":3600.0},{"current":2693.895,"min":1200.0,"max":3600.0},{"current":2774.593,"min":1200.0,"max":3600.0},{"current":2694.234,"min":1200.0,"max":3600.0},{"current":2697.625,"min":1200.0,"max":3600.0},{"current":2677.906,"min":1200.0,"max":3600.0},{"current":2696.478,"min":1200.0,"max":3600.0},{"current":2694.003,"min":1200.0,"max":3600.0},{"current":2695.174,"min":1200.0,"max":3600.0},{"current":2694.265,"min":1200.0,"max":3600.0},{"current":2694.309,"min":1200.0,"max":3600.0},{"current":2695.564,"min":1200.0,"max":3600.0},{"current":2694.542,"min":1200.0,"max":3600.0},{"current":2742.769,"min":1200.0,"max":3600.0},{"current":2744.645,"min":1200.0,"max":3600.0},{"current":2695.12,"min":1200.0,"max":3600.0},{"current":2695.871,"min":1200.0,"max":3600.0},{"current":2695.39,"min":1200.0,"max":3600.0},{"current":2876.186,"min":1200.0,"max":3600.0},{"current":2778.902,"min":1200.0,"max":3600.0},{"current":2863.169,"min":1200.0,"max":3600.0},{"current":2694.748,"min":1200.0,"max":3600.0},{"current":2882.983,"min":1200.0,"max":3600.0},{"current":2711.163,"min":1200.0,"max":3600.0},{"current":2696.128,"min":1200.0,"max":3600.0},{"current":2695.096,"min":1200.0,"max":3600.0},{"current":2695.858,"min":1200.0,"max":3600.0},{"current":2864.607,"min":1200.0,"max":3600.0},{"current":2694.802,"min":1200.0,"max":3600.0},{"current":2718.288,"min":1200.0,"max":3600.0},{"current":2770.795,"min":1200.0,"max":3600.0},{"current":2696.098,"min":1200.0,"max":3600.0},{"current":2872.491,"min":1200.0,"max":3600.0},{"current":2867.694,"min":1200.0,"max":3600.0},{"current":2776.86,"min":1200.0,"max":3600.0}],"disk_write_speed":71.32283923529909,"process_ids":[2113736,2113939]} +{"timestamp":1678268081.120209,"rapl_power_draw_absolute":166.73841299299312,"rapl_estimated_attributable_power_draw":8.603298999192791,"cpu_time_seconds":{"2113736":{"user":955.13,"system":188.33,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":15.44,"system":22.35,"children_user":6.71,"children_system":226.65,"iowait":23.58}},"average_relative_cpu_utilization":0.05837656882832778,"absolute_cpu_utilization":1.003706864239713,"relative_mem_usage":0.01874203457797506,"absolute_mem_usage":3866535936.0,"absolute_mem_percent_usage":0.007147954449258882,"mem_info_per_process":{"2113736":{"rss":3811557376,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3402199040,"pss":3565048832,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":466.40000000000003,"nvidia_estimated_attributable_power_draw":69.95,"average_gpu_estimated_utilization_absolute":0.132,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":20.0,"mem":12.75,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":13.2,"mem":8.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.95},"cpu_count_adjusted_average_load":[0.23112499999999997,0.23112499999999997,0.22725],"cpu_freq":[{"current":2695.174,"min":1200.0,"max":3600.0},{"current":2705.645,"min":1200.0,"max":3600.0},{"current":2712.667,"min":1200.0,"max":3600.0},{"current":2722.304,"min":1200.0,"max":3600.0},{"current":2708.785,"min":1200.0,"max":3600.0},{"current":2849.392,"min":1200.0,"max":3600.0},{"current":2697.803,"min":1200.0,"max":3600.0},{"current":2633.354,"min":1200.0,"max":3600.0},{"current":2695.195,"min":1200.0,"max":3600.0},{"current":2695.892,"min":1200.0,"max":3600.0},{"current":2763.009,"min":1200.0,"max":3600.0},{"current":2692.745,"min":1200.0,"max":3600.0},{"current":2697.962,"min":1200.0,"max":3600.0},{"current":2769.335,"min":1200.0,"max":3600.0},{"current":2695.358,"min":1200.0,"max":3600.0},{"current":2695.644,"min":1200.0,"max":3600.0},{"current":2695.987,"min":1200.0,"max":3600.0},{"current":2695.81,"min":1200.0,"max":3600.0},{"current":2764.861,"min":1200.0,"max":3600.0},{"current":2694.955,"min":1200.0,"max":3600.0},{"current":2694.304,"min":1200.0,"max":3600.0},{"current":2692.282,"min":1200.0,"max":3600.0},{"current":2696.856,"min":1200.0,"max":3600.0},{"current":2686.661,"min":1200.0,"max":3600.0},{"current":2702.077,"min":1200.0,"max":3600.0},{"current":2693.934,"min":1200.0,"max":3600.0},{"current":2699.548,"min":1200.0,"max":3600.0},{"current":2685.524,"min":1200.0,"max":3600.0},{"current":2701.528,"min":1200.0,"max":3600.0},{"current":2694.858,"min":1200.0,"max":3600.0},{"current":2764.783,"min":1200.0,"max":3600.0},{"current":2693.792,"min":1200.0,"max":3600.0},{"current":2739.624,"min":1200.0,"max":3600.0},{"current":2697.05,"min":1200.0,"max":3600.0},{"current":2748.209,"min":1200.0,"max":3600.0},{"current":2697.217,"min":1200.0,"max":3600.0},{"current":2697.321,"min":1200.0,"max":3600.0},{"current":2694.033,"min":1200.0,"max":3600.0},{"current":2660.467,"min":1200.0,"max":3600.0},{"current":2696.868,"min":1200.0,"max":3600.0},{"current":2697.002,"min":1200.0,"max":3600.0},{"current":2684.28,"min":1200.0,"max":3600.0},{"current":2693.757,"min":1200.0,"max":3600.0},{"current":2697.838,"min":1200.0,"max":3600.0},{"current":2694.068,"min":1200.0,"max":3600.0},{"current":2693.904,"min":1200.0,"max":3600.0},{"current":2694.689,"min":1200.0,"max":3600.0},{"current":2770.932,"min":1200.0,"max":3600.0},{"current":2695.373,"min":1200.0,"max":3600.0},{"current":2694.433,"min":1200.0,"max":3600.0},{"current":2693.769,"min":1200.0,"max":3600.0},{"current":2770.316,"min":1200.0,"max":3600.0},{"current":2694.5,"min":1200.0,"max":3600.0},{"current":2694.649,"min":1200.0,"max":3600.0},{"current":2743.115,"min":1200.0,"max":3600.0},{"current":2698.0,"min":1200.0,"max":3600.0},{"current":2693.98,"min":1200.0,"max":3600.0},{"current":2693.927,"min":1200.0,"max":3600.0},{"current":2694.715,"min":1200.0,"max":3600.0},{"current":2745.842,"min":1200.0,"max":3600.0},{"current":2760.767,"min":1200.0,"max":3600.0},{"current":2694.358,"min":1200.0,"max":3600.0},{"current":2694.848,"min":1200.0,"max":3600.0},{"current":2695.691,"min":1200.0,"max":3600.0},{"current":2696.061,"min":1200.0,"max":3600.0},{"current":2874.556,"min":1200.0,"max":3600.0},{"current":2694.879,"min":1200.0,"max":3600.0},{"current":2858.496,"min":1200.0,"max":3600.0},{"current":2695.483,"min":1200.0,"max":3600.0},{"current":2694.526,"min":1200.0,"max":3600.0},{"current":2695.593,"min":1200.0,"max":3600.0},{"current":2695.172,"min":1200.0,"max":3600.0},{"current":2821.353,"min":1200.0,"max":3600.0},{"current":2783.247,"min":1200.0,"max":3600.0},{"current":2682.966,"min":1200.0,"max":3600.0},{"current":2694.967,"min":1200.0,"max":3600.0},{"current":2696.117,"min":1200.0,"max":3600.0},{"current":2859.734,"min":1200.0,"max":3600.0},{"current":2858.608,"min":1200.0,"max":3600.0},{"current":2695.915,"min":1200.0,"max":3600.0}],"disk_write_speed":72.60115299741435,"process_ids":[2113736,2113939]} +{"timestamp":1678268096.596194,"rapl_power_draw_absolute":169.02201285638645,"rapl_estimated_attributable_power_draw":8.184210048688996,"cpu_time_seconds":{"2113736":{"user":968.17,"system":190.77,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":15.66,"system":22.63,"children_user":6.79,"children_system":229.77,"iowait":23.93}},"average_relative_cpu_utilization":0.05481054141346957,"absolute_cpu_utilization":1.0039779520127161,"relative_mem_usage":0.01760018199014395,"absolute_mem_usage":3618497536.0,"absolute_mem_percent_usage":0.006689412950042604,"mem_info_per_process":{"2113736":{"rss":3564978176,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3154157568,"pss":3317010432,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":476.21000000000004,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.256,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":11.333333333333334,"mem":6.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.6,"mem":17.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23325,0.23162500000000003,0.22749999999999998],"cpu_freq":[{"current":2695.712,"min":1200.0,"max":3600.0},{"current":2687.447,"min":1200.0,"max":3600.0},{"current":2693.921,"min":1200.0,"max":3600.0},{"current":2783.703,"min":1200.0,"max":3600.0},{"current":2710.346,"min":1200.0,"max":3600.0},{"current":2851.627,"min":1200.0,"max":3600.0},{"current":2721.651,"min":1200.0,"max":3600.0},{"current":2692.578,"min":1200.0,"max":3600.0},{"current":2709.118,"min":1200.0,"max":3600.0},{"current":2712.703,"min":1200.0,"max":3600.0},{"current":2875.993,"min":1200.0,"max":3600.0},{"current":2696.032,"min":1200.0,"max":3600.0},{"current":2785.13,"min":1200.0,"max":3600.0},{"current":2719.806,"min":1200.0,"max":3600.0},{"current":2708.738,"min":1200.0,"max":3600.0},{"current":2710.6,"min":1200.0,"max":3600.0},{"current":2696.915,"min":1200.0,"max":3600.0},{"current":2694.462,"min":1200.0,"max":3600.0},{"current":2826.978,"min":1200.0,"max":3600.0},{"current":2699.313,"min":1200.0,"max":3600.0},{"current":2694.907,"min":1200.0,"max":3600.0},{"current":2696.304,"min":1200.0,"max":3600.0},{"current":2697.246,"min":1200.0,"max":3600.0},{"current":2769.317,"min":1200.0,"max":3600.0},{"current":2695.338,"min":1200.0,"max":3600.0},{"current":2695.326,"min":1200.0,"max":3600.0},{"current":2696.459,"min":1200.0,"max":3600.0},{"current":2690.42,"min":1200.0,"max":3600.0},{"current":2696.848,"min":1200.0,"max":3600.0},{"current":2697.131,"min":1200.0,"max":3600.0},{"current":2688.145,"min":1200.0,"max":3600.0},{"current":2695.044,"min":1200.0,"max":3600.0},{"current":2696.189,"min":1200.0,"max":3600.0},{"current":2695.461,"min":1200.0,"max":3600.0},{"current":2772.255,"min":1200.0,"max":3600.0},{"current":2697.981,"min":1200.0,"max":3600.0},{"current":2697.321,"min":1200.0,"max":3600.0},{"current":2695.541,"min":1200.0,"max":3600.0},{"current":2695.816,"min":1200.0,"max":3600.0},{"current":2758.253,"min":1200.0,"max":3600.0},{"current":2696.815,"min":1200.0,"max":3600.0},{"current":2768.911,"min":1200.0,"max":3600.0},{"current":2797.365,"min":1200.0,"max":3600.0},{"current":2694.7,"min":1200.0,"max":3600.0},{"current":2694.053,"min":1200.0,"max":3600.0},{"current":2695.338,"min":1200.0,"max":3600.0},{"current":2720.2,"min":1200.0,"max":3600.0},{"current":2865.655,"min":1200.0,"max":3600.0},{"current":2707.527,"min":1200.0,"max":3600.0},{"current":2696.747,"min":1200.0,"max":3600.0},{"current":2696.631,"min":1200.0,"max":3600.0},{"current":2865.902,"min":1200.0,"max":3600.0},{"current":2711.404,"min":1200.0,"max":3600.0},{"current":2723.691,"min":1200.0,"max":3600.0},{"current":2708.354,"min":1200.0,"max":3600.0},{"current":2695.668,"min":1200.0,"max":3600.0},{"current":2706.434,"min":1200.0,"max":3600.0},{"current":2710.884,"min":1200.0,"max":3600.0},{"current":2762.492,"min":1200.0,"max":3600.0},{"current":2766.973,"min":1200.0,"max":3600.0},{"current":2696.298,"min":1200.0,"max":3600.0},{"current":2695.372,"min":1200.0,"max":3600.0},{"current":2695.088,"min":1200.0,"max":3600.0},{"current":2627.32,"min":1200.0,"max":3600.0},{"current":2694.742,"min":1200.0,"max":3600.0},{"current":2775.405,"min":1200.0,"max":3600.0},{"current":2695.503,"min":1200.0,"max":3600.0},{"current":2772.477,"min":1200.0,"max":3600.0},{"current":2696.808,"min":1200.0,"max":3600.0},{"current":2693.963,"min":1200.0,"max":3600.0},{"current":2625.164,"min":1200.0,"max":3600.0},{"current":2696.364,"min":1200.0,"max":3600.0},{"current":2781.506,"min":1200.0,"max":3600.0},{"current":2697.016,"min":1200.0,"max":3600.0},{"current":2703.52,"min":1200.0,"max":3600.0},{"current":2696.276,"min":1200.0,"max":3600.0},{"current":2697.093,"min":1200.0,"max":3600.0},{"current":2752.38,"min":1200.0,"max":3600.0},{"current":2767.953,"min":1200.0,"max":3600.0},{"current":2785.914,"min":1200.0,"max":3600.0}],"disk_write_speed":71.53920764121176,"process_ids":[2113736,2113939]} +{"timestamp":1678268112.432211,"rapl_power_draw_absolute":169.42362440818,"rapl_estimated_attributable_power_draw":8.264066124040545,"cpu_time_seconds":{"2113736":{"user":981.32,"system":193.47,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":15.86,"system":22.94,"children_user":6.88,"children_system":232.92,"iowait":24.26}},"average_relative_cpu_utilization":0.05536903015897806,"absolute_cpu_utilization":1.003720026845138,"relative_mem_usage":0.017272658221261613,"absolute_mem_usage":3548775424.0,"absolute_mem_percent_usage":0.006560519674787622,"mem_info_per_process":{"2113736":{"rss":3493695488,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3084435456,"pss":3247288320,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":490.1,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.19399999999999998,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":11.0,"mem":7.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.5,"mem":5.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":19.4,"mem":12.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.230375,0.231,0.22737500000000002],"cpu_freq":[{"current":2699.575,"min":1200.0,"max":3600.0},{"current":2695.875,"min":1200.0,"max":3600.0},{"current":2659.874,"min":1200.0,"max":3600.0},{"current":2732.885,"min":1200.0,"max":3600.0},{"current":2710.048,"min":1200.0,"max":3600.0},{"current":2854.499,"min":1200.0,"max":3600.0},{"current":2709.196,"min":1200.0,"max":3600.0},{"current":2694.108,"min":1200.0,"max":3600.0},{"current":2711.257,"min":1200.0,"max":3600.0},{"current":2696.508,"min":1200.0,"max":3600.0},{"current":2850.523,"min":1200.0,"max":3600.0},{"current":2691.526,"min":1200.0,"max":3600.0},{"current":2711.24,"min":1200.0,"max":3600.0},{"current":2699.791,"min":1200.0,"max":3600.0},{"current":2712.226,"min":1200.0,"max":3600.0},{"current":2712.607,"min":1200.0,"max":3600.0},{"current":2706.721,"min":1200.0,"max":3600.0},{"current":2710.669,"min":1200.0,"max":3600.0},{"current":2837.366,"min":1200.0,"max":3600.0},{"current":2624.576,"min":1200.0,"max":3600.0},{"current":2695.157,"min":1200.0,"max":3600.0},{"current":2696.578,"min":1200.0,"max":3600.0},{"current":2695.158,"min":1200.0,"max":3600.0},{"current":2773.741,"min":1200.0,"max":3600.0},{"current":2696.282,"min":1200.0,"max":3600.0},{"current":2695.55,"min":1200.0,"max":3600.0},{"current":2697.868,"min":1200.0,"max":3600.0},{"current":2694.473,"min":1200.0,"max":3600.0},{"current":2696.495,"min":1200.0,"max":3600.0},{"current":2700.901,"min":1200.0,"max":3600.0},{"current":2761.254,"min":1200.0,"max":3600.0},{"current":2698.491,"min":1200.0,"max":3600.0},{"current":2692.573,"min":1200.0,"max":3600.0},{"current":2695.379,"min":1200.0,"max":3600.0},{"current":2756.018,"min":1200.0,"max":3600.0},{"current":2695.204,"min":1200.0,"max":3600.0},{"current":2695.761,"min":1200.0,"max":3600.0},{"current":2694.451,"min":1200.0,"max":3600.0},{"current":2657.356,"min":1200.0,"max":3600.0},{"current":2696.326,"min":1200.0,"max":3600.0},{"current":2746.799,"min":1200.0,"max":3600.0},{"current":2828.899,"min":1200.0,"max":3600.0},{"current":2809.767,"min":1200.0,"max":3600.0},{"current":2699.977,"min":1200.0,"max":3600.0},{"current":2719.929,"min":1200.0,"max":3600.0},{"current":2769.542,"min":1200.0,"max":3600.0},{"current":2696.315,"min":1200.0,"max":3600.0},{"current":2818.498,"min":1200.0,"max":3600.0},{"current":2705.756,"min":1200.0,"max":3600.0},{"current":2708.471,"min":1200.0,"max":3600.0},{"current":2693.435,"min":1200.0,"max":3600.0},{"current":2836.395,"min":1200.0,"max":3600.0},{"current":2709.988,"min":1200.0,"max":3600.0},{"current":2694.625,"min":1200.0,"max":3600.0},{"current":2708.652,"min":1200.0,"max":3600.0},{"current":2708.186,"min":1200.0,"max":3600.0},{"current":2696.757,"min":1200.0,"max":3600.0},{"current":2706.731,"min":1200.0,"max":3600.0},{"current":2780.623,"min":1200.0,"max":3600.0},{"current":2843.406,"min":1200.0,"max":3600.0},{"current":2694.135,"min":1200.0,"max":3600.0},{"current":2695.911,"min":1200.0,"max":3600.0},{"current":2695.75,"min":1200.0,"max":3600.0},{"current":2695.761,"min":1200.0,"max":3600.0},{"current":2696.066,"min":1200.0,"max":3600.0},{"current":2765.959,"min":1200.0,"max":3600.0},{"current":2696.991,"min":1200.0,"max":3600.0},{"current":2768.804,"min":1200.0,"max":3600.0},{"current":2693.545,"min":1200.0,"max":3600.0},{"current":2694.57,"min":1200.0,"max":3600.0},{"current":2783.368,"min":1200.0,"max":3600.0},{"current":2693.786,"min":1200.0,"max":3600.0},{"current":2771.877,"min":1200.0,"max":3600.0},{"current":2717.453,"min":1200.0,"max":3600.0},{"current":2696.361,"min":1200.0,"max":3600.0},{"current":2693.992,"min":1200.0,"max":3600.0},{"current":2694.977,"min":1200.0,"max":3600.0},{"current":2783.031,"min":1200.0,"max":3600.0},{"current":2781.462,"min":1200.0,"max":3600.0},{"current":2766.243,"min":1200.0,"max":3600.0}],"disk_write_speed":72.21681809826728,"process_ids":[2113736,2113939]} +{"timestamp":1678268128.364199,"rapl_power_draw_absolute":169.64802391152614,"rapl_estimated_attributable_power_draw":8.166168718266432,"cpu_time_seconds":{"2113736":{"user":994.67,"system":196.05,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":16.06,"system":23.24,"children_user":6.96,"children_system":236.09,"iowait":24.61}},"average_relative_cpu_utilization":0.054499310584326874,"absolute_cpu_utilization":1.0037057956986362,"relative_mem_usage":0.01722973477876077,"absolute_mem_usage":3551048704.0,"absolute_mem_percent_usage":0.006564722222535626,"mem_info_per_process":{"2113736":{"rss":3497484288,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3086708736,"pss":3249561600,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":457.24,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.20199999999999999,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":18.25,"mem":11.75,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":7.0,"mem":3.6666666666666665,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":20.2,"mem":12.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.232875,0.23162500000000003,0.22762500000000002],"cpu_freq":[{"current":2724.499,"min":1200.0,"max":3600.0},{"current":2709.522,"min":1200.0,"max":3600.0},{"current":2628.731,"min":1200.0,"max":3600.0},{"current":2710.547,"min":1200.0,"max":3600.0},{"current":2707.67,"min":1200.0,"max":3600.0},{"current":2806.209,"min":1200.0,"max":3600.0},{"current":2695.686,"min":1200.0,"max":3600.0},{"current":2690.573,"min":1200.0,"max":3600.0},{"current":2761.776,"min":1200.0,"max":3600.0},{"current":2694.837,"min":1200.0,"max":3600.0},{"current":2799.879,"min":1200.0,"max":3600.0},{"current":2693.895,"min":1200.0,"max":3600.0},{"current":2712.112,"min":1200.0,"max":3600.0},{"current":2698.099,"min":1200.0,"max":3600.0},{"current":2726.608,"min":1200.0,"max":3600.0},{"current":2715.705,"min":1200.0,"max":3600.0},{"current":2699.613,"min":1200.0,"max":3600.0},{"current":2711.945,"min":1200.0,"max":3600.0},{"current":2831.81,"min":1200.0,"max":3600.0},{"current":2692.174,"min":1200.0,"max":3600.0},{"current":2697.852,"min":1200.0,"max":3600.0},{"current":2696.4,"min":1200.0,"max":3600.0},{"current":2694.957,"min":1200.0,"max":3600.0},{"current":2760.145,"min":1200.0,"max":3600.0},{"current":2697.43,"min":1200.0,"max":3600.0},{"current":2694.055,"min":1200.0,"max":3600.0},{"current":2695.0,"min":1200.0,"max":3600.0},{"current":2695.813,"min":1200.0,"max":3600.0},{"current":2696.958,"min":1200.0,"max":3600.0},{"current":2696.67,"min":1200.0,"max":3600.0},{"current":2763.243,"min":1200.0,"max":3600.0},{"current":2697.863,"min":1200.0,"max":3600.0},{"current":2693.093,"min":1200.0,"max":3600.0},{"current":2695.943,"min":1200.0,"max":3600.0},{"current":2736.061,"min":1200.0,"max":3600.0},{"current":2694.266,"min":1200.0,"max":3600.0},{"current":2697.815,"min":1200.0,"max":3600.0},{"current":2697.079,"min":1200.0,"max":3600.0},{"current":2693.242,"min":1200.0,"max":3600.0},{"current":2655.47,"min":1200.0,"max":3600.0},{"current":2748.142,"min":1200.0,"max":3600.0},{"current":2815.566,"min":1200.0,"max":3600.0},{"current":2838.282,"min":1200.0,"max":3600.0},{"current":2708.11,"min":1200.0,"max":3600.0},{"current":2750.96,"min":1200.0,"max":3600.0},{"current":2790.724,"min":1200.0,"max":3600.0},{"current":2694.717,"min":1200.0,"max":3600.0},{"current":2824.741,"min":1200.0,"max":3600.0},{"current":2733.699,"min":1200.0,"max":3600.0},{"current":2707.88,"min":1200.0,"max":3600.0},{"current":2694.348,"min":1200.0,"max":3600.0},{"current":2812.531,"min":1200.0,"max":3600.0},{"current":2706.025,"min":1200.0,"max":3600.0},{"current":2710.901,"min":1200.0,"max":3600.0},{"current":2773.617,"min":1200.0,"max":3600.0},{"current":2695.797,"min":1200.0,"max":3600.0},{"current":2710.576,"min":1200.0,"max":3600.0},{"current":2707.239,"min":1200.0,"max":3600.0},{"current":2802.366,"min":1200.0,"max":3600.0},{"current":2772.987,"min":1200.0,"max":3600.0},{"current":2694.629,"min":1200.0,"max":3600.0},{"current":2695.143,"min":1200.0,"max":3600.0},{"current":2696.796,"min":1200.0,"max":3600.0},{"current":2694.292,"min":1200.0,"max":3600.0},{"current":2693.994,"min":1200.0,"max":3600.0},{"current":2768.67,"min":1200.0,"max":3600.0},{"current":2695.918,"min":1200.0,"max":3600.0},{"current":2756.422,"min":1200.0,"max":3600.0},{"current":2695.527,"min":1200.0,"max":3600.0},{"current":2693.551,"min":1200.0,"max":3600.0},{"current":2701.668,"min":1200.0,"max":3600.0},{"current":2695.902,"min":1200.0,"max":3600.0},{"current":2765.752,"min":1200.0,"max":3600.0},{"current":2696.186,"min":1200.0,"max":3600.0},{"current":2664.019,"min":1200.0,"max":3600.0},{"current":2694.674,"min":1200.0,"max":3600.0},{"current":2694.514,"min":1200.0,"max":3600.0},{"current":2765.677,"min":1200.0,"max":3600.0},{"current":2774.206,"min":1200.0,"max":3600.0},{"current":2778.422,"min":1200.0,"max":3600.0}],"disk_write_speed":71.98270069067568,"process_ids":[2113736,2113939]} +{"timestamp":1678268143.984212,"rapl_power_draw_absolute":168.75411937969335,"rapl_estimated_attributable_power_draw":8.400151361049609,"cpu_time_seconds":{"2113736":{"user":1007.79,"system":198.56,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":16.27,"system":23.52,"children_user":7.04,"children_system":239.25,"iowait":24.95}},"average_relative_cpu_utilization":0.05662224905760944,"absolute_cpu_utilization":0.9987292718427777,"relative_mem_usage":0.016517984084246155,"absolute_mem_usage":3394200576.0,"absolute_mem_percent_usage":0.006274761572239596,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929860608,"pss":3092713472,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":478.51000000000005,"nvidia_estimated_attributable_power_draw":70.57,"average_gpu_estimated_utilization_absolute":0.242,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.666666666666666,"mem":5.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":19.25,"mem":10.75,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.2,"mem":16.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.57},"cpu_count_adjusted_average_load":[0.23199999999999998,0.23149999999999998,0.22762500000000002],"cpu_freq":[{"current":2731.671,"min":1200.0,"max":3600.0},{"current":2702.4,"min":1200.0,"max":3600.0},{"current":2638.654,"min":1200.0,"max":3600.0},{"current":2699.41,"min":1200.0,"max":3600.0},{"current":2697.266,"min":1200.0,"max":3600.0},{"current":2872.734,"min":1200.0,"max":3600.0},{"current":2709.374,"min":1200.0,"max":3600.0},{"current":2695.723,"min":1200.0,"max":3600.0},{"current":2696.464,"min":1200.0,"max":3600.0},{"current":2713.949,"min":1200.0,"max":3600.0},{"current":2846.514,"min":1200.0,"max":3600.0},{"current":2745.832,"min":1200.0,"max":3600.0},{"current":2708.146,"min":1200.0,"max":3600.0},{"current":2745.327,"min":1200.0,"max":3600.0},{"current":2697.448,"min":1200.0,"max":3600.0},{"current":2696.027,"min":1200.0,"max":3600.0},{"current":2698.54,"min":1200.0,"max":3600.0},{"current":2693.863,"min":1200.0,"max":3600.0},{"current":2688.159,"min":1200.0,"max":3600.0},{"current":2628.735,"min":1200.0,"max":3600.0},{"current":2694.522,"min":1200.0,"max":3600.0},{"current":2696.202,"min":1200.0,"max":3600.0},{"current":2694.825,"min":1200.0,"max":3600.0},{"current":2783.871,"min":1200.0,"max":3600.0},{"current":2695.875,"min":1200.0,"max":3600.0},{"current":2693.46,"min":1200.0,"max":3600.0},{"current":2697.482,"min":1200.0,"max":3600.0},{"current":2625.596,"min":1200.0,"max":3600.0},{"current":2695.079,"min":1200.0,"max":3600.0},{"current":2696.422,"min":1200.0,"max":3600.0},{"current":2759.489,"min":1200.0,"max":3600.0},{"current":2694.572,"min":1200.0,"max":3600.0},{"current":2696.194,"min":1200.0,"max":3600.0},{"current":2697.472,"min":1200.0,"max":3600.0},{"current":2760.135,"min":1200.0,"max":3600.0},{"current":2696.459,"min":1200.0,"max":3600.0},{"current":2696.726,"min":1200.0,"max":3600.0},{"current":2696.387,"min":1200.0,"max":3600.0},{"current":2693.098,"min":1200.0,"max":3600.0},{"current":2693.092,"min":1200.0,"max":3600.0},{"current":2707.289,"min":1200.0,"max":3600.0},{"current":2863.443,"min":1200.0,"max":3600.0},{"current":2845.414,"min":1200.0,"max":3600.0},{"current":2698.373,"min":1200.0,"max":3600.0},{"current":2709.554,"min":1200.0,"max":3600.0},{"current":2694.17,"min":1200.0,"max":3600.0},{"current":2698.102,"min":1200.0,"max":3600.0},{"current":2826.225,"min":1200.0,"max":3600.0},{"current":2707.532,"min":1200.0,"max":3600.0},{"current":2694.113,"min":1200.0,"max":3600.0},{"current":2696.279,"min":1200.0,"max":3600.0},{"current":2858.492,"min":1200.0,"max":3600.0},{"current":2701.162,"min":1200.0,"max":3600.0},{"current":2706.403,"min":1200.0,"max":3600.0},{"current":2740.78,"min":1200.0,"max":3600.0},{"current":2706.123,"min":1200.0,"max":3600.0},{"current":2706.837,"min":1200.0,"max":3600.0},{"current":2704.443,"min":1200.0,"max":3600.0},{"current":2628.745,"min":1200.0,"max":3600.0},{"current":2862.655,"min":1200.0,"max":3600.0},{"current":2694.596,"min":1200.0,"max":3600.0},{"current":2694.262,"min":1200.0,"max":3600.0},{"current":2709.43,"min":1200.0,"max":3600.0},{"current":2692.801,"min":1200.0,"max":3600.0},{"current":2694.061,"min":1200.0,"max":3600.0},{"current":2706.994,"min":1200.0,"max":3600.0},{"current":2694.628,"min":1200.0,"max":3600.0},{"current":2694.041,"min":1200.0,"max":3600.0},{"current":2699.077,"min":1200.0,"max":3600.0},{"current":2694.45,"min":1200.0,"max":3600.0},{"current":2696.98,"min":1200.0,"max":3600.0},{"current":2693.765,"min":1200.0,"max":3600.0},{"current":2758.049,"min":1200.0,"max":3600.0},{"current":2694.48,"min":1200.0,"max":3600.0},{"current":2691.486,"min":1200.0,"max":3600.0},{"current":2693.997,"min":1200.0,"max":3600.0},{"current":2695.538,"min":1200.0,"max":3600.0},{"current":2775.462,"min":1200.0,"max":3600.0},{"current":2774.257,"min":1200.0,"max":3600.0},{"current":2764.38,"min":1200.0,"max":3600.0}],"disk_write_speed":71.47398685781313,"process_ids":[2113736,2113939]} +{"timestamp":1678268159.688193,"rapl_power_draw_absolute":169.81225899955345,"rapl_estimated_attributable_power_draw":8.072637415744753,"cpu_time_seconds":{"2113736":{"user":1020.98,"system":201.08,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":16.49,"system":23.8,"children_user":7.13,"children_system":242.38,"iowait":25.29}},"average_relative_cpu_utilization":0.053985819569094845,"absolute_cpu_utilization":1.0037164978625113,"relative_mem_usage":0.016527075622623663,"absolute_mem_usage":3394200576.0,"absolute_mem_percent_usage":0.006274761572239596,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929860608,"pss":3092713472,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":627.25,"nvidia_estimated_attributable_power_draw":207.62,"average_gpu_estimated_utilization_absolute":0.214,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":9.5,"mem":6.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":7.333333333333333,"mem":4.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":16.0,"mem":9.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":21.4,"mem":14.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":207.62},"cpu_count_adjusted_average_load":[0.234125,0.23199999999999998,0.227875],"cpu_freq":[{"current":2695.785,"min":1200.0,"max":3600.0},{"current":2625.787,"min":1200.0,"max":3600.0},{"current":2699.37,"min":1200.0,"max":3600.0},{"current":2724.395,"min":1200.0,"max":3600.0},{"current":2702.051,"min":1200.0,"max":3600.0},{"current":2801.101,"min":1200.0,"max":3600.0},{"current":2705.165,"min":1200.0,"max":3600.0},{"current":2693.207,"min":1200.0,"max":3600.0},{"current":2696.554,"min":1200.0,"max":3600.0},{"current":2699.984,"min":1200.0,"max":3600.0},{"current":2780.177,"min":1200.0,"max":3600.0},{"current":2699.675,"min":1200.0,"max":3600.0},{"current":2664.009,"min":1200.0,"max":3600.0},{"current":2696.319,"min":1200.0,"max":3600.0},{"current":2713.97,"min":1200.0,"max":3600.0},{"current":2695.639,"min":1200.0,"max":3600.0},{"current":2698.725,"min":1200.0,"max":3600.0},{"current":2694.445,"min":1200.0,"max":3600.0},{"current":2866.196,"min":1200.0,"max":3600.0},{"current":2680.115,"min":1200.0,"max":3600.0},{"current":2695.754,"min":1200.0,"max":3600.0},{"current":2693.81,"min":1200.0,"max":3600.0},{"current":2696.283,"min":1200.0,"max":3600.0},{"current":2695.759,"min":1200.0,"max":3600.0},{"current":2695.186,"min":1200.0,"max":3600.0},{"current":2696.661,"min":1200.0,"max":3600.0},{"current":2691.329,"min":1200.0,"max":3600.0},{"current":2692.319,"min":1200.0,"max":3600.0},{"current":2697.19,"min":1200.0,"max":3600.0},{"current":2693.761,"min":1200.0,"max":3600.0},{"current":2775.503,"min":1200.0,"max":3600.0},{"current":2696.085,"min":1200.0,"max":3600.0},{"current":2695.083,"min":1200.0,"max":3600.0},{"current":2698.456,"min":1200.0,"max":3600.0},{"current":2743.615,"min":1200.0,"max":3600.0},{"current":2696.634,"min":1200.0,"max":3600.0},{"current":2625.714,"min":1200.0,"max":3600.0},{"current":2695.064,"min":1200.0,"max":3600.0},{"current":2638.814,"min":1200.0,"max":3600.0},{"current":2696.698,"min":1200.0,"max":3600.0},{"current":2694.352,"min":1200.0,"max":3600.0},{"current":2752.659,"min":1200.0,"max":3600.0},{"current":2727.426,"min":1200.0,"max":3600.0},{"current":2709.798,"min":1200.0,"max":3600.0},{"current":2705.236,"min":1200.0,"max":3600.0},{"current":2699.123,"min":1200.0,"max":3600.0},{"current":2714.432,"min":1200.0,"max":3600.0},{"current":2836.995,"min":1200.0,"max":3600.0},{"current":2696.301,"min":1200.0,"max":3600.0},{"current":2705.357,"min":1200.0,"max":3600.0},{"current":2694.366,"min":1200.0,"max":3600.0},{"current":2694.214,"min":1200.0,"max":3600.0},{"current":2759.974,"min":1200.0,"max":3600.0},{"current":2696.601,"min":1200.0,"max":3600.0},{"current":2756.647,"min":1200.0,"max":3600.0},{"current":2698.978,"min":1200.0,"max":3600.0},{"current":2694.288,"min":1200.0,"max":3600.0},{"current":2696.442,"min":1200.0,"max":3600.0},{"current":2694.406,"min":1200.0,"max":3600.0},{"current":2822.315,"min":1200.0,"max":3600.0},{"current":2693.408,"min":1200.0,"max":3600.0},{"current":2694.379,"min":1200.0,"max":3600.0},{"current":2693.569,"min":1200.0,"max":3600.0},{"current":2694.23,"min":1200.0,"max":3600.0},{"current":2693.79,"min":1200.0,"max":3600.0},{"current":2695.55,"min":1200.0,"max":3600.0},{"current":2769.698,"min":1200.0,"max":3600.0},{"current":2723.507,"min":1200.0,"max":3600.0},{"current":2696.948,"min":1200.0,"max":3600.0},{"current":2696.762,"min":1200.0,"max":3600.0},{"current":2726.866,"min":1200.0,"max":3600.0},{"current":2695.78,"min":1200.0,"max":3600.0},{"current":2777.427,"min":1200.0,"max":3600.0},{"current":2694.384,"min":1200.0,"max":3600.0},{"current":2695.985,"min":1200.0,"max":3600.0},{"current":2694.466,"min":1200.0,"max":3600.0},{"current":2755.005,"min":1200.0,"max":3600.0},{"current":2773.065,"min":1200.0,"max":3600.0},{"current":2782.662,"min":1200.0,"max":3600.0},{"current":2771.188,"min":1200.0,"max":3600.0}],"disk_write_speed":72.22565752241384,"process_ids":[2113736,2113939]} +{"timestamp":1678268175.172247,"rapl_power_draw_absolute":167.35677706297753,"rapl_estimated_attributable_power_draw":8.51347903960202,"cpu_time_seconds":{"2113736":{"user":1034.13,"system":203.42,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":16.7,"system":24.11,"children_user":7.22,"children_system":245.53,"iowait":25.63}},"average_relative_cpu_utilization":0.05743545054543177,"absolute_cpu_utilization":0.9987290029097942,"relative_mem_usage":0.01915696286650944,"absolute_mem_usage":3957927936.0,"absolute_mem_percent_usage":0.007316908226965777,"mem_info_per_process":{"2113736":{"rss":3894587392,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3493588992,"pss":3656440832,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":684.73,"nvidia_estimated_attributable_power_draw":69.95,"average_gpu_estimated_utilization_absolute":0.172,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":19.75,"mem":13.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":17.2,"mem":10.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.95},"cpu_count_adjusted_average_load":[0.23199999999999998,0.23162500000000003,0.227875],"cpu_freq":[{"current":2695.955,"min":1200.0,"max":3600.0},{"current":2697.444,"min":1200.0,"max":3600.0},{"current":2628.289,"min":1200.0,"max":3600.0},{"current":2751.48,"min":1200.0,"max":3600.0},{"current":2706.899,"min":1200.0,"max":3600.0},{"current":2808.876,"min":1200.0,"max":3600.0},{"current":2710.604,"min":1200.0,"max":3600.0},{"current":2661.427,"min":1200.0,"max":3600.0},{"current":2770.615,"min":1200.0,"max":3600.0},{"current":2708.01,"min":1200.0,"max":3600.0},{"current":2712.131,"min":1200.0,"max":3600.0},{"current":2833.382,"min":1200.0,"max":3600.0},{"current":2694.034,"min":1200.0,"max":3600.0},{"current":2698.687,"min":1200.0,"max":3600.0},{"current":2700.988,"min":1200.0,"max":3600.0},{"current":2700.722,"min":1200.0,"max":3600.0},{"current":2708.575,"min":1200.0,"max":3600.0},{"current":2708.314,"min":1200.0,"max":3600.0},{"current":2840.752,"min":1200.0,"max":3600.0},{"current":2695.556,"min":1200.0,"max":3600.0},{"current":2694.826,"min":1200.0,"max":3600.0},{"current":2694.364,"min":1200.0,"max":3600.0},{"current":2695.429,"min":1200.0,"max":3600.0},{"current":2695.404,"min":1200.0,"max":3600.0},{"current":2697.093,"min":1200.0,"max":3600.0},{"current":2694.707,"min":1200.0,"max":3600.0},{"current":2696.416,"min":1200.0,"max":3600.0},{"current":2692.501,"min":1200.0,"max":3600.0},{"current":2695.378,"min":1200.0,"max":3600.0},{"current":2695.086,"min":1200.0,"max":3600.0},{"current":2783.816,"min":1200.0,"max":3600.0},{"current":2695.981,"min":1200.0,"max":3600.0},{"current":2695.53,"min":1200.0,"max":3600.0},{"current":2697.092,"min":1200.0,"max":3600.0},{"current":2766.348,"min":1200.0,"max":3600.0},{"current":2701.487,"min":1200.0,"max":3600.0},{"current":2692.722,"min":1200.0,"max":3600.0},{"current":2782.998,"min":1200.0,"max":3600.0},{"current":2691.303,"min":1200.0,"max":3600.0},{"current":2696.969,"min":1200.0,"max":3600.0},{"current":2726.306,"min":1200.0,"max":3600.0},{"current":2846.638,"min":1200.0,"max":3600.0},{"current":2833.125,"min":1200.0,"max":3600.0},{"current":2752.049,"min":1200.0,"max":3600.0},{"current":2696.254,"min":1200.0,"max":3600.0},{"current":2698.622,"min":1200.0,"max":3600.0},{"current":2707.777,"min":1200.0,"max":3600.0},{"current":2841.999,"min":1200.0,"max":3600.0},{"current":2734.17,"min":1200.0,"max":3600.0},{"current":2708.845,"min":1200.0,"max":3600.0},{"current":2695.904,"min":1200.0,"max":3600.0},{"current":2695.736,"min":1200.0,"max":3600.0},{"current":2821.976,"min":1200.0,"max":3600.0},{"current":2695.641,"min":1200.0,"max":3600.0},{"current":2710.338,"min":1200.0,"max":3600.0},{"current":2709.046,"min":1200.0,"max":3600.0},{"current":2712.673,"min":1200.0,"max":3600.0},{"current":2694.346,"min":1200.0,"max":3600.0},{"current":2832.241,"min":1200.0,"max":3600.0},{"current":2792.444,"min":1200.0,"max":3600.0},{"current":2697.557,"min":1200.0,"max":3600.0},{"current":2695.35,"min":1200.0,"max":3600.0},{"current":2693.857,"min":1200.0,"max":3600.0},{"current":2697.88,"min":1200.0,"max":3600.0},{"current":2694.926,"min":1200.0,"max":3600.0},{"current":2694.283,"min":1200.0,"max":3600.0},{"current":2686.487,"min":1200.0,"max":3600.0},{"current":2684.131,"min":1200.0,"max":3600.0},{"current":2692.736,"min":1200.0,"max":3600.0},{"current":2693.816,"min":1200.0,"max":3600.0},{"current":2691.528,"min":1200.0,"max":3600.0},{"current":2693.762,"min":1200.0,"max":3600.0},{"current":2689.756,"min":1200.0,"max":3600.0},{"current":2695.572,"min":1200.0,"max":3600.0},{"current":2627.396,"min":1200.0,"max":3600.0},{"current":2694.344,"min":1200.0,"max":3600.0},{"current":2689.442,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2712.726,"min":1200.0,"max":3600.0},{"current":2767.246,"min":1200.0,"max":3600.0}],"disk_write_speed":71.31825775470327,"process_ids":[2113736,2113939]} +{"timestamp":1678268190.712247,"rapl_power_draw_absolute":168.32419333918665,"rapl_estimated_attributable_power_draw":8.305767929986887,"cpu_time_seconds":{"2113736":{"user":1047.36,"system":205.74,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":16.92,"system":24.44,"children_user":7.34,"children_system":248.64,"iowait":25.97}},"average_relative_cpu_utilization":0.055768166148023095,"absolute_cpu_utilization":1.0036883957229927,"relative_mem_usage":0.0185395948639045,"absolute_mem_usage":3817383936.0,"absolute_mem_percent_usage":0.007057088552004753,"mem_info_per_process":{"2113736":{"rss":3752214528,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3353047040,"pss":3515896832,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":478.6300000000001,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.29333333333333333,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.0,"mem":5.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":29.333333333333332,"mem":19.666666666666668,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.22949999999999998,0.23112499999999997,0.22774999999999998],"cpu_freq":[{"current":2695.225,"min":1200.0,"max":3600.0},{"current":2714.192,"min":1200.0,"max":3600.0},{"current":2695.07,"min":1200.0,"max":3600.0},{"current":2696.861,"min":1200.0,"max":3600.0},{"current":2699.833,"min":1200.0,"max":3600.0},{"current":2835.703,"min":1200.0,"max":3600.0},{"current":2729.788,"min":1200.0,"max":3600.0},{"current":2694.239,"min":1200.0,"max":3600.0},{"current":2697.463,"min":1200.0,"max":3600.0},{"current":2700.551,"min":1200.0,"max":3600.0},{"current":2709.377,"min":1200.0,"max":3600.0},{"current":2841.343,"min":1200.0,"max":3600.0},{"current":2860.053,"min":1200.0,"max":3600.0},{"current":2694.971,"min":1200.0,"max":3600.0},{"current":2697.283,"min":1200.0,"max":3600.0},{"current":2708.153,"min":1200.0,"max":3600.0},{"current":2695.745,"min":1200.0,"max":3600.0},{"current":2698.356,"min":1200.0,"max":3600.0},{"current":2782.299,"min":1200.0,"max":3600.0},{"current":2698.17,"min":1200.0,"max":3600.0},{"current":2696.413,"min":1200.0,"max":3600.0},{"current":2696.255,"min":1200.0,"max":3600.0},{"current":2695.075,"min":1200.0,"max":3600.0},{"current":2697.824,"min":1200.0,"max":3600.0},{"current":2695.694,"min":1200.0,"max":3600.0},{"current":2694.484,"min":1200.0,"max":3600.0},{"current":2695.713,"min":1200.0,"max":3600.0},{"current":2692.555,"min":1200.0,"max":3600.0},{"current":2706.623,"min":1200.0,"max":3600.0},{"current":2693.767,"min":1200.0,"max":3600.0},{"current":2783.17,"min":1200.0,"max":3600.0},{"current":2694.252,"min":1200.0,"max":3600.0},{"current":2693.777,"min":1200.0,"max":3600.0},{"current":2695.534,"min":1200.0,"max":3600.0},{"current":2784.577,"min":1200.0,"max":3600.0},{"current":2696.692,"min":1200.0,"max":3600.0},{"current":2694.615,"min":1200.0,"max":3600.0},{"current":2699.976,"min":1200.0,"max":3600.0},{"current":2723.401,"min":1200.0,"max":3600.0},{"current":2794.661,"min":1200.0,"max":3600.0},{"current":2705.691,"min":1200.0,"max":3600.0},{"current":2801.829,"min":1200.0,"max":3600.0},{"current":2850.67,"min":1200.0,"max":3600.0},{"current":2701.155,"min":1200.0,"max":3600.0},{"current":2694.459,"min":1200.0,"max":3600.0},{"current":2693.718,"min":1200.0,"max":3600.0},{"current":2701.644,"min":1200.0,"max":3600.0},{"current":2848.809,"min":1200.0,"max":3600.0},{"current":2697.662,"min":1200.0,"max":3600.0},{"current":2694.059,"min":1200.0,"max":3600.0},{"current":2696.499,"min":1200.0,"max":3600.0},{"current":2622.699,"min":1200.0,"max":3600.0},{"current":2780.345,"min":1200.0,"max":3600.0},{"current":2695.908,"min":1200.0,"max":3600.0},{"current":2694.056,"min":1200.0,"max":3600.0},{"current":2718.269,"min":1200.0,"max":3600.0},{"current":2696.932,"min":1200.0,"max":3600.0},{"current":2693.928,"min":1200.0,"max":3600.0},{"current":2717.069,"min":1200.0,"max":3600.0},{"current":2806.653,"min":1200.0,"max":3600.0},{"current":2696.317,"min":1200.0,"max":3600.0},{"current":2696.688,"min":1200.0,"max":3600.0},{"current":2696.263,"min":1200.0,"max":3600.0},{"current":2693.835,"min":1200.0,"max":3600.0},{"current":2698.486,"min":1200.0,"max":3600.0},{"current":2693.963,"min":1200.0,"max":3600.0},{"current":2707.752,"min":1200.0,"max":3600.0},{"current":2744.025,"min":1200.0,"max":3600.0},{"current":2694.59,"min":1200.0,"max":3600.0},{"current":2696.975,"min":1200.0,"max":3600.0},{"current":2768.99,"min":1200.0,"max":3600.0},{"current":2694.269,"min":1200.0,"max":3600.0},{"current":2775.435,"min":1200.0,"max":3600.0},{"current":2695.539,"min":1200.0,"max":3600.0},{"current":2662.721,"min":1200.0,"max":3600.0},{"current":2694.774,"min":1200.0,"max":3600.0},{"current":2785.495,"min":1200.0,"max":3600.0},{"current":2783.626,"min":1200.0,"max":3600.0},{"current":2777.194,"min":1200.0,"max":3600.0},{"current":2772.636,"min":1200.0,"max":3600.0}],"disk_write_speed":71.34090139176112,"process_ids":[2113736,2113939]} +{"timestamp":1678268206.376271,"rapl_power_draw_absolute":167.8369713958736,"rapl_estimated_attributable_power_draw":8.438883768808518,"cpu_time_seconds":{"2113736":{"user":1060.51,"system":208.25,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":17.15,"system":24.78,"children_user":7.43,"children_system":251.79,"iowait":26.31}},"average_relative_cpu_utilization":0.05699320089864214,"absolute_cpu_utilization":0.9987033081651354,"relative_mem_usage":0.018056315382347837,"absolute_mem_usage":3716486144.0,"absolute_mem_percent_usage":0.006870561688376814,"mem_info_per_process":{"2113736":{"rss":3660226560,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3252146176,"pss":3414999040,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":490.1600000000001,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.25666666666666665,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":6.75,"mem":4.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":12.666666666666666,"mem":7.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.666666666666668,"mem":17.333333333333332,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.22749999999999998,0.230625,0.22762500000000002],"cpu_freq":[{"current":2695.106,"min":1200.0,"max":3600.0},{"current":2656.875,"min":1200.0,"max":3600.0},{"current":2693.037,"min":1200.0,"max":3600.0},{"current":2720.791,"min":1200.0,"max":3600.0},{"current":2703.391,"min":1200.0,"max":3600.0},{"current":2863.715,"min":1200.0,"max":3600.0},{"current":2696.973,"min":1200.0,"max":3600.0},{"current":2692.609,"min":1200.0,"max":3600.0},{"current":2712.019,"min":1200.0,"max":3600.0},{"current":2695.635,"min":1200.0,"max":3600.0},{"current":2695.176,"min":1200.0,"max":3600.0},{"current":2841.671,"min":1200.0,"max":3600.0},{"current":2695.648,"min":1200.0,"max":3600.0},{"current":2709.805,"min":1200.0,"max":3600.0},{"current":2709.43,"min":1200.0,"max":3600.0},{"current":2710.424,"min":1200.0,"max":3600.0},{"current":2709.978,"min":1200.0,"max":3600.0},{"current":2712.675,"min":1200.0,"max":3600.0},{"current":2789.922,"min":1200.0,"max":3600.0},{"current":2694.216,"min":1200.0,"max":3600.0},{"current":2695.272,"min":1200.0,"max":3600.0},{"current":2697.953,"min":1200.0,"max":3600.0},{"current":2695.254,"min":1200.0,"max":3600.0},{"current":2697.503,"min":1200.0,"max":3600.0},{"current":2693.965,"min":1200.0,"max":3600.0},{"current":2696.017,"min":1200.0,"max":3600.0},{"current":2733.272,"min":1200.0,"max":3600.0},{"current":2694.843,"min":1200.0,"max":3600.0},{"current":2698.862,"min":1200.0,"max":3600.0},{"current":2695.932,"min":1200.0,"max":3600.0},{"current":2680.093,"min":1200.0,"max":3600.0},{"current":2697.599,"min":1200.0,"max":3600.0},{"current":2685.377,"min":1200.0,"max":3600.0},{"current":2694.741,"min":1200.0,"max":3600.0},{"current":2682.038,"min":1200.0,"max":3600.0},{"current":2698.108,"min":1200.0,"max":3600.0},{"current":2693.712,"min":1200.0,"max":3600.0},{"current":2691.996,"min":1200.0,"max":3600.0},{"current":2682.402,"min":1200.0,"max":3600.0},{"current":2687.676,"min":1200.0,"max":3600.0},{"current":2734.867,"min":1200.0,"max":3600.0},{"current":2846.229,"min":1200.0,"max":3600.0},{"current":2824.591,"min":1200.0,"max":3600.0},{"current":2711.603,"min":1200.0,"max":3600.0},{"current":2694.946,"min":1200.0,"max":3600.0},{"current":2626.637,"min":1200.0,"max":3600.0},{"current":2696.008,"min":1200.0,"max":3600.0},{"current":2820.462,"min":1200.0,"max":3600.0},{"current":2696.012,"min":1200.0,"max":3600.0},{"current":2752.103,"min":1200.0,"max":3600.0},{"current":2708.427,"min":1200.0,"max":3600.0},{"current":2723.353,"min":1200.0,"max":3600.0},{"current":2813.613,"min":1200.0,"max":3600.0},{"current":2695.915,"min":1200.0,"max":3600.0},{"current":2709.589,"min":1200.0,"max":3600.0},{"current":2708.754,"min":1200.0,"max":3600.0},{"current":2705.898,"min":1200.0,"max":3600.0},{"current":2725.425,"min":1200.0,"max":3600.0},{"current":2635.639,"min":1200.0,"max":3600.0},{"current":2861.387,"min":1200.0,"max":3600.0},{"current":2696.477,"min":1200.0,"max":3600.0},{"current":2696.42,"min":1200.0,"max":3600.0},{"current":2695.158,"min":1200.0,"max":3600.0},{"current":2695.929,"min":1200.0,"max":3600.0},{"current":2695.391,"min":1200.0,"max":3600.0},{"current":2695.348,"min":1200.0,"max":3600.0},{"current":2773.524,"min":1200.0,"max":3600.0},{"current":2780.323,"min":1200.0,"max":3600.0},{"current":2694.046,"min":1200.0,"max":3600.0},{"current":2693.932,"min":1200.0,"max":3600.0},{"current":2628.304,"min":1200.0,"max":3600.0},{"current":2695.176,"min":1200.0,"max":3600.0},{"current":2759.324,"min":1200.0,"max":3600.0},{"current":2695.821,"min":1200.0,"max":3600.0},{"current":2694.108,"min":1200.0,"max":3600.0},{"current":2694.304,"min":1200.0,"max":3600.0},{"current":2769.568,"min":1200.0,"max":3600.0},{"current":2734.031,"min":1200.0,"max":3600.0},{"current":2768.725,"min":1200.0,"max":3600.0},{"current":2694.064,"min":1200.0,"max":3600.0}],"disk_write_speed":71.69215970129483,"process_ids":[2113736,2113939]} +{"timestamp":1678268221.79625,"rapl_power_draw_absolute":167.97377267623204,"rapl_estimated_attributable_power_draw":8.383937227027026,"cpu_time_seconds":{"2113736":{"user":1073.47,"system":210.73,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":17.36,"system":25.07,"children_user":7.49,"children_system":254.94,"iowait":26.65}},"average_relative_cpu_utilization":0.05669664915437987,"absolute_cpu_utilization":1.004047384848096,"relative_mem_usage":0.017022775162982576,"absolute_mem_usage":3511129088.0,"absolute_mem_percent_usage":0.006490923969649064,"mem_info_per_process":{"2113736":{"rss":3456389120,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3046789120,"pss":3209641984,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":467.71000000000004,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.22,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":25.0,"mem":16.333333333333332,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.3333333333333335,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.0,"mem":13.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.226875,0.230375,0.22749999999999998],"cpu_freq":[{"current":2695.422,"min":1200.0,"max":3600.0},{"current":2695.508,"min":1200.0,"max":3600.0},{"current":2636.54,"min":1200.0,"max":3600.0},{"current":2711.737,"min":1200.0,"max":3600.0},{"current":2709.399,"min":1200.0,"max":3600.0},{"current":2848.446,"min":1200.0,"max":3600.0},{"current":2715.512,"min":1200.0,"max":3600.0},{"current":2680.38,"min":1200.0,"max":3600.0},{"current":2708.686,"min":1200.0,"max":3600.0},{"current":2840.286,"min":1200.0,"max":3600.0},{"current":2712.848,"min":1200.0,"max":3600.0},{"current":2728.31,"min":1200.0,"max":3600.0},{"current":2839.003,"min":1200.0,"max":3600.0},{"current":2712.407,"min":1200.0,"max":3600.0},{"current":2712.985,"min":1200.0,"max":3600.0},{"current":2702.613,"min":1200.0,"max":3600.0},{"current":2697.107,"min":1200.0,"max":3600.0},{"current":2709.976,"min":1200.0,"max":3600.0},{"current":2831.911,"min":1200.0,"max":3600.0},{"current":2692.743,"min":1200.0,"max":3600.0},{"current":2697.113,"min":1200.0,"max":3600.0},{"current":2697.053,"min":1200.0,"max":3600.0},{"current":2695.126,"min":1200.0,"max":3600.0},{"current":2695.651,"min":1200.0,"max":3600.0},{"current":2696.674,"min":1200.0,"max":3600.0},{"current":2694.275,"min":1200.0,"max":3600.0},{"current":2693.647,"min":1200.0,"max":3600.0},{"current":2693.274,"min":1200.0,"max":3600.0},{"current":2696.991,"min":1200.0,"max":3600.0},{"current":2694.717,"min":1200.0,"max":3600.0},{"current":2777.386,"min":1200.0,"max":3600.0},{"current":2693.76,"min":1200.0,"max":3600.0},{"current":2695.508,"min":1200.0,"max":3600.0},{"current":2694.912,"min":1200.0,"max":3600.0},{"current":2757.835,"min":1200.0,"max":3600.0},{"current":2698.824,"min":1200.0,"max":3600.0},{"current":2656.414,"min":1200.0,"max":3600.0},{"current":2784.034,"min":1200.0,"max":3600.0},{"current":2691.508,"min":1200.0,"max":3600.0},{"current":2695.118,"min":1200.0,"max":3600.0},{"current":2693.773,"min":1200.0,"max":3600.0},{"current":2678.089,"min":1200.0,"max":3600.0},{"current":2691.819,"min":1200.0,"max":3600.0},{"current":2693.763,"min":1200.0,"max":3600.0},{"current":2693.745,"min":1200.0,"max":3600.0},{"current":2693.869,"min":1200.0,"max":3600.0},{"current":2694.173,"min":1200.0,"max":3600.0},{"current":2702.753,"min":1200.0,"max":3600.0},{"current":2694.447,"min":1200.0,"max":3600.0},{"current":2871.835,"min":1200.0,"max":3600.0},{"current":2709.269,"min":1200.0,"max":3600.0},{"current":2714.805,"min":1200.0,"max":3600.0},{"current":2683.179,"min":1200.0,"max":3600.0},{"current":2694.042,"min":1200.0,"max":3600.0},{"current":2693.793,"min":1200.0,"max":3600.0},{"current":2694.556,"min":1200.0,"max":3600.0},{"current":2696.245,"min":1200.0,"max":3600.0},{"current":2694.757,"min":1200.0,"max":3600.0},{"current":2740.903,"min":1200.0,"max":3600.0},{"current":2736.56,"min":1200.0,"max":3600.0},{"current":2696.962,"min":1200.0,"max":3600.0},{"current":2693.801,"min":1200.0,"max":3600.0},{"current":2693.831,"min":1200.0,"max":3600.0},{"current":2696.254,"min":1200.0,"max":3600.0},{"current":2696.413,"min":1200.0,"max":3600.0},{"current":2691.864,"min":1200.0,"max":3600.0},{"current":2777.595,"min":1200.0,"max":3600.0},{"current":2770.431,"min":1200.0,"max":3600.0},{"current":2694.045,"min":1200.0,"max":3600.0},{"current":2694.123,"min":1200.0,"max":3600.0},{"current":2695.678,"min":1200.0,"max":3600.0},{"current":2694.977,"min":1200.0,"max":3600.0},{"current":2773.748,"min":1200.0,"max":3600.0},{"current":2694.774,"min":1200.0,"max":3600.0},{"current":2694.017,"min":1200.0,"max":3600.0},{"current":2695.435,"min":1200.0,"max":3600.0},{"current":2730.293,"min":1200.0,"max":3600.0},{"current":2701.051,"min":1200.0,"max":3600.0},{"current":2772.812,"min":1200.0,"max":3600.0},{"current":2783.169,"min":1200.0,"max":3600.0}],"disk_write_speed":71.97021191409043,"process_ids":[2113736,2113939]} +{"timestamp":1678268237.436413,"rapl_power_draw_absolute":167.8989987432529,"rapl_estimated_attributable_power_draw":8.419323229145542,"cpu_time_seconds":{"2113736":{"user":1086.54,"system":213.3,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":17.58,"system":25.36,"children_user":7.58,"children_system":258.08,"iowait":26.98}},"average_relative_cpu_utilization":0.05710741500372965,"absolute_cpu_utilization":0.9987329983683978,"relative_mem_usage":0.016491484179394764,"absolute_mem_usage":3394200576.0,"absolute_mem_percent_usage":0.006274761572239596,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929860608,"pss":3092713472,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":480.36,"nvidia_estimated_attributable_power_draw":71.97,"average_gpu_estimated_utilization_absolute":0.28600000000000003,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":4.0,"mem":2.3333333333333335,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":13.8,"mem":7.4,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":28.6,"mem":20.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":71.97},"cpu_count_adjusted_average_load":[0.22825,0.2305,0.22762500000000002],"cpu_freq":[{"current":2705.141,"min":1200.0,"max":3600.0},{"current":2626.766,"min":1200.0,"max":3600.0},{"current":2759.35,"min":1200.0,"max":3600.0},{"current":2710.6,"min":1200.0,"max":3600.0},{"current":2706.716,"min":1200.0,"max":3600.0},{"current":2825.331,"min":1200.0,"max":3600.0},{"current":2708.329,"min":1200.0,"max":3600.0},{"current":2706.267,"min":1200.0,"max":3600.0},{"current":2696.817,"min":1200.0,"max":3600.0},{"current":2828.908,"min":1200.0,"max":3600.0},{"current":2697.339,"min":1200.0,"max":3600.0},{"current":2709.194,"min":1200.0,"max":3600.0},{"current":2776.346,"min":1200.0,"max":3600.0},{"current":2696.935,"min":1200.0,"max":3600.0},{"current":2699.238,"min":1200.0,"max":3600.0},{"current":2710.845,"min":1200.0,"max":3600.0},{"current":2694.411,"min":1200.0,"max":3600.0},{"current":2722.393,"min":1200.0,"max":3600.0},{"current":2852.555,"min":1200.0,"max":3600.0},{"current":2696.498,"min":1200.0,"max":3600.0},{"current":2698.264,"min":1200.0,"max":3600.0},{"current":2694.848,"min":1200.0,"max":3600.0},{"current":2695.143,"min":1200.0,"max":3600.0},{"current":2696.421,"min":1200.0,"max":3600.0},{"current":2723.384,"min":1200.0,"max":3600.0},{"current":2693.775,"min":1200.0,"max":3600.0},{"current":2709.767,"min":1200.0,"max":3600.0},{"current":2692.111,"min":1200.0,"max":3600.0},{"current":2698.05,"min":1200.0,"max":3600.0},{"current":2697.008,"min":1200.0,"max":3600.0},{"current":2780.176,"min":1200.0,"max":3600.0},{"current":2696.196,"min":1200.0,"max":3600.0},{"current":2694.183,"min":1200.0,"max":3600.0},{"current":2696.689,"min":1200.0,"max":3600.0},{"current":2780.827,"min":1200.0,"max":3600.0},{"current":2694.891,"min":1200.0,"max":3600.0},{"current":2693.302,"min":1200.0,"max":3600.0},{"current":2695.559,"min":1200.0,"max":3600.0},{"current":2690.715,"min":1200.0,"max":3600.0},{"current":2709.29,"min":1200.0,"max":3600.0},{"current":2722.113,"min":1200.0,"max":3600.0},{"current":2844.056,"min":1200.0,"max":3600.0},{"current":2830.71,"min":1200.0,"max":3600.0},{"current":2706.714,"min":1200.0,"max":3600.0},{"current":2696.99,"min":1200.0,"max":3600.0},{"current":2706.137,"min":1200.0,"max":3600.0},{"current":2703.216,"min":1200.0,"max":3600.0},{"current":2696.792,"min":1200.0,"max":3600.0},{"current":2830.974,"min":1200.0,"max":3600.0},{"current":2620.913,"min":1200.0,"max":3600.0},{"current":2708.779,"min":1200.0,"max":3600.0},{"current":2696.556,"min":1200.0,"max":3600.0},{"current":2694.62,"min":1200.0,"max":3600.0},{"current":2709.249,"min":1200.0,"max":3600.0},{"current":2706.786,"min":1200.0,"max":3600.0},{"current":2709.28,"min":1200.0,"max":3600.0},{"current":2708.819,"min":1200.0,"max":3600.0},{"current":2694.518,"min":1200.0,"max":3600.0},{"current":2623.882,"min":1200.0,"max":3600.0},{"current":2840.369,"min":1200.0,"max":3600.0},{"current":2696.269,"min":1200.0,"max":3600.0},{"current":2694.906,"min":1200.0,"max":3600.0},{"current":2695.664,"min":1200.0,"max":3600.0},{"current":2695.226,"min":1200.0,"max":3600.0},{"current":2696.498,"min":1200.0,"max":3600.0},{"current":2694.003,"min":1200.0,"max":3600.0},{"current":2775.325,"min":1200.0,"max":3600.0},{"current":2784.047,"min":1200.0,"max":3600.0},{"current":2695.659,"min":1200.0,"max":3600.0},{"current":2693.763,"min":1200.0,"max":3600.0},{"current":2718.785,"min":1200.0,"max":3600.0},{"current":2694.188,"min":1200.0,"max":3600.0},{"current":2781.293,"min":1200.0,"max":3600.0},{"current":2694.295,"min":1200.0,"max":3600.0},{"current":2625.069,"min":1200.0,"max":3600.0},{"current":2693.743,"min":1200.0,"max":3600.0},{"current":2687.802,"min":1200.0,"max":3600.0},{"current":2703.757,"min":1200.0,"max":3600.0},{"current":2728.346,"min":1200.0,"max":3600.0},{"current":2714.543,"min":1200.0,"max":3600.0}],"disk_write_speed":71.58604622717051,"process_ids":[2113736,2113939]} +{"timestamp":1678268253.056195,"rapl_power_draw_absolute":168.1109581175001,"rapl_estimated_attributable_power_draw":8.146670331073377,"cpu_time_seconds":{"2113736":{"user":1099.62,"system":215.82,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":17.79,"system":25.65,"children_user":7.68,"children_system":261.2,"iowait":27.32}},"average_relative_cpu_utilization":0.05514151406894345,"absolute_cpu_utilization":1.0036999819934007,"relative_mem_usage":0.01651104656669952,"absolute_mem_usage":3394200576.0,"absolute_mem_percent_usage":0.006274761572239596,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929860608,"pss":3092713472,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":681.84,"nvidia_estimated_attributable_power_draw":262.81,"average_gpu_estimated_utilization_absolute":0.27399999999999997,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":7.25,"mem":4.25,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.666666666666667,"mem":3.3333333333333335,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":16.0,"mem":8.666666666666666,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":27.4,"mem":19.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":262.81},"cpu_count_adjusted_average_load":[0.231875,0.23112499999999997,0.227875],"cpu_freq":[{"current":2694.26,"min":1200.0,"max":3600.0},{"current":2684.39,"min":1200.0,"max":3600.0},{"current":2696.802,"min":1200.0,"max":3600.0},{"current":2702.845,"min":1200.0,"max":3600.0},{"current":2699.229,"min":1200.0,"max":3600.0},{"current":2724.528,"min":1200.0,"max":3600.0},{"current":2695.729,"min":1200.0,"max":3600.0},{"current":2719.203,"min":1200.0,"max":3600.0},{"current":2696.702,"min":1200.0,"max":3600.0},{"current":2856.416,"min":1200.0,"max":3600.0},{"current":2693.252,"min":1200.0,"max":3600.0},{"current":2695.649,"min":1200.0,"max":3600.0},{"current":2838.446,"min":1200.0,"max":3600.0},{"current":2695.929,"min":1200.0,"max":3600.0},{"current":2696.357,"min":1200.0,"max":3600.0},{"current":2697.306,"min":1200.0,"max":3600.0},{"current":2717.406,"min":1200.0,"max":3600.0},{"current":2696.225,"min":1200.0,"max":3600.0},{"current":2831.389,"min":1200.0,"max":3600.0},{"current":2608.295,"min":1200.0,"max":3600.0},{"current":2695.257,"min":1200.0,"max":3600.0},{"current":2696.149,"min":1200.0,"max":3600.0},{"current":2693.971,"min":1200.0,"max":3600.0},{"current":2693.693,"min":1200.0,"max":3600.0},{"current":2697.504,"min":1200.0,"max":3600.0},{"current":2698.666,"min":1200.0,"max":3600.0},{"current":2697.527,"min":1200.0,"max":3600.0},{"current":2696.174,"min":1200.0,"max":3600.0},{"current":2670.779,"min":1200.0,"max":3600.0},{"current":2696.132,"min":1200.0,"max":3600.0},{"current":2772.232,"min":1200.0,"max":3600.0},{"current":2698.439,"min":1200.0,"max":3600.0},{"current":2733.884,"min":1200.0,"max":3600.0},{"current":2695.115,"min":1200.0,"max":3600.0},{"current":2759.878,"min":1200.0,"max":3600.0},{"current":2696.897,"min":1200.0,"max":3600.0},{"current":2698.588,"min":1200.0,"max":3600.0},{"current":2751.058,"min":1200.0,"max":3600.0},{"current":2732.237,"min":1200.0,"max":3600.0},{"current":2735.644,"min":1200.0,"max":3600.0},{"current":2724.17,"min":1200.0,"max":3600.0},{"current":2819.631,"min":1200.0,"max":3600.0},{"current":2853.31,"min":1200.0,"max":3600.0},{"current":2694.223,"min":1200.0,"max":3600.0},{"current":2742.968,"min":1200.0,"max":3600.0},{"current":2685.605,"min":1200.0,"max":3600.0},{"current":2694.876,"min":1200.0,"max":3600.0},{"current":2697.595,"min":1200.0,"max":3600.0},{"current":2694.515,"min":1200.0,"max":3600.0},{"current":2596.923,"min":1200.0,"max":3600.0},{"current":2840.343,"min":1200.0,"max":3600.0},{"current":2695.304,"min":1200.0,"max":3600.0},{"current":2674.0,"min":1200.0,"max":3600.0},{"current":2694.84,"min":1200.0,"max":3600.0},{"current":2695.409,"min":1200.0,"max":3600.0},{"current":2783.011,"min":1200.0,"max":3600.0},{"current":2781.12,"min":1200.0,"max":3600.0},{"current":2694.729,"min":1200.0,"max":3600.0},{"current":2772.399,"min":1200.0,"max":3600.0},{"current":2797.607,"min":1200.0,"max":3600.0},{"current":2694.287,"min":1200.0,"max":3600.0},{"current":2695.285,"min":1200.0,"max":3600.0},{"current":2694.198,"min":1200.0,"max":3600.0},{"current":2693.961,"min":1200.0,"max":3600.0},{"current":2692.769,"min":1200.0,"max":3600.0},{"current":2693.91,"min":1200.0,"max":3600.0},{"current":2694.85,"min":1200.0,"max":3600.0},{"current":2678.393,"min":1200.0,"max":3600.0},{"current":2693.757,"min":1200.0,"max":3600.0},{"current":2694.223,"min":1200.0,"max":3600.0},{"current":2728.082,"min":1200.0,"max":3600.0},{"current":2694.358,"min":1200.0,"max":3600.0},{"current":2802.646,"min":1200.0,"max":3600.0},{"current":2746.464,"min":1200.0,"max":3600.0},{"current":2768.718,"min":1200.0,"max":3600.0},{"current":2780.633,"min":1200.0,"max":3600.0},{"current":2748.326,"min":1200.0,"max":3600.0},{"current":2788.551,"min":1200.0,"max":3600.0},{"current":2781.508,"min":1200.0,"max":3600.0},{"current":2764.987,"min":1200.0,"max":3600.0}],"disk_write_speed":70.70408833156176,"process_ids":[2113736,2113939]} +{"timestamp":1678268268.872229,"rapl_power_draw_absolute":167.30534444833037,"rapl_estimated_attributable_power_draw":8.46376623501312,"cpu_time_seconds":{"2113736":{"user":1112.93,"system":218.33,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":17.97,"system":25.97,"children_user":7.82,"children_system":264.32,"iowait":27.66}},"average_relative_cpu_utilization":0.05765070750076122,"absolute_cpu_utilization":0.9987405499746407,"relative_mem_usage":0.016460093380077336,"absolute_mem_usage":3394200576.0,"absolute_mem_percent_usage":0.006274761572239596,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929860608,"pss":3092713472,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":606.2800000000001,"nvidia_estimated_attributable_power_draw":209.74,"average_gpu_estimated_utilization_absolute":0.28,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":21.4,"mem":14.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":28.0,"mem":19.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":209.74},"cpu_count_adjusted_average_load":[0.23025,0.230875,0.227875],"cpu_freq":[{"current":2695.345,"min":1200.0,"max":3600.0},{"current":2654.345,"min":1200.0,"max":3600.0},{"current":2692.384,"min":1200.0,"max":3600.0},{"current":2698.434,"min":1200.0,"max":3600.0},{"current":2709.568,"min":1200.0,"max":3600.0},{"current":2699.817,"min":1200.0,"max":3600.0},{"current":2696.038,"min":1200.0,"max":3600.0},{"current":2696.097,"min":1200.0,"max":3600.0},{"current":2699.03,"min":1200.0,"max":3600.0},{"current":2695.382,"min":1200.0,"max":3600.0},{"current":2693.184,"min":1200.0,"max":3600.0},{"current":2750.397,"min":1200.0,"max":3600.0},{"current":2745.219,"min":1200.0,"max":3600.0},{"current":2701.792,"min":1200.0,"max":3600.0},{"current":2699.86,"min":1200.0,"max":3600.0},{"current":2695.686,"min":1200.0,"max":3600.0},{"current":2695.074,"min":1200.0,"max":3600.0},{"current":2697.55,"min":1200.0,"max":3600.0},{"current":2845.111,"min":1200.0,"max":3600.0},{"current":2630.971,"min":1200.0,"max":3600.0},{"current":2697.381,"min":1200.0,"max":3600.0},{"current":2695.671,"min":1200.0,"max":3600.0},{"current":2695.734,"min":1200.0,"max":3600.0},{"current":2695.46,"min":1200.0,"max":3600.0},{"current":2695.213,"min":1200.0,"max":3600.0},{"current":2698.763,"min":1200.0,"max":3600.0},{"current":2696.953,"min":1200.0,"max":3600.0},{"current":2693.734,"min":1200.0,"max":3600.0},{"current":2695.848,"min":1200.0,"max":3600.0},{"current":2694.826,"min":1200.0,"max":3600.0},{"current":2697.685,"min":1200.0,"max":3600.0},{"current":2698.868,"min":1200.0,"max":3600.0},{"current":2694.648,"min":1200.0,"max":3600.0},{"current":2694.982,"min":1200.0,"max":3600.0},{"current":2769.138,"min":1200.0,"max":3600.0},{"current":2694.81,"min":1200.0,"max":3600.0},{"current":2658.704,"min":1200.0,"max":3600.0},{"current":2696.427,"min":1200.0,"max":3600.0},{"current":2696.052,"min":1200.0,"max":3600.0},{"current":2693.196,"min":1200.0,"max":3600.0},{"current":2737.564,"min":1200.0,"max":3600.0},{"current":2870.02,"min":1200.0,"max":3600.0},{"current":2801.925,"min":1200.0,"max":3600.0},{"current":2700.632,"min":1200.0,"max":3600.0},{"current":2735.667,"min":1200.0,"max":3600.0},{"current":2711.48,"min":1200.0,"max":3600.0},{"current":2695.596,"min":1200.0,"max":3600.0},{"current":2699.338,"min":1200.0,"max":3600.0},{"current":2696.02,"min":1200.0,"max":3600.0},{"current":2709.744,"min":1200.0,"max":3600.0},{"current":2857.632,"min":1200.0,"max":3600.0},{"current":2694.094,"min":1200.0,"max":3600.0},{"current":2699.694,"min":1200.0,"max":3600.0},{"current":2695.027,"min":1200.0,"max":3600.0},{"current":2628.312,"min":1200.0,"max":3600.0},{"current":2697.127,"min":1200.0,"max":3600.0},{"current":2765.192,"min":1200.0,"max":3600.0},{"current":2695.709,"min":1200.0,"max":3600.0},{"current":2693.072,"min":1200.0,"max":3600.0},{"current":2870.68,"min":1200.0,"max":3600.0},{"current":2692.879,"min":1200.0,"max":3600.0},{"current":2695.293,"min":1200.0,"max":3600.0},{"current":2694.455,"min":1200.0,"max":3600.0},{"current":2698.018,"min":1200.0,"max":3600.0},{"current":2694.009,"min":1200.0,"max":3600.0},{"current":2694.836,"min":1200.0,"max":3600.0},{"current":2693.889,"min":1200.0,"max":3600.0},{"current":2677.598,"min":1200.0,"max":3600.0},{"current":2682.17,"min":1200.0,"max":3600.0},{"current":2696.005,"min":1200.0,"max":3600.0},{"current":2695.142,"min":1200.0,"max":3600.0},{"current":2694.398,"min":1200.0,"max":3600.0},{"current":2687.077,"min":1200.0,"max":3600.0},{"current":2693.779,"min":1200.0,"max":3600.0},{"current":2693.804,"min":1200.0,"max":3600.0},{"current":2697.214,"min":1200.0,"max":3600.0},{"current":2686.374,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2711.739,"min":1200.0,"max":3600.0},{"current":2764.536,"min":1200.0,"max":3600.0}],"disk_write_speed":69.8408518834072,"process_ids":[2113736,2113939]} +{"timestamp":1678268284.500199,"rapl_power_draw_absolute":166.7115828262731,"rapl_estimated_attributable_power_draw":8.558389052986104,"cpu_time_seconds":{"2113736":{"user":1126.15,"system":220.75,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":18.2,"system":26.29,"children_user":7.91,"children_system":267.47,"iowait":28.0}},"average_relative_cpu_utilization":0.057972503168133196,"absolute_cpu_utilization":1.0037193061091036,"relative_mem_usage":0.019255806651119502,"absolute_mem_usage":3971195904.0,"absolute_mem_percent_usage":0.007341436340105814,"mem_info_per_process":{"2113736":{"rss":3912323072,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3506855936,"pss":3669708800,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":474.2800000000001,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.204,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":20.4,"mem":13.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.230625,0.231,0.22799999999999998],"cpu_freq":[{"current":2697.245,"min":1200.0,"max":3600.0},{"current":2731.281,"min":1200.0,"max":3600.0},{"current":2692.352,"min":1200.0,"max":3600.0},{"current":2711.446,"min":1200.0,"max":3600.0},{"current":2713.403,"min":1200.0,"max":3600.0},{"current":2711.214,"min":1200.0,"max":3600.0},{"current":2701.393,"min":1200.0,"max":3600.0},{"current":2778.206,"min":1200.0,"max":3600.0},{"current":2718.781,"min":1200.0,"max":3600.0},{"current":2712.093,"min":1200.0,"max":3600.0},{"current":2596.024,"min":1200.0,"max":3600.0},{"current":2842.302,"min":1200.0,"max":3600.0},{"current":2831.593,"min":1200.0,"max":3600.0},{"current":2703.911,"min":1200.0,"max":3600.0},{"current":2782.625,"min":1200.0,"max":3600.0},{"current":2697.371,"min":1200.0,"max":3600.0},{"current":2701.732,"min":1200.0,"max":3600.0},{"current":2695.48,"min":1200.0,"max":3600.0},{"current":2771.264,"min":1200.0,"max":3600.0},{"current":2645.668,"min":1200.0,"max":3600.0},{"current":2697.378,"min":1200.0,"max":3600.0},{"current":2695.454,"min":1200.0,"max":3600.0},{"current":2696.928,"min":1200.0,"max":3600.0},{"current":2694.748,"min":1200.0,"max":3600.0},{"current":2695.599,"min":1200.0,"max":3600.0},{"current":2696.157,"min":1200.0,"max":3600.0},{"current":2698.796,"min":1200.0,"max":3600.0},{"current":2693.638,"min":1200.0,"max":3600.0},{"current":2703.389,"min":1200.0,"max":3600.0},{"current":2694.999,"min":1200.0,"max":3600.0},{"current":2697.511,"min":1200.0,"max":3600.0},{"current":2695.722,"min":1200.0,"max":3600.0},{"current":2697.226,"min":1200.0,"max":3600.0},{"current":2695.12,"min":1200.0,"max":3600.0},{"current":2774.521,"min":1200.0,"max":3600.0},{"current":2699.548,"min":1200.0,"max":3600.0},{"current":2694.742,"min":1200.0,"max":3600.0},{"current":2698.243,"min":1200.0,"max":3600.0},{"current":2695.438,"min":1200.0,"max":3600.0},{"current":2695.945,"min":1200.0,"max":3600.0},{"current":2764.248,"min":1200.0,"max":3600.0},{"current":2735.858,"min":1200.0,"max":3600.0},{"current":2745.873,"min":1200.0,"max":3600.0},{"current":2697.661,"min":1200.0,"max":3600.0},{"current":2694.084,"min":1200.0,"max":3600.0},{"current":2694.136,"min":1200.0,"max":3600.0},{"current":2695.609,"min":1200.0,"max":3600.0},{"current":2693.431,"min":1200.0,"max":3600.0},{"current":2694.284,"min":1200.0,"max":3600.0},{"current":2696.777,"min":1200.0,"max":3600.0},{"current":2829.416,"min":1200.0,"max":3600.0},{"current":2696.03,"min":1200.0,"max":3600.0},{"current":2696.263,"min":1200.0,"max":3600.0},{"current":2696.411,"min":1200.0,"max":3600.0},{"current":2693.832,"min":1200.0,"max":3600.0},{"current":2708.902,"min":1200.0,"max":3600.0},{"current":2694.755,"min":1200.0,"max":3600.0},{"current":2707.381,"min":1200.0,"max":3600.0},{"current":2696.414,"min":1200.0,"max":3600.0},{"current":2836.482,"min":1200.0,"max":3600.0},{"current":2693.921,"min":1200.0,"max":3600.0},{"current":2695.684,"min":1200.0,"max":3600.0},{"current":2695.034,"min":1200.0,"max":3600.0},{"current":2694.938,"min":1200.0,"max":3600.0},{"current":2697.304,"min":1200.0,"max":3600.0},{"current":2695.691,"min":1200.0,"max":3600.0},{"current":2695.23,"min":1200.0,"max":3600.0},{"current":2774.301,"min":1200.0,"max":3600.0},{"current":2779.067,"min":1200.0,"max":3600.0},{"current":2695.241,"min":1200.0,"max":3600.0},{"current":2695.933,"min":1200.0,"max":3600.0},{"current":2695.428,"min":1200.0,"max":3600.0},{"current":2769.953,"min":1200.0,"max":3600.0},{"current":2695.352,"min":1200.0,"max":3600.0},{"current":2779.634,"min":1200.0,"max":3600.0},{"current":2775.06,"min":1200.0,"max":3600.0},{"current":2727.823,"min":1200.0,"max":3600.0},{"current":2708.673,"min":1200.0,"max":3600.0},{"current":2772.592,"min":1200.0,"max":3600.0},{"current":2777.022,"min":1200.0,"max":3600.0}],"disk_write_speed":69.61223121402632,"process_ids":[2113736,2113939]} +{"timestamp":1678268300.192163,"rapl_power_draw_absolute":166.54877253585454,"rapl_estimated_attributable_power_draw":8.501694560573355,"cpu_time_seconds":{"2113736":{"user":1139.27,"system":223.32,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":18.4,"system":26.6,"children_user":7.97,"children_system":270.65,"iowait":28.33}},"average_relative_cpu_utilization":0.05781704573082153,"absolute_cpu_utilization":0.9987015613550582,"relative_mem_usage":0.018836961074633996,"absolute_mem_usage":3883908096.0,"absolute_mem_percent_usage":0.007180069864819638,"mem_info_per_process":{"2113736":{"rss":3827564544,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3419570176,"pss":3582420992,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":486.29,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.198,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":11.0,"mem":7.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":12.333333333333334,"mem":7.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":19.8,"mem":12.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23125,0.23112499999999997,0.22799999999999998],"cpu_freq":[{"current":2711.101,"min":1200.0,"max":3600.0},{"current":2758.503,"min":1200.0,"max":3600.0},{"current":2694.414,"min":1200.0,"max":3600.0},{"current":2692.455,"min":1200.0,"max":3600.0},{"current":2741.884,"min":1200.0,"max":3600.0},{"current":2700.335,"min":1200.0,"max":3600.0},{"current":2704.345,"min":1200.0,"max":3600.0},{"current":2696.508,"min":1200.0,"max":3600.0},{"current":2711.244,"min":1200.0,"max":3600.0},{"current":2716.862,"min":1200.0,"max":3600.0},{"current":2653.491,"min":1200.0,"max":3600.0},{"current":2696.594,"min":1200.0,"max":3600.0},{"current":2816.34,"min":1200.0,"max":3600.0},{"current":2842.967,"min":1200.0,"max":3600.0},{"current":2820.697,"min":1200.0,"max":3600.0},{"current":2697.553,"min":1200.0,"max":3600.0},{"current":2697.118,"min":1200.0,"max":3600.0},{"current":2696.645,"min":1200.0,"max":3600.0},{"current":2714.231,"min":1200.0,"max":3600.0},{"current":2682.109,"min":1200.0,"max":3600.0},{"current":2694.491,"min":1200.0,"max":3600.0},{"current":2696.223,"min":1200.0,"max":3600.0},{"current":2694.348,"min":1200.0,"max":3600.0},{"current":2696.649,"min":1200.0,"max":3600.0},{"current":2692.917,"min":1200.0,"max":3600.0},{"current":2695.275,"min":1200.0,"max":3600.0},{"current":2694.636,"min":1200.0,"max":3600.0},{"current":2694.32,"min":1200.0,"max":3600.0},{"current":2751.683,"min":1200.0,"max":3600.0},{"current":2694.861,"min":1200.0,"max":3600.0},{"current":2695.973,"min":1200.0,"max":3600.0},{"current":2694.985,"min":1200.0,"max":3600.0},{"current":2693.395,"min":1200.0,"max":3600.0},{"current":2694.702,"min":1200.0,"max":3600.0},{"current":2695.023,"min":1200.0,"max":3600.0},{"current":2695.778,"min":1200.0,"max":3600.0},{"current":2692.623,"min":1200.0,"max":3600.0},{"current":2698.61,"min":1200.0,"max":3600.0},{"current":2694.405,"min":1200.0,"max":3600.0},{"current":2664.282,"min":1200.0,"max":3600.0},{"current":2694.48,"min":1200.0,"max":3600.0},{"current":2696.204,"min":1200.0,"max":3600.0},{"current":2710.352,"min":1200.0,"max":3600.0},{"current":2679.157,"min":1200.0,"max":3600.0},{"current":2693.892,"min":1200.0,"max":3600.0},{"current":2694.17,"min":1200.0,"max":3600.0},{"current":2694.832,"min":1200.0,"max":3600.0},{"current":2698.026,"min":1200.0,"max":3600.0},{"current":2739.854,"min":1200.0,"max":3600.0},{"current":2719.13,"min":1200.0,"max":3600.0},{"current":2865.199,"min":1200.0,"max":3600.0},{"current":2705.981,"min":1200.0,"max":3600.0},{"current":2678.958,"min":1200.0,"max":3600.0},{"current":2681.357,"min":1200.0,"max":3600.0},{"current":2692.725,"min":1200.0,"max":3600.0},{"current":2694.306,"min":1200.0,"max":3600.0},{"current":2704.8,"min":1200.0,"max":3600.0},{"current":2707.568,"min":1200.0,"max":3600.0},{"current":2702.016,"min":1200.0,"max":3600.0},{"current":2836.734,"min":1200.0,"max":3600.0},{"current":2695.176,"min":1200.0,"max":3600.0},{"current":2695.982,"min":1200.0,"max":3600.0},{"current":2695.598,"min":1200.0,"max":3600.0},{"current":2696.179,"min":1200.0,"max":3600.0},{"current":2694.067,"min":1200.0,"max":3600.0},{"current":2696.734,"min":1200.0,"max":3600.0},{"current":2697.269,"min":1200.0,"max":3600.0},{"current":2694.313,"min":1200.0,"max":3600.0},{"current":2688.202,"min":1200.0,"max":3600.0},{"current":2697.1,"min":1200.0,"max":3600.0},{"current":2693.781,"min":1200.0,"max":3600.0},{"current":2694.653,"min":1200.0,"max":3600.0},{"current":2699.304,"min":1200.0,"max":3600.0},{"current":2695.137,"min":1200.0,"max":3600.0},{"current":2689.844,"min":1200.0,"max":3600.0},{"current":2690.472,"min":1200.0,"max":3600.0},{"current":2683.122,"min":1200.0,"max":3600.0},{"current":2695.919,"min":1200.0,"max":3600.0},{"current":2684.102,"min":1200.0,"max":3600.0},{"current":2685.592,"min":1200.0,"max":3600.0}],"disk_write_speed":69.3219698686855,"process_ids":[2113736,2113939]} +{"timestamp":1678268315.752211,"rapl_power_draw_absolute":167.20912697383258,"rapl_estimated_attributable_power_draw":8.286889734478653,"cpu_time_seconds":{"2113736":{"user":1152.34,"system":225.82,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":18.61,"system":26.89,"children_user":8.04,"children_system":273.83,"iowait":28.66}},"average_relative_cpu_utilization":0.05622025528467188,"absolute_cpu_utilization":1.0036961758866294,"relative_mem_usage":0.01804800821446075,"absolute_mem_usage":3726442496.0,"absolute_mem_percent_usage":0.0068889677116893535,"mem_info_per_process":{"2113736":{"rss":3669680128,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3262103552,"pss":3424955392,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":465.63000000000005,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.188,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":28.25,"mem":18.5,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":10.0,"mem":5.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":18.8,"mem":12.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.228875,0.2305,0.227875],"cpu_freq":[{"current":2694.319,"min":1200.0,"max":3600.0},{"current":2693.174,"min":1200.0,"max":3600.0},{"current":2693.849,"min":1200.0,"max":3600.0},{"current":2697.009,"min":1200.0,"max":3600.0},{"current":2708.711,"min":1200.0,"max":3600.0},{"current":2698.579,"min":1200.0,"max":3600.0},{"current":2757.131,"min":1200.0,"max":3600.0},{"current":2776.119,"min":1200.0,"max":3600.0},{"current":2706.831,"min":1200.0,"max":3600.0},{"current":2695.751,"min":1200.0,"max":3600.0},{"current":2697.33,"min":1200.0,"max":3600.0},{"current":2695.22,"min":1200.0,"max":3600.0},{"current":2833.028,"min":1200.0,"max":3600.0},{"current":2696.742,"min":1200.0,"max":3600.0},{"current":2811.92,"min":1200.0,"max":3600.0},{"current":2719.498,"min":1200.0,"max":3600.0},{"current":2709.206,"min":1200.0,"max":3600.0},{"current":2830.952,"min":1200.0,"max":3600.0},{"current":2709.586,"min":1200.0,"max":3600.0},{"current":2694.716,"min":1200.0,"max":3600.0},{"current":2697.183,"min":1200.0,"max":3600.0},{"current":2699.0,"min":1200.0,"max":3600.0},{"current":2696.652,"min":1200.0,"max":3600.0},{"current":2696.567,"min":1200.0,"max":3600.0},{"current":2694.512,"min":1200.0,"max":3600.0},{"current":2695.816,"min":1200.0,"max":3600.0},{"current":2697.932,"min":1200.0,"max":3600.0},{"current":2651.711,"min":1200.0,"max":3600.0},{"current":2636.945,"min":1200.0,"max":3600.0},{"current":2698.189,"min":1200.0,"max":3600.0},{"current":2696.695,"min":1200.0,"max":3600.0},{"current":2696.187,"min":1200.0,"max":3600.0},{"current":2694.949,"min":1200.0,"max":3600.0},{"current":2694.777,"min":1200.0,"max":3600.0},{"current":2633.102,"min":1200.0,"max":3600.0},{"current":2695.134,"min":1200.0,"max":3600.0},{"current":2696.146,"min":1200.0,"max":3600.0},{"current":2693.989,"min":1200.0,"max":3600.0},{"current":2694.385,"min":1200.0,"max":3600.0},{"current":2660.866,"min":1200.0,"max":3600.0},{"current":2705.474,"min":1200.0,"max":3600.0},{"current":2836.307,"min":1200.0,"max":3600.0},{"current":2816.141,"min":1200.0,"max":3600.0},{"current":2815.029,"min":1200.0,"max":3600.0},{"current":2695.43,"min":1200.0,"max":3600.0},{"current":2707.849,"min":1200.0,"max":3600.0},{"current":2705.778,"min":1200.0,"max":3600.0},{"current":2720.691,"min":1200.0,"max":3600.0},{"current":2697.407,"min":1200.0,"max":3600.0},{"current":2706.981,"min":1200.0,"max":3600.0},{"current":2708.419,"min":1200.0,"max":3600.0},{"current":2819.518,"min":1200.0,"max":3600.0},{"current":2694.331,"min":1200.0,"max":3600.0},{"current":2706.698,"min":1200.0,"max":3600.0},{"current":2697.915,"min":1200.0,"max":3600.0},{"current":2713.776,"min":1200.0,"max":3600.0},{"current":2695.51,"min":1200.0,"max":3600.0},{"current":2695.777,"min":1200.0,"max":3600.0},{"current":2694.914,"min":1200.0,"max":3600.0},{"current":2762.181,"min":1200.0,"max":3600.0},{"current":2695.024,"min":1200.0,"max":3600.0},{"current":2694.469,"min":1200.0,"max":3600.0},{"current":2694.932,"min":1200.0,"max":3600.0},{"current":2694.038,"min":1200.0,"max":3600.0},{"current":2694.238,"min":1200.0,"max":3600.0},{"current":2695.929,"min":1200.0,"max":3600.0},{"current":2697.826,"min":1200.0,"max":3600.0},{"current":2772.817,"min":1200.0,"max":3600.0},{"current":2781.774,"min":1200.0,"max":3600.0},{"current":2696.648,"min":1200.0,"max":3600.0},{"current":2696.932,"min":1200.0,"max":3600.0},{"current":2694.193,"min":1200.0,"max":3600.0},{"current":2771.129,"min":1200.0,"max":3600.0},{"current":2696.766,"min":1200.0,"max":3600.0},{"current":2770.947,"min":1200.0,"max":3600.0},{"current":2746.759,"min":1200.0,"max":3600.0},{"current":2762.828,"min":1200.0,"max":3600.0},{"current":2704.475,"min":1200.0,"max":3600.0},{"current":2737.046,"min":1200.0,"max":3600.0},{"current":2772.738,"min":1200.0,"max":3600.0}],"disk_write_speed":71.56836856574083,"process_ids":[2113736,2113939]} +{"timestamp":1678268331.172235,"rapl_power_draw_absolute":166.1876731730493,"rapl_estimated_attributable_power_draw":8.423068418988098,"cpu_time_seconds":{"2113736":{"user":1165.25,"system":228.34,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":18.78,"system":27.23,"children_user":8.11,"children_system":276.99,"iowait":28.99}},"average_relative_cpu_utilization":0.057672375956238746,"absolute_cpu_utilization":1.0040446541724095,"relative_mem_usage":0.017039506733729958,"absolute_mem_usage":3512110080.0,"absolute_mem_percent_usage":0.006492737501515094,"mem_info_per_process":{"2113736":{"rss":3457200128,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3047772160,"pss":3210622976,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":501.07,"nvidia_estimated_attributable_power_draw":94.58,"average_gpu_estimated_utilization_absolute":0.18600000000000003,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":18.0,"mem":10.25,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":18.6,"mem":11.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":94.58},"cpu_count_adjusted_average_load":[0.22625,0.229875,0.22774999999999998],"cpu_freq":[{"current":2694.583,"min":1200.0,"max":3600.0},{"current":2659.387,"min":1200.0,"max":3600.0},{"current":2746.922,"min":1200.0,"max":3600.0},{"current":2723.242,"min":1200.0,"max":3600.0},{"current":2715.139,"min":1200.0,"max":3600.0},{"current":2709.286,"min":1200.0,"max":3600.0},{"current":2712.728,"min":1200.0,"max":3600.0},{"current":2697.012,"min":1200.0,"max":3600.0},{"current":2709.469,"min":1200.0,"max":3600.0},{"current":2704.32,"min":1200.0,"max":3600.0},{"current":2712.996,"min":1200.0,"max":3600.0},{"current":2692.644,"min":1200.0,"max":3600.0},{"current":2708.83,"min":1200.0,"max":3600.0},{"current":2808.807,"min":1200.0,"max":3600.0},{"current":2836.832,"min":1200.0,"max":3600.0},{"current":2712.128,"min":1200.0,"max":3600.0},{"current":2710.908,"min":1200.0,"max":3600.0},{"current":2841.848,"min":1200.0,"max":3600.0},{"current":2708.776,"min":1200.0,"max":3600.0},{"current":2691.962,"min":1200.0,"max":3600.0},{"current":2726.785,"min":1200.0,"max":3600.0},{"current":2697.244,"min":1200.0,"max":3600.0},{"current":2695.624,"min":1200.0,"max":3600.0},{"current":2693.795,"min":1200.0,"max":3600.0},{"current":2696.871,"min":1200.0,"max":3600.0},{"current":2696.584,"min":1200.0,"max":3600.0},{"current":2694.373,"min":1200.0,"max":3600.0},{"current":2694.18,"min":1200.0,"max":3600.0},{"current":2694.624,"min":1200.0,"max":3600.0},{"current":2697.652,"min":1200.0,"max":3600.0},{"current":2698.103,"min":1200.0,"max":3600.0},{"current":2695.094,"min":1200.0,"max":3600.0},{"current":2693.13,"min":1200.0,"max":3600.0},{"current":2695.096,"min":1200.0,"max":3600.0},{"current":2694.735,"min":1200.0,"max":3600.0},{"current":2690.544,"min":1200.0,"max":3600.0},{"current":2628.2,"min":1200.0,"max":3600.0},{"current":2696.729,"min":1200.0,"max":3600.0},{"current":2655.482,"min":1200.0,"max":3600.0},{"current":2688.675,"min":1200.0,"max":3600.0},{"current":2731.226,"min":1200.0,"max":3600.0},{"current":2817.806,"min":1200.0,"max":3600.0},{"current":2859.996,"min":1200.0,"max":3600.0},{"current":2850.062,"min":1200.0,"max":3600.0},{"current":2699.545,"min":1200.0,"max":3600.0},{"current":2694.514,"min":1200.0,"max":3600.0},{"current":2749.005,"min":1200.0,"max":3600.0},{"current":2695.124,"min":1200.0,"max":3600.0},{"current":2695.527,"min":1200.0,"max":3600.0},{"current":2708.069,"min":1200.0,"max":3600.0},{"current":2707.249,"min":1200.0,"max":3600.0},{"current":2821.994,"min":1200.0,"max":3600.0},{"current":2709.315,"min":1200.0,"max":3600.0},{"current":2697.664,"min":1200.0,"max":3600.0},{"current":2789.07,"min":1200.0,"max":3600.0},{"current":2697.06,"min":1200.0,"max":3600.0},{"current":2695.896,"min":1200.0,"max":3600.0},{"current":2694.655,"min":1200.0,"max":3600.0},{"current":2696.168,"min":1200.0,"max":3600.0},{"current":2815.956,"min":1200.0,"max":3600.0},{"current":2695.283,"min":1200.0,"max":3600.0},{"current":2694.259,"min":1200.0,"max":3600.0},{"current":2695.01,"min":1200.0,"max":3600.0},{"current":2694.761,"min":1200.0,"max":3600.0},{"current":2695.8,"min":1200.0,"max":3600.0},{"current":2694.213,"min":1200.0,"max":3600.0},{"current":2696.83,"min":1200.0,"max":3600.0},{"current":2706.029,"min":1200.0,"max":3600.0},{"current":2769.818,"min":1200.0,"max":3600.0},{"current":2695.437,"min":1200.0,"max":3600.0},{"current":2696.373,"min":1200.0,"max":3600.0},{"current":2695.967,"min":1200.0,"max":3600.0},{"current":2779.422,"min":1200.0,"max":3600.0},{"current":2697.337,"min":1200.0,"max":3600.0},{"current":2807.14,"min":1200.0,"max":3600.0},{"current":2756.923,"min":1200.0,"max":3600.0},{"current":2710.14,"min":1200.0,"max":3600.0},{"current":2780.122,"min":1200.0,"max":3600.0},{"current":2773.893,"min":1200.0,"max":3600.0},{"current":2762.513,"min":1200.0,"max":3600.0}],"disk_write_speed":69.9192502860104,"process_ids":[2113736,2113939]} +{"timestamp":1678268346.416245,"rapl_power_draw_absolute":166.7000373187198,"rapl_estimated_attributable_power_draw":8.23051267793831,"cpu_time_seconds":{"2113736":{"user":1178.03,"system":230.8,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":18.97,"system":27.54,"children_user":8.19,"children_system":280.12,"iowait":29.33}},"average_relative_cpu_utilization":0.05630719095722573,"absolute_cpu_utilization":0.9937366080285681,"relative_mem_usage":0.016496793579578287,"absolute_mem_usage":3394200576.0,"absolute_mem_percent_usage":0.006274761572239596,"mem_info_per_process":{"2113736":{"rss":3483435008,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2929860608,"pss":3092713472,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165609472,"pss":301487104,"swap":0}},"nvidia_draw_absolute":872.77,"nvidia_estimated_attributable_power_draw":71.35,"average_gpu_estimated_utilization_absolute":0.2,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":11.25,"mem":7.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.5,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":20.0,"mem":13.25,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":71.35},"cpu_count_adjusted_average_load":[0.22875,0.23025,0.227875],"cpu_freq":[{"current":2696.123,"min":1200.0,"max":3600.0},{"current":2736.531,"min":1200.0,"max":3600.0},{"current":2697.858,"min":1200.0,"max":3600.0},{"current":2645.851,"min":1200.0,"max":3600.0},{"current":2697.921,"min":1200.0,"max":3600.0},{"current":2762.485,"min":1200.0,"max":3600.0},{"current":2699.628,"min":1200.0,"max":3600.0},{"current":2699.588,"min":1200.0,"max":3600.0},{"current":2695.016,"min":1200.0,"max":3600.0},{"current":2694.951,"min":1200.0,"max":3600.0},{"current":2695.177,"min":1200.0,"max":3600.0},{"current":2695.781,"min":1200.0,"max":3600.0},{"current":2696.392,"min":1200.0,"max":3600.0},{"current":2744.687,"min":1200.0,"max":3600.0},{"current":2757.816,"min":1200.0,"max":3600.0},{"current":2694.292,"min":1200.0,"max":3600.0},{"current":2697.936,"min":1200.0,"max":3600.0},{"current":2762.796,"min":1200.0,"max":3600.0},{"current":2698.358,"min":1200.0,"max":3600.0},{"current":2697.688,"min":1200.0,"max":3600.0},{"current":2695.7,"min":1200.0,"max":3600.0},{"current":2695.979,"min":1200.0,"max":3600.0},{"current":2697.232,"min":1200.0,"max":3600.0},{"current":2698.746,"min":1200.0,"max":3600.0},{"current":2701.828,"min":1200.0,"max":3600.0},{"current":2697.337,"min":1200.0,"max":3600.0},{"current":2696.171,"min":1200.0,"max":3600.0},{"current":2691.624,"min":1200.0,"max":3600.0},{"current":2787.635,"min":1200.0,"max":3600.0},{"current":2694.596,"min":1200.0,"max":3600.0},{"current":2695.032,"min":1200.0,"max":3600.0},{"current":2698.771,"min":1200.0,"max":3600.0},{"current":2645.208,"min":1200.0,"max":3600.0},{"current":2698.718,"min":1200.0,"max":3600.0},{"current":2781.78,"min":1200.0,"max":3600.0},{"current":2696.233,"min":1200.0,"max":3600.0},{"current":2693.62,"min":1200.0,"max":3600.0},{"current":2692.415,"min":1200.0,"max":3600.0},{"current":2694.169,"min":1200.0,"max":3600.0},{"current":2625.16,"min":1200.0,"max":3600.0},{"current":2694.151,"min":1200.0,"max":3600.0},{"current":2753.766,"min":1200.0,"max":3600.0},{"current":2755.126,"min":1200.0,"max":3600.0},{"current":2748.235,"min":1200.0,"max":3600.0},{"current":2696.928,"min":1200.0,"max":3600.0},{"current":2692.449,"min":1200.0,"max":3600.0},{"current":2694.074,"min":1200.0,"max":3600.0},{"current":2694.869,"min":1200.0,"max":3600.0},{"current":2697.066,"min":1200.0,"max":3600.0},{"current":2699.254,"min":1200.0,"max":3600.0},{"current":2694.367,"min":1200.0,"max":3600.0},{"current":2759.053,"min":1200.0,"max":3600.0},{"current":2696.412,"min":1200.0,"max":3600.0},{"current":2649.345,"min":1200.0,"max":3600.0},{"current":2693.775,"min":1200.0,"max":3600.0},{"current":2694.006,"min":1200.0,"max":3600.0},{"current":2695.273,"min":1200.0,"max":3600.0},{"current":2695.975,"min":1200.0,"max":3600.0},{"current":2695.741,"min":1200.0,"max":3600.0},{"current":2762.438,"min":1200.0,"max":3600.0},{"current":2693.61,"min":1200.0,"max":3600.0},{"current":2694.276,"min":1200.0,"max":3600.0},{"current":2694.114,"min":1200.0,"max":3600.0},{"current":2695.137,"min":1200.0,"max":3600.0},{"current":2695.431,"min":1200.0,"max":3600.0},{"current":2695.523,"min":1200.0,"max":3600.0},{"current":2696.735,"min":1200.0,"max":3600.0},{"current":2744.792,"min":1200.0,"max":3600.0},{"current":2775.596,"min":1200.0,"max":3600.0},{"current":2695.047,"min":1200.0,"max":3600.0},{"current":2711.843,"min":1200.0,"max":3600.0},{"current":2694.794,"min":1200.0,"max":3600.0},{"current":2781.491,"min":1200.0,"max":3600.0},{"current":2693.592,"min":1200.0,"max":3600.0},{"current":2770.792,"min":1200.0,"max":3600.0},{"current":2770.312,"min":1200.0,"max":3600.0},{"current":2767.283,"min":1200.0,"max":3600.0},{"current":2782.801,"min":1200.0,"max":3600.0},{"current":2774.558,"min":1200.0,"max":3600.0},{"current":2759.115,"min":1200.0,"max":3600.0}],"disk_write_speed":71.00672282185462,"process_ids":[2113736,2113939]} +{"timestamp":1678268362.128241,"rapl_power_draw_absolute":166.7734630528011,"rapl_estimated_attributable_power_draw":8.519537177186763,"cpu_time_seconds":{"2113736":{"user":1191.24,"system":233.32,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":19.17,"system":27.83,"children_user":8.27,"children_system":283.29,"iowait":29.67}},"average_relative_cpu_utilization":0.057772509388209936,"absolute_cpu_utilization":1.003714316534205,"relative_mem_usage":0.01922172291781468,"absolute_mem_usage":3972858880.0,"absolute_mem_percent_usage":0.007344510636296244,"mem_info_per_process":{"2113736":{"rss":3916013568,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3508518912,"pss":3671369728,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165613568,"pss":301489152,"swap":0}},"nvidia_draw_absolute":466.64000000000004,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.135,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":23.75,"mem":15.25,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.5,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":13.5,"mem":8.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.227875,0.22999999999999998,0.227875],"cpu_freq":[{"current":2695.205,"min":1200.0,"max":3600.0},{"current":2694.197,"min":1200.0,"max":3600.0},{"current":2693.764,"min":1200.0,"max":3600.0},{"current":2628.225,"min":1200.0,"max":3600.0},{"current":2710.137,"min":1200.0,"max":3600.0},{"current":2704.602,"min":1200.0,"max":3600.0},{"current":2708.954,"min":1200.0,"max":3600.0},{"current":2708.595,"min":1200.0,"max":3600.0},{"current":2737.495,"min":1200.0,"max":3600.0},{"current":2716.249,"min":1200.0,"max":3600.0},{"current":2709.913,"min":1200.0,"max":3600.0},{"current":2693.592,"min":1200.0,"max":3600.0},{"current":2860.047,"min":1200.0,"max":3600.0},{"current":2713.938,"min":1200.0,"max":3600.0},{"current":2702.121,"min":1200.0,"max":3600.0},{"current":2701.568,"min":1200.0,"max":3600.0},{"current":2698.817,"min":1200.0,"max":3600.0},{"current":2692.733,"min":1200.0,"max":3600.0},{"current":2695.183,"min":1200.0,"max":3600.0},{"current":2692.033,"min":1200.0,"max":3600.0},{"current":2773.249,"min":1200.0,"max":3600.0},{"current":2701.727,"min":1200.0,"max":3600.0},{"current":2696.878,"min":1200.0,"max":3600.0},{"current":2694.285,"min":1200.0,"max":3600.0},{"current":2699.059,"min":1200.0,"max":3600.0},{"current":2712.127,"min":1200.0,"max":3600.0},{"current":2694.04,"min":1200.0,"max":3600.0},{"current":2695.893,"min":1200.0,"max":3600.0},{"current":2681.04,"min":1200.0,"max":3600.0},{"current":2696.098,"min":1200.0,"max":3600.0},{"current":2696.697,"min":1200.0,"max":3600.0},{"current":2697.286,"min":1200.0,"max":3600.0},{"current":2693.41,"min":1200.0,"max":3600.0},{"current":2695.97,"min":1200.0,"max":3600.0},{"current":2696.389,"min":1200.0,"max":3600.0},{"current":2693.314,"min":1200.0,"max":3600.0},{"current":2696.476,"min":1200.0,"max":3600.0},{"current":2782.627,"min":1200.0,"max":3600.0},{"current":2695.652,"min":1200.0,"max":3600.0},{"current":2693.618,"min":1200.0,"max":3600.0},{"current":2716.667,"min":1200.0,"max":3600.0},{"current":2797.978,"min":1200.0,"max":3600.0},{"current":2815.293,"min":1200.0,"max":3600.0},{"current":2843.08,"min":1200.0,"max":3600.0},{"current":2694.842,"min":1200.0,"max":3600.0},{"current":2694.968,"min":1200.0,"max":3600.0},{"current":2706.983,"min":1200.0,"max":3600.0},{"current":2693.943,"min":1200.0,"max":3600.0},{"current":2698.003,"min":1200.0,"max":3600.0},{"current":2769.869,"min":1200.0,"max":3600.0},{"current":2706.808,"min":1200.0,"max":3600.0},{"current":2822.945,"min":1200.0,"max":3600.0},{"current":2694.149,"min":1200.0,"max":3600.0},{"current":2700.497,"min":1200.0,"max":3600.0},{"current":2697.482,"min":1200.0,"max":3600.0},{"current":2696.792,"min":1200.0,"max":3600.0},{"current":2695.906,"min":1200.0,"max":3600.0},{"current":2695.752,"min":1200.0,"max":3600.0},{"current":2752.863,"min":1200.0,"max":3600.0},{"current":2834.082,"min":1200.0,"max":3600.0},{"current":2693.973,"min":1200.0,"max":3600.0},{"current":2694.292,"min":1200.0,"max":3600.0},{"current":2694.736,"min":1200.0,"max":3600.0},{"current":2696.537,"min":1200.0,"max":3600.0},{"current":2694.53,"min":1200.0,"max":3600.0},{"current":2695.132,"min":1200.0,"max":3600.0},{"current":2694.026,"min":1200.0,"max":3600.0},{"current":2772.079,"min":1200.0,"max":3600.0},{"current":2760.624,"min":1200.0,"max":3600.0},{"current":2695.448,"min":1200.0,"max":3600.0},{"current":2696.452,"min":1200.0,"max":3600.0},{"current":2696.34,"min":1200.0,"max":3600.0},{"current":2681.017,"min":1200.0,"max":3600.0},{"current":2694.403,"min":1200.0,"max":3600.0},{"current":2683.258,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2695.102,"min":1200.0,"max":3600.0},{"current":2776.019,"min":1200.0,"max":3600.0},{"current":2777.101,"min":1200.0,"max":3600.0},{"current":2762.354,"min":1200.0,"max":3600.0}],"disk_write_speed":71.40702753802552,"process_ids":[2113736,2113939]} +{"timestamp":1678268377.616286,"rapl_power_draw_absolute":166.93221268252773,"rapl_estimated_attributable_power_draw":8.444088055058174,"cpu_time_seconds":{"2113736":{"user":1204.22,"system":235.84,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":19.39,"system":28.12,"children_user":8.36,"children_system":286.43,"iowait":30.0}},"average_relative_cpu_utilization":0.057277949573494386,"absolute_cpu_utilization":1.003675124259393,"relative_mem_usage":0.018436333315097128,"absolute_mem_usage":3802772480.0,"absolute_mem_percent_usage":0.007030076771006436,"mem_info_per_process":{"2113736":{"rss":3738300416,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3338432512,"pss":3501283328,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165613568,"pss":301489152,"swap":0}},"nvidia_draw_absolute":476.6600000000001,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.215,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.5,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":21.5,"mem":14.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.22712500000000002,0.22974999999999998,0.22774999999999998],"cpu_freq":[{"current":2694.176,"min":1200.0,"max":3600.0},{"current":2693.926,"min":1200.0,"max":3600.0},{"current":2695.07,"min":1200.0,"max":3600.0},{"current":2623.492,"min":1200.0,"max":3600.0},{"current":2708.575,"min":1200.0,"max":3600.0},{"current":2711.049,"min":1200.0,"max":3600.0},{"current":2701.388,"min":1200.0,"max":3600.0},{"current":2697.523,"min":1200.0,"max":3600.0},{"current":2695.208,"min":1200.0,"max":3600.0},{"current":2701.459,"min":1200.0,"max":3600.0},{"current":2701.515,"min":1200.0,"max":3600.0},{"current":2742.489,"min":1200.0,"max":3600.0},{"current":2824.564,"min":1200.0,"max":3600.0},{"current":2697.076,"min":1200.0,"max":3600.0},{"current":2821.976,"min":1200.0,"max":3600.0},{"current":2714.337,"min":1200.0,"max":3600.0},{"current":2702.488,"min":1200.0,"max":3600.0},{"current":2800.96,"min":1200.0,"max":3600.0},{"current":2714.174,"min":1200.0,"max":3600.0},{"current":2695.255,"min":1200.0,"max":3600.0},{"current":2691.053,"min":1200.0,"max":3600.0},{"current":2695.958,"min":1200.0,"max":3600.0},{"current":2702.55,"min":1200.0,"max":3600.0},{"current":2694.871,"min":1200.0,"max":3600.0},{"current":2696.819,"min":1200.0,"max":3600.0},{"current":2699.066,"min":1200.0,"max":3600.0},{"current":2702.58,"min":1200.0,"max":3600.0},{"current":2697.471,"min":1200.0,"max":3600.0},{"current":2694.378,"min":1200.0,"max":3600.0},{"current":2696.605,"min":1200.0,"max":3600.0},{"current":2694.024,"min":1200.0,"max":3600.0},{"current":2692.19,"min":1200.0,"max":3600.0},{"current":2696.183,"min":1200.0,"max":3600.0},{"current":2695.05,"min":1200.0,"max":3600.0},{"current":2697.445,"min":1200.0,"max":3600.0},{"current":2683.695,"min":1200.0,"max":3600.0},{"current":2695.46,"min":1200.0,"max":3600.0},{"current":2695.052,"min":1200.0,"max":3600.0},{"current":2692.673,"min":1200.0,"max":3600.0},{"current":2654.332,"min":1200.0,"max":3600.0},{"current":2693.787,"min":1200.0,"max":3600.0},{"current":2668.189,"min":1200.0,"max":3600.0},{"current":2683.427,"min":1200.0,"max":3600.0},{"current":2684.832,"min":1200.0,"max":3600.0},{"current":2694.091,"min":1200.0,"max":3600.0},{"current":2694.594,"min":1200.0,"max":3600.0},{"current":2693.748,"min":1200.0,"max":3600.0},{"current":2694.633,"min":1200.0,"max":3600.0},{"current":2695.112,"min":1200.0,"max":3600.0},{"current":2694.492,"min":1200.0,"max":3600.0},{"current":2694.555,"min":1200.0,"max":3600.0},{"current":2760.363,"min":1200.0,"max":3600.0},{"current":2685.056,"min":1200.0,"max":3600.0},{"current":2697.567,"min":1200.0,"max":3600.0},{"current":2714.813,"min":1200.0,"max":3600.0},{"current":2694.895,"min":1200.0,"max":3600.0},{"current":2693.096,"min":1200.0,"max":3600.0},{"current":2597.379,"min":1200.0,"max":3600.0},{"current":2695.602,"min":1200.0,"max":3600.0},{"current":2720.323,"min":1200.0,"max":3600.0},{"current":2696.163,"min":1200.0,"max":3600.0},{"current":2694.739,"min":1200.0,"max":3600.0},{"current":2693.981,"min":1200.0,"max":3600.0},{"current":2696.404,"min":1200.0,"max":3600.0},{"current":2697.399,"min":1200.0,"max":3600.0},{"current":2694.391,"min":1200.0,"max":3600.0},{"current":2695.311,"min":1200.0,"max":3600.0},{"current":2778.921,"min":1200.0,"max":3600.0},{"current":2768.68,"min":1200.0,"max":3600.0},{"current":2694.682,"min":1200.0,"max":3600.0},{"current":2701.98,"min":1200.0,"max":3600.0},{"current":2696.231,"min":1200.0,"max":3600.0},{"current":2769.355,"min":1200.0,"max":3600.0},{"current":2694.214,"min":1200.0,"max":3600.0},{"current":2779.647,"min":1200.0,"max":3600.0},{"current":2763.324,"min":1200.0,"max":3600.0},{"current":2696.117,"min":1200.0,"max":3600.0},{"current":2773.532,"min":1200.0,"max":3600.0},{"current":2773.1,"min":1200.0,"max":3600.0},{"current":2770.869,"min":1200.0,"max":3600.0}],"disk_write_speed":71.05721332513247,"process_ids":[2113736,2113939]} +{"timestamp":1678268393.364195,"rapl_power_draw_absolute":166.6389665358406,"rapl_estimated_attributable_power_draw":8.425486389603998,"cpu_time_seconds":{"2113736":{"user":1217.42,"system":238.39,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":19.6,"system":28.46,"children_user":8.44,"children_system":289.6,"iowait":30.34}},"average_relative_cpu_utilization":0.05736935678673948,"absolute_cpu_utilization":0.998710083207894,"relative_mem_usage":0.018075820439795217,"absolute_mem_usage":3727422464.0,"absolute_mem_percent_usage":0.006890779350515857,"mem_info_per_process":{"2113736":{"rss":3671851008,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3263082496,"pss":3425933312,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165613568,"pss":301489152,"swap":0}},"nvidia_draw_absolute":489.50000000000006,"nvidia_estimated_attributable_power_draw":70.04,"average_gpu_estimated_utilization_absolute":0.27,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":8.5,"mem":5.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.25,"mem":5.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":27.0,"mem":18.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.04},"cpu_count_adjusted_average_load":[0.231,0.230375,0.22799999999999998],"cpu_freq":[{"current":2695.308,"min":1200.0,"max":3600.0},{"current":2611.882,"min":1200.0,"max":3600.0},{"current":2695.584,"min":1200.0,"max":3600.0},{"current":2657.986,"min":1200.0,"max":3600.0},{"current":2704.429,"min":1200.0,"max":3600.0},{"current":2724.535,"min":1200.0,"max":3600.0},{"current":2699.063,"min":1200.0,"max":3600.0},{"current":2698.587,"min":1200.0,"max":3600.0},{"current":2697.484,"min":1200.0,"max":3600.0},{"current":2701.887,"min":1200.0,"max":3600.0},{"current":2694.886,"min":1200.0,"max":3600.0},{"current":2697.649,"min":1200.0,"max":3600.0},{"current":2799.279,"min":1200.0,"max":3600.0},{"current":2694.348,"min":1200.0,"max":3600.0},{"current":2796.138,"min":1200.0,"max":3600.0},{"current":2696.476,"min":1200.0,"max":3600.0},{"current":2695.524,"min":1200.0,"max":3600.0},{"current":2801.915,"min":1200.0,"max":3600.0},{"current":2695.876,"min":1200.0,"max":3600.0},{"current":2683.585,"min":1200.0,"max":3600.0},{"current":2779.432,"min":1200.0,"max":3600.0},{"current":2697.311,"min":1200.0,"max":3600.0},{"current":2696.526,"min":1200.0,"max":3600.0},{"current":2695.959,"min":1200.0,"max":3600.0},{"current":2696.003,"min":1200.0,"max":3600.0},{"current":2788.976,"min":1200.0,"max":3600.0},{"current":2695.651,"min":1200.0,"max":3600.0},{"current":2693.177,"min":1200.0,"max":3600.0},{"current":2737.725,"min":1200.0,"max":3600.0},{"current":2694.104,"min":1200.0,"max":3600.0},{"current":2697.197,"min":1200.0,"max":3600.0},{"current":2696.383,"min":1200.0,"max":3600.0},{"current":2696.628,"min":1200.0,"max":3600.0},{"current":2721.337,"min":1200.0,"max":3600.0},{"current":2622.741,"min":1200.0,"max":3600.0},{"current":2691.944,"min":1200.0,"max":3600.0},{"current":2695.953,"min":1200.0,"max":3600.0},{"current":2784.334,"min":1200.0,"max":3600.0},{"current":2727.611,"min":1200.0,"max":3600.0},{"current":2766.04,"min":1200.0,"max":3600.0},{"current":2694.116,"min":1200.0,"max":3600.0},{"current":2699.015,"min":1200.0,"max":3600.0},{"current":2768.952,"min":1200.0,"max":3600.0},{"current":2828.879,"min":1200.0,"max":3600.0},{"current":2701.273,"min":1200.0,"max":3600.0},{"current":2709.863,"min":1200.0,"max":3600.0},{"current":2699.453,"min":1200.0,"max":3600.0},{"current":2697.142,"min":1200.0,"max":3600.0},{"current":2696.741,"min":1200.0,"max":3600.0},{"current":2694.199,"min":1200.0,"max":3600.0},{"current":2697.769,"min":1200.0,"max":3600.0},{"current":2788.279,"min":1200.0,"max":3600.0},{"current":2724.402,"min":1200.0,"max":3600.0},{"current":2694.644,"min":1200.0,"max":3600.0},{"current":2753.117,"min":1200.0,"max":3600.0},{"current":2717.812,"min":1200.0,"max":3600.0},{"current":2782.428,"min":1200.0,"max":3600.0},{"current":2692.394,"min":1200.0,"max":3600.0},{"current":2698.954,"min":1200.0,"max":3600.0},{"current":2845.226,"min":1200.0,"max":3600.0},{"current":2709.822,"min":1200.0,"max":3600.0},{"current":2695.128,"min":1200.0,"max":3600.0},{"current":2693.98,"min":1200.0,"max":3600.0},{"current":2693.871,"min":1200.0,"max":3600.0},{"current":2696.019,"min":1200.0,"max":3600.0},{"current":2695.897,"min":1200.0,"max":3600.0},{"current":2705.887,"min":1200.0,"max":3600.0},{"current":2790.629,"min":1200.0,"max":3600.0},{"current":2723.379,"min":1200.0,"max":3600.0},{"current":2694.292,"min":1200.0,"max":3600.0},{"current":2694.183,"min":1200.0,"max":3600.0},{"current":2695.451,"min":1200.0,"max":3600.0},{"current":2693.961,"min":1200.0,"max":3600.0},{"current":2702.499,"min":1200.0,"max":3600.0},{"current":2783.915,"min":1200.0,"max":3600.0},{"current":2795.196,"min":1200.0,"max":3600.0},{"current":2692.794,"min":1200.0,"max":3600.0},{"current":2774.578,"min":1200.0,"max":3600.0},{"current":2767.155,"min":1200.0,"max":3600.0},{"current":2771.419,"min":1200.0,"max":3600.0}],"disk_write_speed":70.03872389810554,"process_ids":[2113736,2113939]} +{"timestamp":1678268409.052246,"rapl_power_draw_absolute":169.8989034757355,"rapl_estimated_attributable_power_draw":8.132428817852773,"cpu_time_seconds":{"2113736":{"user":1230.67,"system":240.84,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":19.8,"system":28.79,"children_user":8.53,"children_system":292.79,"iowait":30.68}},"average_relative_cpu_utilization":0.05432231955635217,"absolute_cpu_utilization":1.0036963836021364,"relative_mem_usage":0.017710008772722247,"absolute_mem_usage":3651269632.0,"absolute_mem_percent_usage":0.006749997787036794,"mem_info_per_process":{"2113736":{"rss":3574480896,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3186929664,"pss":3349780480,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165613568,"pss":301489152,"swap":0}},"nvidia_draw_absolute":467.59000000000003,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.2875,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":18.4,"mem":11.6,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":8.666666666666666,"mem":5.333333333333333,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":25.5,"mem":14.5,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":28.75,"mem":19.25,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.236,0.23162500000000003,0.2285],"cpu_freq":[{"current":2694.596,"min":1200.0,"max":3600.0},{"current":2685.328,"min":1200.0,"max":3600.0},{"current":2696.082,"min":1200.0,"max":3600.0},{"current":2691.47,"min":1200.0,"max":3600.0},{"current":2695.427,"min":1200.0,"max":3600.0},{"current":2694.236,"min":1200.0,"max":3600.0},{"current":2695.954,"min":1200.0,"max":3600.0},{"current":2699.61,"min":1200.0,"max":3600.0},{"current":2695.649,"min":1200.0,"max":3600.0},{"current":2708.756,"min":1200.0,"max":3600.0},{"current":2696.773,"min":1200.0,"max":3600.0},{"current":2693.387,"min":1200.0,"max":3600.0},{"current":2797.746,"min":1200.0,"max":3600.0},{"current":2697.917,"min":1200.0,"max":3600.0},{"current":2732.505,"min":1200.0,"max":3600.0},{"current":2762.77,"min":1200.0,"max":3600.0},{"current":2701.342,"min":1200.0,"max":3600.0},{"current":2697.176,"min":1200.0,"max":3600.0},{"current":2788.744,"min":1200.0,"max":3600.0},{"current":2656.067,"min":1200.0,"max":3600.0},{"current":2658.699,"min":1200.0,"max":3600.0},{"current":2697.155,"min":1200.0,"max":3600.0},{"current":2698.583,"min":1200.0,"max":3600.0},{"current":2694.075,"min":1200.0,"max":3600.0},{"current":2695.447,"min":1200.0,"max":3600.0},{"current":2691.145,"min":1200.0,"max":3600.0},{"current":2696.256,"min":1200.0,"max":3600.0},{"current":2697.08,"min":1200.0,"max":3600.0},{"current":2693.637,"min":1200.0,"max":3600.0},{"current":2695.826,"min":1200.0,"max":3600.0},{"current":2697.245,"min":1200.0,"max":3600.0},{"current":2697.693,"min":1200.0,"max":3600.0},{"current":2697.056,"min":1200.0,"max":3600.0},{"current":2694.385,"min":1200.0,"max":3600.0},{"current":2692.077,"min":1200.0,"max":3600.0},{"current":2696.21,"min":1200.0,"max":3600.0},{"current":2695.308,"min":1200.0,"max":3600.0},{"current":2694.899,"min":1200.0,"max":3600.0},{"current":2695.548,"min":1200.0,"max":3600.0},{"current":2685.345,"min":1200.0,"max":3600.0},{"current":2716.905,"min":1200.0,"max":3600.0},{"current":2788.242,"min":1200.0,"max":3600.0},{"current":2765.11,"min":1200.0,"max":3600.0},{"current":2823.55,"min":1200.0,"max":3600.0},{"current":2712.26,"min":1200.0,"max":3600.0},{"current":2705.804,"min":1200.0,"max":3600.0},{"current":2694.847,"min":1200.0,"max":3600.0},{"current":2701.991,"min":1200.0,"max":3600.0},{"current":2697.171,"min":1200.0,"max":3600.0},{"current":2694.302,"min":1200.0,"max":3600.0},{"current":2710.12,"min":1200.0,"max":3600.0},{"current":2832.207,"min":1200.0,"max":3600.0},{"current":2693.935,"min":1200.0,"max":3600.0},{"current":2697.127,"min":1200.0,"max":3600.0},{"current":2705.884,"min":1200.0,"max":3600.0},{"current":2694.702,"min":1200.0,"max":3600.0},{"current":2721.465,"min":1200.0,"max":3600.0},{"current":2695.882,"min":1200.0,"max":3600.0},{"current":2623.599,"min":1200.0,"max":3600.0},{"current":2822.076,"min":1200.0,"max":3600.0},{"current":2595.41,"min":1200.0,"max":3600.0},{"current":2698.214,"min":1200.0,"max":3600.0},{"current":2694.66,"min":1200.0,"max":3600.0},{"current":2693.589,"min":1200.0,"max":3600.0},{"current":2694.62,"min":1200.0,"max":3600.0},{"current":2692.248,"min":1200.0,"max":3600.0},{"current":2694.429,"min":1200.0,"max":3600.0},{"current":2696.356,"min":1200.0,"max":3600.0},{"current":2751.703,"min":1200.0,"max":3600.0},{"current":2693.757,"min":1200.0,"max":3600.0},{"current":2696.055,"min":1200.0,"max":3600.0},{"current":2696.819,"min":1200.0,"max":3600.0},{"current":2695.654,"min":1200.0,"max":3600.0},{"current":2699.794,"min":1200.0,"max":3600.0},{"current":2690.801,"min":1200.0,"max":3600.0},{"current":2690.451,"min":1200.0,"max":3600.0},{"current":2695.526,"min":1200.0,"max":3600.0},{"current":2693.759,"min":1200.0,"max":3600.0},{"current":2688.01,"min":1200.0,"max":3600.0},{"current":2694.444,"min":1200.0,"max":3600.0}],"disk_write_speed":70.95713763420042,"process_ids":[2113736,2113939]} +{"timestamp":1678268424.668144,"rapl_power_draw_absolute":166.90859321834336,"rapl_estimated_attributable_power_draw":8.523750712961165,"cpu_time_seconds":{"2113736":{"user":1243.81,"system":243.32,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":20.03,"system":29.15,"children_user":8.6,"children_system":295.97,"iowait":31.02}},"average_relative_cpu_utilization":0.05811025448703878,"absolute_cpu_utilization":1.008707006722211,"relative_mem_usage":0.017126156023336104,"absolute_mem_usage":3533489152.0,"absolute_mem_percent_usage":0.006532260380741587,"mem_info_per_process":{"2113736":{"rss":3478290432,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3069149184,"pss":3232000000,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165613568,"pss":301489152,"swap":0}},"nvidia_draw_absolute":475.1500000000001,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.268,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.0,"mem":5.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":25.0,"mem":14.666666666666666,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":26.8,"mem":18.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23424999999999999,0.23149999999999998,0.2285],"cpu_freq":[{"current":2696.028,"min":1200.0,"max":3600.0},{"current":2695.126,"min":1200.0,"max":3600.0},{"current":2723.762,"min":1200.0,"max":3600.0},{"current":2698.418,"min":1200.0,"max":3600.0},{"current":2706.112,"min":1200.0,"max":3600.0},{"current":2705.136,"min":1200.0,"max":3600.0},{"current":2694.638,"min":1200.0,"max":3600.0},{"current":2700.99,"min":1200.0,"max":3600.0},{"current":2778.944,"min":1200.0,"max":3600.0},{"current":2698.822,"min":1200.0,"max":3600.0},{"current":2695.474,"min":1200.0,"max":3600.0},{"current":2745.512,"min":1200.0,"max":3600.0},{"current":2861.778,"min":1200.0,"max":3600.0},{"current":2697.084,"min":1200.0,"max":3600.0},{"current":2851.483,"min":1200.0,"max":3600.0},{"current":2699.953,"min":1200.0,"max":3600.0},{"current":2698.893,"min":1200.0,"max":3600.0},{"current":2695.569,"min":1200.0,"max":3600.0},{"current":2842.406,"min":1200.0,"max":3600.0},{"current":2679.997,"min":1200.0,"max":3600.0},{"current":2716.943,"min":1200.0,"max":3600.0},{"current":2702.524,"min":1200.0,"max":3600.0},{"current":2696.133,"min":1200.0,"max":3600.0},{"current":2695.199,"min":1200.0,"max":3600.0},{"current":2695.56,"min":1200.0,"max":3600.0},{"current":2783.482,"min":1200.0,"max":3600.0},{"current":2694.416,"min":1200.0,"max":3600.0},{"current":2698.174,"min":1200.0,"max":3600.0},{"current":2697.535,"min":1200.0,"max":3600.0},{"current":2725.035,"min":1200.0,"max":3600.0},{"current":2793.779,"min":1200.0,"max":3600.0},{"current":2695.668,"min":1200.0,"max":3600.0},{"current":2695.354,"min":1200.0,"max":3600.0},{"current":2694.216,"min":1200.0,"max":3600.0},{"current":2692.017,"min":1200.0,"max":3600.0},{"current":2697.081,"min":1200.0,"max":3600.0},{"current":2729.319,"min":1200.0,"max":3600.0},{"current":2791.857,"min":1200.0,"max":3600.0},{"current":2782.68,"min":1200.0,"max":3600.0},{"current":2754.756,"min":1200.0,"max":3600.0},{"current":2694.368,"min":1200.0,"max":3600.0},{"current":2751.328,"min":1200.0,"max":3600.0},{"current":2739.097,"min":1200.0,"max":3600.0},{"current":2743.925,"min":1200.0,"max":3600.0},{"current":2694.899,"min":1200.0,"max":3600.0},{"current":2694.487,"min":1200.0,"max":3600.0},{"current":2695.332,"min":1200.0,"max":3600.0},{"current":2693.324,"min":1200.0,"max":3600.0},{"current":2695.417,"min":1200.0,"max":3600.0},{"current":2694.207,"min":1200.0,"max":3600.0},{"current":2697.232,"min":1200.0,"max":3600.0},{"current":2764.099,"min":1200.0,"max":3600.0},{"current":2696.08,"min":1200.0,"max":3600.0},{"current":2712.964,"min":1200.0,"max":3600.0},{"current":2693.792,"min":1200.0,"max":3600.0},{"current":2695.816,"min":1200.0,"max":3600.0},{"current":2697.918,"min":1200.0,"max":3600.0},{"current":2694.192,"min":1200.0,"max":3600.0},{"current":2622.633,"min":1200.0,"max":3600.0},{"current":2794.464,"min":1200.0,"max":3600.0},{"current":2795.977,"min":1200.0,"max":3600.0},{"current":2694.764,"min":1200.0,"max":3600.0},{"current":2693.295,"min":1200.0,"max":3600.0},{"current":2694.305,"min":1200.0,"max":3600.0},{"current":2695.594,"min":1200.0,"max":3600.0},{"current":2694.254,"min":1200.0,"max":3600.0},{"current":2694.307,"min":1200.0,"max":3600.0},{"current":2696.054,"min":1200.0,"max":3600.0},{"current":2695.702,"min":1200.0,"max":3600.0},{"current":2785.487,"min":1200.0,"max":3600.0},{"current":2693.831,"min":1200.0,"max":3600.0},{"current":2696.003,"min":1200.0,"max":3600.0},{"current":2780.228,"min":1200.0,"max":3600.0},{"current":2720.599,"min":1200.0,"max":3600.0},{"current":2785.162,"min":1200.0,"max":3600.0},{"current":2695.315,"min":1200.0,"max":3600.0},{"current":2781.843,"min":1200.0,"max":3600.0},{"current":2763.654,"min":1200.0,"max":3600.0},{"current":2774.273,"min":1200.0,"max":3600.0},{"current":2784.532,"min":1200.0,"max":3600.0}],"disk_write_speed":71.33496952571996,"process_ids":[2113736,2113939]} +{"timestamp":1678268440.396238,"rapl_power_draw_absolute":166.63981085446727,"rapl_estimated_attributable_power_draw":8.30761523841812,"cpu_time_seconds":{"2113736":{"user":1257.06,"system":245.8,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":20.25,"system":29.45,"children_user":8.65,"children_system":299.2,"iowait":31.36}},"average_relative_cpu_utilization":0.056767606977815216,"absolute_cpu_utilization":0.9987433782565934,"relative_mem_usage":0.01691212772721453,"absolute_mem_usage":3484867584.0,"absolute_mem_percent_usage":0.006442375077961993,"mem_info_per_process":{"2113736":{"rss":3423678464,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3020529664,"pss":3183378432,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165613568,"pss":301489152,"swap":0}},"nvidia_draw_absolute":497.18000000000006,"nvidia_estimated_attributable_power_draw":69.56,"average_gpu_estimated_utilization_absolute":0.22,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":8.4,"mem":5.2,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":7.0,"mem":4.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.0,"mem":14.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.56},"cpu_count_adjusted_average_load":[0.23224999999999998,0.23112499999999997,0.228375],"cpu_freq":[{"current":2693.76,"min":1200.0,"max":3600.0},{"current":2692.765,"min":1200.0,"max":3600.0},{"current":2694.233,"min":1200.0,"max":3600.0},{"current":2633.436,"min":1200.0,"max":3600.0},{"current":2701.675,"min":1200.0,"max":3600.0},{"current":2694.059,"min":1200.0,"max":3600.0},{"current":2695.624,"min":1200.0,"max":3600.0},{"current":2694.44,"min":1200.0,"max":3600.0},{"current":2694.413,"min":1200.0,"max":3600.0},{"current":2726.213,"min":1200.0,"max":3600.0},{"current":2693.767,"min":1200.0,"max":3600.0},{"current":2689.273,"min":1200.0,"max":3600.0},{"current":2809.349,"min":1200.0,"max":3600.0},{"current":2695.469,"min":1200.0,"max":3600.0},{"current":2711.022,"min":1200.0,"max":3600.0},{"current":2695.513,"min":1200.0,"max":3600.0},{"current":2700.548,"min":1200.0,"max":3600.0},{"current":2696.858,"min":1200.0,"max":3600.0},{"current":2708.106,"min":1200.0,"max":3600.0},{"current":2679.592,"min":1200.0,"max":3600.0},{"current":2765.509,"min":1200.0,"max":3600.0},{"current":2707.45,"min":1200.0,"max":3600.0},{"current":2695.325,"min":1200.0,"max":3600.0},{"current":2694.663,"min":1200.0,"max":3600.0},{"current":2696.629,"min":1200.0,"max":3600.0},{"current":2770.129,"min":1200.0,"max":3600.0},{"current":2695.49,"min":1200.0,"max":3600.0},{"current":2696.608,"min":1200.0,"max":3600.0},{"current":2694.397,"min":1200.0,"max":3600.0},{"current":2696.098,"min":1200.0,"max":3600.0},{"current":2695.295,"min":1200.0,"max":3600.0},{"current":2699.189,"min":1200.0,"max":3600.0},{"current":2698.583,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2693.603,"min":1200.0,"max":3600.0},{"current":2697.76,"min":1200.0,"max":3600.0},{"current":2693.276,"min":1200.0,"max":3600.0},{"current":2694.595,"min":1200.0,"max":3600.0},{"current":2690.309,"min":1200.0,"max":3600.0},{"current":2684.751,"min":1200.0,"max":3600.0},{"current":2725.069,"min":1200.0,"max":3600.0},{"current":2728.526,"min":1200.0,"max":3600.0},{"current":2807.528,"min":1200.0,"max":3600.0},{"current":2826.23,"min":1200.0,"max":3600.0},{"current":2694.411,"min":1200.0,"max":3600.0},{"current":2694.073,"min":1200.0,"max":3600.0},{"current":2695.948,"min":1200.0,"max":3600.0},{"current":2693.494,"min":1200.0,"max":3600.0},{"current":2698.123,"min":1200.0,"max":3600.0},{"current":2747.84,"min":1200.0,"max":3600.0},{"current":2702.303,"min":1200.0,"max":3600.0},{"current":2857.215,"min":1200.0,"max":3600.0},{"current":2658.22,"min":1200.0,"max":3600.0},{"current":2694.679,"min":1200.0,"max":3600.0},{"current":2780.412,"min":1200.0,"max":3600.0},{"current":2698.366,"min":1200.0,"max":3600.0},{"current":2699.207,"min":1200.0,"max":3600.0},{"current":2694.396,"min":1200.0,"max":3600.0},{"current":2694.471,"min":1200.0,"max":3600.0},{"current":2760.131,"min":1200.0,"max":3600.0},{"current":2694.173,"min":1200.0,"max":3600.0},{"current":2697.639,"min":1200.0,"max":3600.0},{"current":2696.463,"min":1200.0,"max":3600.0},{"current":2695.258,"min":1200.0,"max":3600.0},{"current":2696.219,"min":1200.0,"max":3600.0},{"current":2696.278,"min":1200.0,"max":3600.0},{"current":2696.149,"min":1200.0,"max":3600.0},{"current":2699.016,"min":1200.0,"max":3600.0},{"current":2694.242,"min":1200.0,"max":3600.0},{"current":2674.763,"min":1200.0,"max":3600.0},{"current":2693.875,"min":1200.0,"max":3600.0},{"current":2693.989,"min":1200.0,"max":3600.0},{"current":2690.411,"min":1200.0,"max":3600.0},{"current":2694.206,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2694.248,"min":1200.0,"max":3600.0},{"current":2685.553,"min":1200.0,"max":3600.0},{"current":2694.306,"min":1200.0,"max":3600.0},{"current":2689.632,"min":1200.0,"max":3600.0},{"current":2693.267,"min":1200.0,"max":3600.0}],"disk_write_speed":72.32236010921805,"process_ids":[2113736,2113939]} +{"timestamp":1678268456.584271,"rapl_power_draw_absolute":167.70149299154593,"rapl_estimated_attributable_power_draw":8.281197292400396,"cpu_time_seconds":{"2113736":{"user":1270.54,"system":248.52,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":20.45,"system":29.8,"children_user":8.74,"children_system":302.48,"iowait":31.71}},"average_relative_cpu_utilization":0.05614503448757765,"absolute_cpu_utilization":0.9987205299678868,"relative_mem_usage":0.017366206373805013,"absolute_mem_usage":3580797952.0,"absolute_mem_percent_usage":0.006619718806848687,"mem_info_per_process":{"2113736":{"rss":3520188416,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3116457984,"pss":3279308800,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165613568,"pss":301489152,"swap":0}},"nvidia_draw_absolute":465.18000000000006,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.24666666666666667,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":21.333333333333332,"mem":13.666666666666666,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.0,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.666666666666668,"mem":17.333333333333332,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.234375,0.23162500000000003,0.228625],"cpu_freq":[{"current":2695.459,"min":1200.0,"max":3600.0},{"current":2786.547,"min":1200.0,"max":3600.0},{"current":2695.513,"min":1200.0,"max":3600.0},{"current":2622.443,"min":1200.0,"max":3600.0},{"current":2703.6,"min":1200.0,"max":3600.0},{"current":2704.04,"min":1200.0,"max":3600.0},{"current":2697.72,"min":1200.0,"max":3600.0},{"current":2726.53,"min":1200.0,"max":3600.0},{"current":2697.232,"min":1200.0,"max":3600.0},{"current":2698.052,"min":1200.0,"max":3600.0},{"current":2697.922,"min":1200.0,"max":3600.0},{"current":2668.02,"min":1200.0,"max":3600.0},{"current":2857.581,"min":1200.0,"max":3600.0},{"current":2721.268,"min":1200.0,"max":3600.0},{"current":2814.934,"min":1200.0,"max":3600.0},{"current":2697.103,"min":1200.0,"max":3600.0},{"current":2695.149,"min":1200.0,"max":3600.0},{"current":2695.157,"min":1200.0,"max":3600.0},{"current":2792.898,"min":1200.0,"max":3600.0},{"current":2631.47,"min":1200.0,"max":3600.0},{"current":2782.404,"min":1200.0,"max":3600.0},{"current":2695.611,"min":1200.0,"max":3600.0},{"current":2695.003,"min":1200.0,"max":3600.0},{"current":2696.773,"min":1200.0,"max":3600.0},{"current":2695.605,"min":1200.0,"max":3600.0},{"current":2785.247,"min":1200.0,"max":3600.0},{"current":2694.477,"min":1200.0,"max":3600.0},{"current":2696.971,"min":1200.0,"max":3600.0},{"current":2694.271,"min":1200.0,"max":3600.0},{"current":2727.372,"min":1200.0,"max":3600.0},{"current":2697.767,"min":1200.0,"max":3600.0},{"current":2719.424,"min":1200.0,"max":3600.0},{"current":2682.561,"min":1200.0,"max":3600.0},{"current":2694.434,"min":1200.0,"max":3600.0},{"current":2730.537,"min":1200.0,"max":3600.0},{"current":2696.422,"min":1200.0,"max":3600.0},{"current":2734.279,"min":1200.0,"max":3600.0},{"current":2756.686,"min":1200.0,"max":3600.0},{"current":2694.49,"min":1200.0,"max":3600.0},{"current":2697.141,"min":1200.0,"max":3600.0},{"current":2694.275,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2727.633,"min":1200.0,"max":3600.0},{"current":2757.934,"min":1200.0,"max":3600.0},{"current":2694.382,"min":1200.0,"max":3600.0},{"current":2694.258,"min":1200.0,"max":3600.0},{"current":2694.704,"min":1200.0,"max":3600.0},{"current":2694.134,"min":1200.0,"max":3600.0},{"current":2721.836,"min":1200.0,"max":3600.0},{"current":2695.404,"min":1200.0,"max":3600.0},{"current":2694.466,"min":1200.0,"max":3600.0},{"current":2787.688,"min":1200.0,"max":3600.0},{"current":2663.299,"min":1200.0,"max":3600.0},{"current":2694.233,"min":1200.0,"max":3600.0},{"current":2704.914,"min":1200.0,"max":3600.0},{"current":2694.033,"min":1200.0,"max":3600.0},{"current":2697.847,"min":1200.0,"max":3600.0},{"current":2702.913,"min":1200.0,"max":3600.0},{"current":2692.344,"min":1200.0,"max":3600.0},{"current":2834.348,"min":1200.0,"max":3600.0},{"current":2692.718,"min":1200.0,"max":3600.0},{"current":2703.26,"min":1200.0,"max":3600.0},{"current":2695.059,"min":1200.0,"max":3600.0},{"current":2694.202,"min":1200.0,"max":3600.0},{"current":2693.99,"min":1200.0,"max":3600.0},{"current":2622.96,"min":1200.0,"max":3600.0},{"current":2694.857,"min":1200.0,"max":3600.0},{"current":2693.146,"min":1200.0,"max":3600.0},{"current":2695.929,"min":1200.0,"max":3600.0},{"current":2683.226,"min":1200.0,"max":3600.0},{"current":2693.926,"min":1200.0,"max":3600.0},{"current":2693.774,"min":1200.0,"max":3600.0},{"current":2688.871,"min":1200.0,"max":3600.0},{"current":2694.079,"min":1200.0,"max":3600.0},{"current":2666.714,"min":1200.0,"max":3600.0},{"current":2694.567,"min":1200.0,"max":3600.0},{"current":2680.127,"min":1200.0,"max":3600.0},{"current":2694.534,"min":1200.0,"max":3600.0},{"current":2688.129,"min":1200.0,"max":3600.0},{"current":2685.411,"min":1200.0,"max":3600.0}],"disk_write_speed":70.85448394857575,"process_ids":[2113736,2113939]} +{"timestamp":1678268472.372271,"rapl_power_draw_absolute":165.8644429678318,"rapl_estimated_attributable_power_draw":8.469664995537405,"cpu_time_seconds":{"2113736":{"user":1283.76,"system":251.1,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":20.66,"system":30.13,"children_user":8.85,"children_system":305.66,"iowait":32.05}},"average_relative_cpu_utilization":0.05810251998416039,"absolute_cpu_utilization":0.9986895693275463,"relative_mem_usage":0.01703377693861333,"absolute_mem_usage":3511501824.0,"absolute_mem_percent_usage":0.006491613036036574,"mem_info_per_process":{"2113736":{"rss":3452485632,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3047161856,"pss":3210010624,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":475.54999999999995,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.22,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.0,"mem":14.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23312499999999997,0.23149999999999998,0.228625],"cpu_freq":[{"current":2693.737,"min":1200.0,"max":3600.0},{"current":2692.908,"min":1200.0,"max":3600.0},{"current":2696.567,"min":1200.0,"max":3600.0},{"current":2705.5,"min":1200.0,"max":3600.0},{"current":2694.451,"min":1200.0,"max":3600.0},{"current":2695.186,"min":1200.0,"max":3600.0},{"current":2698.222,"min":1200.0,"max":3600.0},{"current":2695.956,"min":1200.0,"max":3600.0},{"current":2700.528,"min":1200.0,"max":3600.0},{"current":2701.076,"min":1200.0,"max":3600.0},{"current":2694.008,"min":1200.0,"max":3600.0},{"current":2627.815,"min":1200.0,"max":3600.0},{"current":2751.264,"min":1200.0,"max":3600.0},{"current":2696.712,"min":1200.0,"max":3600.0},{"current":2694.836,"min":1200.0,"max":3600.0},{"current":2754.732,"min":1200.0,"max":3600.0},{"current":2695.021,"min":1200.0,"max":3600.0},{"current":2727.26,"min":1200.0,"max":3600.0},{"current":2702.377,"min":1200.0,"max":3600.0},{"current":2662.921,"min":1200.0,"max":3600.0},{"current":2758.81,"min":1200.0,"max":3600.0},{"current":2695.302,"min":1200.0,"max":3600.0},{"current":2695.583,"min":1200.0,"max":3600.0},{"current":2702.88,"min":1200.0,"max":3600.0},{"current":2696.269,"min":1200.0,"max":3600.0},{"current":2727.203,"min":1200.0,"max":3600.0},{"current":2693.836,"min":1200.0,"max":3600.0},{"current":2695.825,"min":1200.0,"max":3600.0},{"current":2693.833,"min":1200.0,"max":3600.0},{"current":2695.579,"min":1200.0,"max":3600.0},{"current":2694.641,"min":1200.0,"max":3600.0},{"current":2694.017,"min":1200.0,"max":3600.0},{"current":2695.672,"min":1200.0,"max":3600.0},{"current":2695.451,"min":1200.0,"max":3600.0},{"current":2659.779,"min":1200.0,"max":3600.0},{"current":2696.978,"min":1200.0,"max":3600.0},{"current":2629.137,"min":1200.0,"max":3600.0},{"current":2701.268,"min":1200.0,"max":3600.0},{"current":2692.375,"min":1200.0,"max":3600.0},{"current":2703.805,"min":1200.0,"max":3600.0},{"current":2777.865,"min":1200.0,"max":3600.0},{"current":2798.681,"min":1200.0,"max":3600.0},{"current":2695.913,"min":1200.0,"max":3600.0},{"current":2784.741,"min":1200.0,"max":3600.0},{"current":2813.49,"min":1200.0,"max":3600.0},{"current":2702.431,"min":1200.0,"max":3600.0},{"current":2700.484,"min":1200.0,"max":3600.0},{"current":2697.87,"min":1200.0,"max":3600.0},{"current":2697.448,"min":1200.0,"max":3600.0},{"current":2695.054,"min":1200.0,"max":3600.0},{"current":2707.345,"min":1200.0,"max":3600.0},{"current":2765.544,"min":1200.0,"max":3600.0},{"current":2693.063,"min":1200.0,"max":3600.0},{"current":2695.195,"min":1200.0,"max":3600.0},{"current":2693.911,"min":1200.0,"max":3600.0},{"current":2660.203,"min":1200.0,"max":3600.0},{"current":2697.316,"min":1200.0,"max":3600.0},{"current":2694.389,"min":1200.0,"max":3600.0},{"current":2695.262,"min":1200.0,"max":3600.0},{"current":2723.58,"min":1200.0,"max":3600.0},{"current":2633.759,"min":1200.0,"max":3600.0},{"current":2694.378,"min":1200.0,"max":3600.0},{"current":2695.106,"min":1200.0,"max":3600.0},{"current":2694.285,"min":1200.0,"max":3600.0},{"current":2695.977,"min":1200.0,"max":3600.0},{"current":2695.499,"min":1200.0,"max":3600.0},{"current":2695.402,"min":1200.0,"max":3600.0},{"current":2696.998,"min":1200.0,"max":3600.0},{"current":2695.97,"min":1200.0,"max":3600.0},{"current":2798.114,"min":1200.0,"max":3600.0},{"current":2709.26,"min":1200.0,"max":3600.0},{"current":2696.801,"min":1200.0,"max":3600.0},{"current":2759.187,"min":1200.0,"max":3600.0},{"current":2694.206,"min":1200.0,"max":3600.0},{"current":2780.885,"min":1200.0,"max":3600.0},{"current":2694.302,"min":1200.0,"max":3600.0},{"current":2758.413,"min":1200.0,"max":3600.0},{"current":2739.274,"min":1200.0,"max":3600.0},{"current":2770.947,"min":1200.0,"max":3600.0},{"current":2784.429,"min":1200.0,"max":3600.0}],"disk_write_speed":71.1843415605073,"process_ids":[2113736,2113939]} +{"timestamp":1678268488.036218,"rapl_power_draw_absolute":167.08606175627867,"rapl_estimated_attributable_power_draw":8.297814283884504,"cpu_time_seconds":{"2113736":{"user":1296.9,"system":253.63,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":20.85,"system":30.47,"children_user":8.95,"children_system":308.82,"iowait":32.4}},"average_relative_cpu_utilization":0.056601647972197244,"absolute_cpu_utilization":1.0037124754619149,"relative_mem_usage":0.016615133787975394,"absolute_mem_usage":3431334912.0,"absolute_mem_percent_usage":0.00634341075761509,"mem_info_per_process":{"2113736":{"rss":3373121536,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":2966994944,"pss":3129843712,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":490.09000000000003,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.212,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":9.75,"mem":6.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.666666666666666,"mem":5.333333333333333,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":21.2,"mem":13.8,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23399999999999999,0.231875,0.22875],"cpu_freq":[{"current":2773.811,"min":1200.0,"max":3600.0},{"current":2697.174,"min":1200.0,"max":3600.0},{"current":2713.299,"min":1200.0,"max":3600.0},{"current":2692.203,"min":1200.0,"max":3600.0},{"current":2764.393,"min":1200.0,"max":3600.0},{"current":2698.257,"min":1200.0,"max":3600.0},{"current":2824.43,"min":1200.0,"max":3600.0},{"current":2711.781,"min":1200.0,"max":3600.0},{"current":2696.879,"min":1200.0,"max":3600.0},{"current":2717.161,"min":1200.0,"max":3600.0},{"current":2695.013,"min":1200.0,"max":3600.0},{"current":2767.59,"min":1200.0,"max":3600.0},{"current":2851.99,"min":1200.0,"max":3600.0},{"current":2698.901,"min":1200.0,"max":3600.0},{"current":2715.41,"min":1200.0,"max":3600.0},{"current":2857.121,"min":1200.0,"max":3600.0},{"current":2780.217,"min":1200.0,"max":3600.0},{"current":2696.467,"min":1200.0,"max":3600.0},{"current":2695.612,"min":1200.0,"max":3600.0},{"current":2695.97,"min":1200.0,"max":3600.0},{"current":2695.61,"min":1200.0,"max":3600.0},{"current":2696.757,"min":1200.0,"max":3600.0},{"current":2714.058,"min":1200.0,"max":3600.0},{"current":2697.255,"min":1200.0,"max":3600.0},{"current":2696.11,"min":1200.0,"max":3600.0},{"current":2770.649,"min":1200.0,"max":3600.0},{"current":2696.056,"min":1200.0,"max":3600.0},{"current":2778.502,"min":1200.0,"max":3600.0},{"current":2697.466,"min":1200.0,"max":3600.0},{"current":2696.325,"min":1200.0,"max":3600.0},{"current":2697.238,"min":1200.0,"max":3600.0},{"current":2696.069,"min":1200.0,"max":3600.0},{"current":2687.16,"min":1200.0,"max":3600.0},{"current":2694.498,"min":1200.0,"max":3600.0},{"current":2786.677,"min":1200.0,"max":3600.0},{"current":2698.144,"min":1200.0,"max":3600.0},{"current":2702.563,"min":1200.0,"max":3600.0},{"current":2696.686,"min":1200.0,"max":3600.0},{"current":2694.982,"min":1200.0,"max":3600.0},{"current":2695.072,"min":1200.0,"max":3600.0},{"current":2726.469,"min":1200.0,"max":3600.0},{"current":2721.547,"min":1200.0,"max":3600.0},{"current":2700.495,"min":1200.0,"max":3600.0},{"current":2826.911,"min":1200.0,"max":3600.0},{"current":2858.247,"min":1200.0,"max":3600.0},{"current":2749.067,"min":1200.0,"max":3600.0},{"current":2687.839,"min":1200.0,"max":3600.0},{"current":2694.214,"min":1200.0,"max":3600.0},{"current":2696.356,"min":1200.0,"max":3600.0},{"current":2696.153,"min":1200.0,"max":3600.0},{"current":2695.708,"min":1200.0,"max":3600.0},{"current":2824.03,"min":1200.0,"max":3600.0},{"current":2693.871,"min":1200.0,"max":3600.0},{"current":2694.698,"min":1200.0,"max":3600.0},{"current":2693.771,"min":1200.0,"max":3600.0},{"current":2693.832,"min":1200.0,"max":3600.0},{"current":2694.273,"min":1200.0,"max":3600.0},{"current":2705.959,"min":1200.0,"max":3600.0},{"current":2695.907,"min":1200.0,"max":3600.0},{"current":2886.49,"min":1200.0,"max":3600.0},{"current":2773.021,"min":1200.0,"max":3600.0},{"current":2694.649,"min":1200.0,"max":3600.0},{"current":2694.226,"min":1200.0,"max":3600.0},{"current":2694.251,"min":1200.0,"max":3600.0},{"current":2694.793,"min":1200.0,"max":3600.0},{"current":2768.206,"min":1200.0,"max":3600.0},{"current":2694.5,"min":1200.0,"max":3600.0},{"current":2694.879,"min":1200.0,"max":3600.0},{"current":2696.464,"min":1200.0,"max":3600.0},{"current":2734.036,"min":1200.0,"max":3600.0},{"current":2695.761,"min":1200.0,"max":3600.0},{"current":2695.557,"min":1200.0,"max":3600.0},{"current":2819.832,"min":1200.0,"max":3600.0},{"current":2694.297,"min":1200.0,"max":3600.0},{"current":2760.643,"min":1200.0,"max":3600.0},{"current":2692.748,"min":1200.0,"max":3600.0},{"current":2783.63,"min":1200.0,"max":3600.0},{"current":2774.858,"min":1200.0,"max":3600.0},{"current":2777.446,"min":1200.0,"max":3600.0},{"current":2780.112,"min":1200.0,"max":3600.0}],"disk_write_speed":72.08984354676873,"process_ids":[2113736,2113939]} +{"timestamp":1678268503.680232,"rapl_power_draw_absolute":168.05898485676994,"rapl_estimated_attributable_power_draw":8.236419381875413,"cpu_time_seconds":{"2113736":{"user":1310.1,"system":256.08,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":21.06,"system":30.79,"children_user":9.04,"children_system":311.99,"iowait":32.74}},"average_relative_cpu_utilization":0.05581582605736282,"absolute_cpu_utilization":1.0037337358914489,"relative_mem_usage":0.01647152196074389,"absolute_mem_usage":3394208768.0,"absolute_mem_percent_usage":0.006274776716555805,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929868800,"pss":3092717568,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":646.2400000000001,"nvidia_estimated_attributable_power_draw":245.4,"average_gpu_estimated_utilization_absolute":0.21,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":12.0,"mem":7.666666666666667,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":12.333333333333334,"mem":7.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":12.0,"mem":7.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":21.0,"mem":14.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":245.4},"cpu_count_adjusted_average_load":[0.23625,0.232375,0.229],"cpu_freq":[{"current":2694.164,"min":1200.0,"max":3600.0},{"current":2703.925,"min":1200.0,"max":3600.0},{"current":2725.313,"min":1200.0,"max":3600.0},{"current":2695.227,"min":1200.0,"max":3600.0},{"current":2692.152,"min":1200.0,"max":3600.0},{"current":2693.726,"min":1200.0,"max":3600.0},{"current":2686.135,"min":1200.0,"max":3600.0},{"current":2715.331,"min":1200.0,"max":3600.0},{"current":2693.897,"min":1200.0,"max":3600.0},{"current":2700.828,"min":1200.0,"max":3600.0},{"current":2696.682,"min":1200.0,"max":3600.0},{"current":2619.579,"min":1200.0,"max":3600.0},{"current":2695.032,"min":1200.0,"max":3600.0},{"current":2696.038,"min":1200.0,"max":3600.0},{"current":2694.55,"min":1200.0,"max":3600.0},{"current":2724.779,"min":1200.0,"max":3600.0},{"current":2695.097,"min":1200.0,"max":3600.0},{"current":2698.922,"min":1200.0,"max":3600.0},{"current":2699.875,"min":1200.0,"max":3600.0},{"current":2693.451,"min":1200.0,"max":3600.0},{"current":2741.876,"min":1200.0,"max":3600.0},{"current":2702.191,"min":1200.0,"max":3600.0},{"current":2698.744,"min":1200.0,"max":3600.0},{"current":2694.553,"min":1200.0,"max":3600.0},{"current":2695.305,"min":1200.0,"max":3600.0},{"current":2655.682,"min":1200.0,"max":3600.0},{"current":2695.861,"min":1200.0,"max":3600.0},{"current":2773.485,"min":1200.0,"max":3600.0},{"current":2694.397,"min":1200.0,"max":3600.0},{"current":2680.951,"min":1200.0,"max":3600.0},{"current":2695.04,"min":1200.0,"max":3600.0},{"current":2698.216,"min":1200.0,"max":3600.0},{"current":2742.742,"min":1200.0,"max":3600.0},{"current":2694.042,"min":1200.0,"max":3600.0},{"current":2732.886,"min":1200.0,"max":3600.0},{"current":2696.599,"min":1200.0,"max":3600.0},{"current":2699.209,"min":1200.0,"max":3600.0},{"current":2783.82,"min":1200.0,"max":3600.0},{"current":2738.128,"min":1200.0,"max":3600.0},{"current":2792.218,"min":1200.0,"max":3600.0},{"current":2725.07,"min":1200.0,"max":3600.0},{"current":2694.623,"min":1200.0,"max":3600.0},{"current":2730.806,"min":1200.0,"max":3600.0},{"current":2832.22,"min":1200.0,"max":3600.0},{"current":2831.21,"min":1200.0,"max":3600.0},{"current":2771.639,"min":1200.0,"max":3600.0},{"current":2678.892,"min":1200.0,"max":3600.0},{"current":2693.545,"min":1200.0,"max":3600.0},{"current":2698.354,"min":1200.0,"max":3600.0},{"current":2782.304,"min":1200.0,"max":3600.0},{"current":2696.547,"min":1200.0,"max":3600.0},{"current":2732.647,"min":1200.0,"max":3600.0},{"current":2693.936,"min":1200.0,"max":3600.0},{"current":2722.394,"min":1200.0,"max":3600.0},{"current":2697.632,"min":1200.0,"max":3600.0},{"current":2760.736,"min":1200.0,"max":3600.0},{"current":2733.935,"min":1200.0,"max":3600.0},{"current":2701.761,"min":1200.0,"max":3600.0},{"current":2694.36,"min":1200.0,"max":3600.0},{"current":2759.209,"min":1200.0,"max":3600.0},{"current":2691.35,"min":1200.0,"max":3600.0},{"current":2694.616,"min":1200.0,"max":3600.0},{"current":2693.373,"min":1200.0,"max":3600.0},{"current":2697.174,"min":1200.0,"max":3600.0},{"current":2693.773,"min":1200.0,"max":3600.0},{"current":2739.252,"min":1200.0,"max":3600.0},{"current":2693.702,"min":1200.0,"max":3600.0},{"current":2682.066,"min":1200.0,"max":3600.0},{"current":2708.205,"min":1200.0,"max":3600.0},{"current":2750.059,"min":1200.0,"max":3600.0},{"current":2696.588,"min":1200.0,"max":3600.0},{"current":2697.637,"min":1200.0,"max":3600.0},{"current":2756.628,"min":1200.0,"max":3600.0},{"current":2694.888,"min":1200.0,"max":3600.0},{"current":2688.054,"min":1200.0,"max":3600.0},{"current":2695.031,"min":1200.0,"max":3600.0},{"current":2695.36,"min":1200.0,"max":3600.0},{"current":2765.318,"min":1200.0,"max":3600.0},{"current":2773.918,"min":1200.0,"max":3600.0},{"current":2754.909,"min":1200.0,"max":3600.0}],"disk_write_speed":72.12706769677948,"process_ids":[2113736,2113939]} +{"timestamp":1678268519.704203,"rapl_power_draw_absolute":167.65337530133945,"rapl_estimated_attributable_power_draw":8.409608261617187,"cpu_time_seconds":{"2113736":{"user":1323.59,"system":258.62,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":21.51,"system":31.29,"children_user":9.16,"children_system":315.13,"iowait":33.09}},"average_relative_cpu_utilization":0.05717258103451831,"absolute_cpu_utilization":0.9987329263735721,"relative_mem_usage":0.016437134896680007,"absolute_mem_usage":3394208768.0,"absolute_mem_percent_usage":0.006274776716555805,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929868800,"pss":3092717568,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":901.8599999999999,"nvidia_estimated_attributable_power_draw":263.77,"average_gpu_estimated_utilization_absolute":0.21,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":4.5,"mem":2.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":24.0,"mem":13.666666666666666,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":21.0,"mem":14.333333333333334,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":263.77},"cpu_count_adjusted_average_load":[0.23725000000000002,0.232875,0.22925],"cpu_freq":[{"current":2701.447,"min":1200.0,"max":3600.0},{"current":2696.924,"min":1200.0,"max":3600.0},{"current":2850.585,"min":1200.0,"max":3600.0},{"current":2721.114,"min":1200.0,"max":3600.0},{"current":2762.647,"min":1200.0,"max":3600.0},{"current":2696.764,"min":1200.0,"max":3600.0},{"current":2847.618,"min":1200.0,"max":3600.0},{"current":2698.473,"min":1200.0,"max":3600.0},{"current":2702.619,"min":1200.0,"max":3600.0},{"current":2697.902,"min":1200.0,"max":3600.0},{"current":2749.839,"min":1200.0,"max":3600.0},{"current":2694.635,"min":1200.0,"max":3600.0},{"current":2729.92,"min":1200.0,"max":3600.0},{"current":2696.786,"min":1200.0,"max":3600.0},{"current":2696.241,"min":1200.0,"max":3600.0},{"current":2842.874,"min":1200.0,"max":3600.0},{"current":2697.527,"min":1200.0,"max":3600.0},{"current":2697.746,"min":1200.0,"max":3600.0},{"current":2697.849,"min":1200.0,"max":3600.0},{"current":2692.6,"min":1200.0,"max":3600.0},{"current":2779.342,"min":1200.0,"max":3600.0},{"current":2695.838,"min":1200.0,"max":3600.0},{"current":2697.839,"min":1200.0,"max":3600.0},{"current":2695.311,"min":1200.0,"max":3600.0},{"current":2697.47,"min":1200.0,"max":3600.0},{"current":2696.89,"min":1200.0,"max":3600.0},{"current":2693.797,"min":1200.0,"max":3600.0},{"current":2680.869,"min":1200.0,"max":3600.0},{"current":2694.971,"min":1200.0,"max":3600.0},{"current":2694.794,"min":1200.0,"max":3600.0},{"current":2696.82,"min":1200.0,"max":3600.0},{"current":2696.424,"min":1200.0,"max":3600.0},{"current":2727.125,"min":1200.0,"max":3600.0},{"current":2755.051,"min":1200.0,"max":3600.0},{"current":2693.887,"min":1200.0,"max":3600.0},{"current":2697.482,"min":1200.0,"max":3600.0},{"current":2698.533,"min":1200.0,"max":3600.0},{"current":2696.814,"min":1200.0,"max":3600.0},{"current":2637.682,"min":1200.0,"max":3600.0},{"current":2697.924,"min":1200.0,"max":3600.0},{"current":2723.462,"min":1200.0,"max":3600.0},{"current":2694.834,"min":1200.0,"max":3600.0},{"current":2835.811,"min":1200.0,"max":3600.0},{"current":2844.938,"min":1200.0,"max":3600.0},{"current":2815.931,"min":1200.0,"max":3600.0},{"current":2861.195,"min":1200.0,"max":3600.0},{"current":2666.029,"min":1200.0,"max":3600.0},{"current":2695.273,"min":1200.0,"max":3600.0},{"current":2696.01,"min":1200.0,"max":3600.0},{"current":2694.321,"min":1200.0,"max":3600.0},{"current":2694.683,"min":1200.0,"max":3600.0},{"current":2842.182,"min":1200.0,"max":3600.0},{"current":2725.188,"min":1200.0,"max":3600.0},{"current":2704.765,"min":1200.0,"max":3600.0},{"current":2695.241,"min":1200.0,"max":3600.0},{"current":2853.275,"min":1200.0,"max":3600.0},{"current":2694.61,"min":1200.0,"max":3600.0},{"current":2695.108,"min":1200.0,"max":3600.0},{"current":2693.844,"min":1200.0,"max":3600.0},{"current":2832.501,"min":1200.0,"max":3600.0},{"current":2727.088,"min":1200.0,"max":3600.0},{"current":2696.583,"min":1200.0,"max":3600.0},{"current":2694.226,"min":1200.0,"max":3600.0},{"current":2694.012,"min":1200.0,"max":3600.0},{"current":2708.323,"min":1200.0,"max":3600.0},{"current":2745.902,"min":1200.0,"max":3600.0},{"current":2695.019,"min":1200.0,"max":3600.0},{"current":2625.663,"min":1200.0,"max":3600.0},{"current":2696.856,"min":1200.0,"max":3600.0},{"current":2698.788,"min":1200.0,"max":3600.0},{"current":2698.036,"min":1200.0,"max":3600.0},{"current":2693.918,"min":1200.0,"max":3600.0},{"current":2768.41,"min":1200.0,"max":3600.0},{"current":2791.98,"min":1200.0,"max":3600.0},{"current":2812.547,"min":1200.0,"max":3600.0},{"current":2703.571,"min":1200.0,"max":3600.0},{"current":2695.259,"min":1200.0,"max":3600.0},{"current":2787.26,"min":1200.0,"max":3600.0},{"current":2779.102,"min":1200.0,"max":3600.0},{"current":2754.627,"min":1200.0,"max":3600.0}],"disk_write_speed":72.07501150632814,"process_ids":[2113736,2113939]} +{"timestamp":1678268535.276234,"rapl_power_draw_absolute":167.11534077468437,"rapl_estimated_attributable_power_draw":8.406152954143769,"cpu_time_seconds":{"2113736":{"user":1336.68,"system":261.08,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":21.71,"system":31.63,"children_user":9.23,"children_system":318.3,"iowait":33.44}},"average_relative_cpu_utilization":0.05729648109932058,"absolute_cpu_utilization":0.9940185335735094,"relative_mem_usage":0.016452198010140015,"absolute_mem_usage":3394206720.0,"absolute_mem_percent_usage":0.0062747729304767534,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929868800,"pss":3092715520,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":611.35,"nvidia_estimated_attributable_power_draw":199.93,"average_gpu_estimated_utilization_absolute":0.25666666666666665,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":16.0,"mem":10.2,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.333333333333333,"mem":3.6666666666666665,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":17.0,"mem":9.5,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.666666666666668,"mem":17.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":199.93},"cpu_count_adjusted_average_load":[0.236375,0.232875,0.22925],"cpu_freq":[{"current":2694.227,"min":1200.0,"max":3600.0},{"current":2695.338,"min":1200.0,"max":3600.0},{"current":2696.556,"min":1200.0,"max":3600.0},{"current":2699.597,"min":1200.0,"max":3600.0},{"current":2692.268,"min":1200.0,"max":3600.0},{"current":2684.737,"min":1200.0,"max":3600.0},{"current":2753.954,"min":1200.0,"max":3600.0},{"current":2698.732,"min":1200.0,"max":3600.0},{"current":2698.924,"min":1200.0,"max":3600.0},{"current":2700.281,"min":1200.0,"max":3600.0},{"current":2696.435,"min":1200.0,"max":3600.0},{"current":2693.354,"min":1200.0,"max":3600.0},{"current":2697.54,"min":1200.0,"max":3600.0},{"current":2695.466,"min":1200.0,"max":3600.0},{"current":2746.028,"min":1200.0,"max":3600.0},{"current":2749.343,"min":1200.0,"max":3600.0},{"current":2694.717,"min":1200.0,"max":3600.0},{"current":2695.707,"min":1200.0,"max":3600.0},{"current":2697.143,"min":1200.0,"max":3600.0},{"current":2691.488,"min":1200.0,"max":3600.0},{"current":2762.808,"min":1200.0,"max":3600.0},{"current":2696.987,"min":1200.0,"max":3600.0},{"current":2697.456,"min":1200.0,"max":3600.0},{"current":2695.032,"min":1200.0,"max":3600.0},{"current":2696.157,"min":1200.0,"max":3600.0},{"current":2638.953,"min":1200.0,"max":3600.0},{"current":2695.683,"min":1200.0,"max":3600.0},{"current":2738.298,"min":1200.0,"max":3600.0},{"current":2696.574,"min":1200.0,"max":3600.0},{"current":2694.281,"min":1200.0,"max":3600.0},{"current":2695.308,"min":1200.0,"max":3600.0},{"current":2694.113,"min":1200.0,"max":3600.0},{"current":2660.263,"min":1200.0,"max":3600.0},{"current":2697.187,"min":1200.0,"max":3600.0},{"current":2724.345,"min":1200.0,"max":3600.0},{"current":2699.184,"min":1200.0,"max":3600.0},{"current":2698.385,"min":1200.0,"max":3600.0},{"current":2695.866,"min":1200.0,"max":3600.0},{"current":2695.054,"min":1200.0,"max":3600.0},{"current":2630.197,"min":1200.0,"max":3600.0},{"current":2697.315,"min":1200.0,"max":3600.0},{"current":2696.687,"min":1200.0,"max":3600.0},{"current":2675.902,"min":1200.0,"max":3600.0},{"current":2716.948,"min":1200.0,"max":3600.0},{"current":2707.312,"min":1200.0,"max":3600.0},{"current":2724.393,"min":1200.0,"max":3600.0},{"current":2695.638,"min":1200.0,"max":3600.0},{"current":2743.81,"min":1200.0,"max":3600.0},{"current":2694.19,"min":1200.0,"max":3600.0},{"current":2694.619,"min":1200.0,"max":3600.0},{"current":2695.147,"min":1200.0,"max":3600.0},{"current":2746.95,"min":1200.0,"max":3600.0},{"current":2694.012,"min":1200.0,"max":3600.0},{"current":2695.819,"min":1200.0,"max":3600.0},{"current":2693.811,"min":1200.0,"max":3600.0},{"current":2690.589,"min":1200.0,"max":3600.0},{"current":2701.88,"min":1200.0,"max":3600.0},{"current":2697.04,"min":1200.0,"max":3600.0},{"current":2698.02,"min":1200.0,"max":3600.0},{"current":2715.646,"min":1200.0,"max":3600.0},{"current":2695.516,"min":1200.0,"max":3600.0},{"current":2697.599,"min":1200.0,"max":3600.0},{"current":2695.324,"min":1200.0,"max":3600.0},{"current":2694.579,"min":1200.0,"max":3600.0},{"current":2695.051,"min":1200.0,"max":3600.0},{"current":2778.055,"min":1200.0,"max":3600.0},{"current":2695.272,"min":1200.0,"max":3600.0},{"current":2624.157,"min":1200.0,"max":3600.0},{"current":2692.552,"min":1200.0,"max":3600.0},{"current":2695.497,"min":1200.0,"max":3600.0},{"current":2696.103,"min":1200.0,"max":3600.0},{"current":2695.444,"min":1200.0,"max":3600.0},{"current":2771.615,"min":1200.0,"max":3600.0},{"current":2782.66,"min":1200.0,"max":3600.0},{"current":2761.724,"min":1200.0,"max":3600.0},{"current":2694.018,"min":1200.0,"max":3600.0},{"current":2695.031,"min":1200.0,"max":3600.0},{"current":2775.637,"min":1200.0,"max":3600.0},{"current":2765.37,"min":1200.0,"max":3600.0},{"current":2762.673,"min":1200.0,"max":3600.0}],"disk_write_speed":71.87480227817431,"process_ids":[2113736,2113939]} +{"timestamp":1678268551.056191,"rapl_power_draw_absolute":166.0159793853008,"rapl_estimated_attributable_power_draw":8.446149893115022,"cpu_time_seconds":{"2113736":{"user":1349.92,"system":263.63,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":21.93,"system":31.95,"children_user":9.31,"children_system":321.5,"iowait":33.78}},"average_relative_cpu_utilization":0.05803575876527472,"absolute_cpu_utilization":0.9987381731897028,"relative_mem_usage":0.016464323388538732,"absolute_mem_usage":3394207744.0,"absolute_mem_percent_usage":0.006274774823516279,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929868800,"pss":3092716544,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":655.9200000000001,"nvidia_estimated_attributable_power_draw":249.87,"average_gpu_estimated_utilization_absolute":0.2625,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":9.666666666666666,"mem":6.333333333333333,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":26.25,"mem":17.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":249.87},"cpu_count_adjusted_average_load":[0.232875,0.23224999999999998,0.22912499999999997],"cpu_freq":[{"current":2694.751,"min":1200.0,"max":3600.0},{"current":2696.293,"min":1200.0,"max":3600.0},{"current":2691.89,"min":1200.0,"max":3600.0},{"current":2661.782,"min":1200.0,"max":3600.0},{"current":2827.583,"min":1200.0,"max":3600.0},{"current":2698.895,"min":1200.0,"max":3600.0},{"current":2850.816,"min":1200.0,"max":3600.0},{"current":2697.133,"min":1200.0,"max":3600.0},{"current":2694.572,"min":1200.0,"max":3600.0},{"current":2699.005,"min":1200.0,"max":3600.0},{"current":2724.277,"min":1200.0,"max":3600.0},{"current":2693.131,"min":1200.0,"max":3600.0},{"current":2695.364,"min":1200.0,"max":3600.0},{"current":2699.03,"min":1200.0,"max":3600.0},{"current":2701.995,"min":1200.0,"max":3600.0},{"current":2845.121,"min":1200.0,"max":3600.0},{"current":2693.835,"min":1200.0,"max":3600.0},{"current":2693.903,"min":1200.0,"max":3600.0},{"current":2696.938,"min":1200.0,"max":3600.0},{"current":2693.04,"min":1200.0,"max":3600.0},{"current":2693.748,"min":1200.0,"max":3600.0},{"current":2697.037,"min":1200.0,"max":3600.0},{"current":2697.015,"min":1200.0,"max":3600.0},{"current":2695.082,"min":1200.0,"max":3600.0},{"current":2695.316,"min":1200.0,"max":3600.0},{"current":2697.037,"min":1200.0,"max":3600.0},{"current":2696.824,"min":1200.0,"max":3600.0},{"current":2682.197,"min":1200.0,"max":3600.0},{"current":2699.013,"min":1200.0,"max":3600.0},{"current":2697.401,"min":1200.0,"max":3600.0},{"current":2703.64,"min":1200.0,"max":3600.0},{"current":2694.68,"min":1200.0,"max":3600.0},{"current":2631.154,"min":1200.0,"max":3600.0},{"current":2694.1,"min":1200.0,"max":3600.0},{"current":2699.672,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2701.045,"min":1200.0,"max":3600.0},{"current":2697.101,"min":1200.0,"max":3600.0},{"current":2683.697,"min":1200.0,"max":3600.0},{"current":2688.846,"min":1200.0,"max":3600.0},{"current":2714.837,"min":1200.0,"max":3600.0},{"current":2696.932,"min":1200.0,"max":3600.0},{"current":2800.757,"min":1200.0,"max":3600.0},{"current":2800.906,"min":1200.0,"max":3600.0},{"current":2746.037,"min":1200.0,"max":3600.0},{"current":2750.1,"min":1200.0,"max":3600.0},{"current":2695.909,"min":1200.0,"max":3600.0},{"current":2770.04,"min":1200.0,"max":3600.0},{"current":2742.956,"min":1200.0,"max":3600.0},{"current":2693.7,"min":1200.0,"max":3600.0},{"current":2727.791,"min":1200.0,"max":3600.0},{"current":2744.599,"min":1200.0,"max":3600.0},{"current":2694.814,"min":1200.0,"max":3600.0},{"current":2696.172,"min":1200.0,"max":3600.0},{"current":2694.049,"min":1200.0,"max":3600.0},{"current":2758.379,"min":1200.0,"max":3600.0},{"current":2816.184,"min":1200.0,"max":3600.0},{"current":2693.886,"min":1200.0,"max":3600.0},{"current":2705.731,"min":1200.0,"max":3600.0},{"current":2825.413,"min":1200.0,"max":3600.0},{"current":2693.819,"min":1200.0,"max":3600.0},{"current":2693.834,"min":1200.0,"max":3600.0},{"current":2696.109,"min":1200.0,"max":3600.0},{"current":2695.0,"min":1200.0,"max":3600.0},{"current":2695.201,"min":1200.0,"max":3600.0},{"current":2695.011,"min":1200.0,"max":3600.0},{"current":2696.372,"min":1200.0,"max":3600.0},{"current":2693.659,"min":1200.0,"max":3600.0},{"current":2693.813,"min":1200.0,"max":3600.0},{"current":2694.387,"min":1200.0,"max":3600.0},{"current":2694.052,"min":1200.0,"max":3600.0},{"current":2765.426,"min":1200.0,"max":3600.0},{"current":2781.3,"min":1200.0,"max":3600.0},{"current":2780.936,"min":1200.0,"max":3600.0},{"current":2771.557,"min":1200.0,"max":3600.0},{"current":2778.547,"min":1200.0,"max":3600.0},{"current":2694.487,"min":1200.0,"max":3600.0},{"current":2788.835,"min":1200.0,"max":3600.0},{"current":2779.478,"min":1200.0,"max":3600.0},{"current":2769.478,"min":1200.0,"max":3600.0}],"disk_write_speed":72.4264533547392,"process_ids":[2113736,2113939]} +{"timestamp":1678268566.868231,"rapl_power_draw_absolute":166.22291959258715,"rapl_estimated_attributable_power_draw":8.523605517903677,"cpu_time_seconds":{"2113736":{"user":1363.2,"system":266.17,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":22.15,"system":32.28,"children_user":9.38,"children_system":324.71,"iowait":34.13}},"average_relative_cpu_utilization":0.057883786391774356,"absolute_cpu_utilization":0.998715567590338,"relative_mem_usage":0.019382369727192317,"absolute_mem_usage":3996324864.0,"absolute_mem_percent_usage":0.007387891530076987,"mem_info_per_process":{"2113736":{"rss":3960008704,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3531984896,"pss":3694833664,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":486.77000000000004,"nvidia_estimated_attributable_power_draw":71.49,"average_gpu_estimated_utilization_absolute":0.23800000000000002,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.8,"mem":16.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":71.49},"cpu_count_adjusted_average_load":[0.22925,0.23149999999999998,0.229],"cpu_freq":[{"current":2694.623,"min":1200.0,"max":3600.0},{"current":2701.254,"min":1200.0,"max":3600.0},{"current":2679.04,"min":1200.0,"max":3600.0},{"current":2692.024,"min":1200.0,"max":3600.0},{"current":2837.757,"min":1200.0,"max":3600.0},{"current":2749.574,"min":1200.0,"max":3600.0},{"current":2788.316,"min":1200.0,"max":3600.0},{"current":2697.782,"min":1200.0,"max":3600.0},{"current":2764.908,"min":1200.0,"max":3600.0},{"current":2694.286,"min":1200.0,"max":3600.0},{"current":2702.966,"min":1200.0,"max":3600.0},{"current":2693.507,"min":1200.0,"max":3600.0},{"current":2703.239,"min":1200.0,"max":3600.0},{"current":2694.253,"min":1200.0,"max":3600.0},{"current":2699.993,"min":1200.0,"max":3600.0},{"current":2708.076,"min":1200.0,"max":3600.0},{"current":2693.32,"min":1200.0,"max":3600.0},{"current":2694.504,"min":1200.0,"max":3600.0},{"current":2694.64,"min":1200.0,"max":3600.0},{"current":2692.972,"min":1200.0,"max":3600.0},{"current":2694.047,"min":1200.0,"max":3600.0},{"current":2772.694,"min":1200.0,"max":3600.0},{"current":2698.807,"min":1200.0,"max":3600.0},{"current":2722.337,"min":1200.0,"max":3600.0},{"current":2695.311,"min":1200.0,"max":3600.0},{"current":2697.446,"min":1200.0,"max":3600.0},{"current":2695.04,"min":1200.0,"max":3600.0},{"current":2689.444,"min":1200.0,"max":3600.0},{"current":2701.452,"min":1200.0,"max":3600.0},{"current":2694.676,"min":1200.0,"max":3600.0},{"current":2694.568,"min":1200.0,"max":3600.0},{"current":2697.001,"min":1200.0,"max":3600.0},{"current":2695.57,"min":1200.0,"max":3600.0},{"current":2646.541,"min":1200.0,"max":3600.0},{"current":2634.604,"min":1200.0,"max":3600.0},{"current":2694.565,"min":1200.0,"max":3600.0},{"current":2696.395,"min":1200.0,"max":3600.0},{"current":2695.897,"min":1200.0,"max":3600.0},{"current":2697.031,"min":1200.0,"max":3600.0},{"current":2693.533,"min":1200.0,"max":3600.0},{"current":2694.299,"min":1200.0,"max":3600.0},{"current":2693.552,"min":1200.0,"max":3600.0},{"current":2754.971,"min":1200.0,"max":3600.0},{"current":2734.014,"min":1200.0,"max":3600.0},{"current":2632.299,"min":1200.0,"max":3600.0},{"current":2698.005,"min":1200.0,"max":3600.0},{"current":2790.075,"min":1200.0,"max":3600.0},{"current":2704.442,"min":1200.0,"max":3600.0},{"current":2694.312,"min":1200.0,"max":3600.0},{"current":2694.061,"min":1200.0,"max":3600.0},{"current":2694.476,"min":1200.0,"max":3600.0},{"current":2757.339,"min":1200.0,"max":3600.0},{"current":2694.007,"min":1200.0,"max":3600.0},{"current":2694.343,"min":1200.0,"max":3600.0},{"current":2693.972,"min":1200.0,"max":3600.0},{"current":2782.439,"min":1200.0,"max":3600.0},{"current":2751.232,"min":1200.0,"max":3600.0},{"current":2694.55,"min":1200.0,"max":3600.0},{"current":2694.086,"min":1200.0,"max":3600.0},{"current":2723.714,"min":1200.0,"max":3600.0},{"current":2698.504,"min":1200.0,"max":3600.0},{"current":2786.72,"min":1200.0,"max":3600.0},{"current":2693.963,"min":1200.0,"max":3600.0},{"current":2697.019,"min":1200.0,"max":3600.0},{"current":2695.917,"min":1200.0,"max":3600.0},{"current":2695.736,"min":1200.0,"max":3600.0},{"current":2697.301,"min":1200.0,"max":3600.0},{"current":2694.827,"min":1200.0,"max":3600.0},{"current":2694.876,"min":1200.0,"max":3600.0},{"current":2696.263,"min":1200.0,"max":3600.0},{"current":2695.751,"min":1200.0,"max":3600.0},{"current":2694.599,"min":1200.0,"max":3600.0},{"current":2783.492,"min":1200.0,"max":3600.0},{"current":2760.255,"min":1200.0,"max":3600.0},{"current":2750.463,"min":1200.0,"max":3600.0},{"current":2782.352,"min":1200.0,"max":3600.0},{"current":2697.318,"min":1200.0,"max":3600.0},{"current":2773.426,"min":1200.0,"max":3600.0},{"current":2694.912,"min":1200.0,"max":3600.0},{"current":2716.242,"min":1200.0,"max":3600.0}],"disk_write_speed":72.9568654957344,"process_ids":[2113736,2113939]} +{"timestamp":1678268582.680203,"rapl_power_draw_absolute":167.1268560395343,"rapl_estimated_attributable_power_draw":8.39851169681994,"cpu_time_seconds":{"2113736":{"user":1376.51,"system":268.65,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":22.35,"system":32.64,"children_user":9.44,"children_system":327.93,"iowait":34.47}},"average_relative_cpu_utilization":0.05662257604842655,"absolute_cpu_utilization":0.998741968526238,"relative_mem_usage":0.01936494973279804,"absolute_mem_usage":3996324864.0,"absolute_mem_percent_usage":0.007387891530076987,"mem_info_per_process":{"2113736":{"rss":3942166528,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3531984896,"pss":3694833664,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":646.2800000000001,"nvidia_estimated_attributable_power_draw":229.08,"average_gpu_estimated_utilization_absolute":0.32,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":19.75,"mem":12.5,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":5.0,"mem":3.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":32.0,"mem":22.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":229.08},"cpu_count_adjusted_average_load":[0.230875,0.23174999999999998,0.22912499999999997],"cpu_freq":[{"current":2694.459,"min":1200.0,"max":3600.0},{"current":2700.182,"min":1200.0,"max":3600.0},{"current":2697.102,"min":1200.0,"max":3600.0},{"current":2673.799,"min":1200.0,"max":3600.0},{"current":2745.4,"min":1200.0,"max":3600.0},{"current":2701.879,"min":1200.0,"max":3600.0},{"current":2707.188,"min":1200.0,"max":3600.0},{"current":2698.637,"min":1200.0,"max":3600.0},{"current":2697.486,"min":1200.0,"max":3600.0},{"current":2694.344,"min":1200.0,"max":3600.0},{"current":2739.736,"min":1200.0,"max":3600.0},{"current":2695.785,"min":1200.0,"max":3600.0},{"current":2701.179,"min":1200.0,"max":3600.0},{"current":2698.713,"min":1200.0,"max":3600.0},{"current":2695.263,"min":1200.0,"max":3600.0},{"current":2698.207,"min":1200.0,"max":3600.0},{"current":2825.57,"min":1200.0,"max":3600.0},{"current":2844.922,"min":1200.0,"max":3600.0},{"current":2694.872,"min":1200.0,"max":3600.0},{"current":2691.531,"min":1200.0,"max":3600.0},{"current":2695.571,"min":1200.0,"max":3600.0},{"current":2791.189,"min":1200.0,"max":3600.0},{"current":2696.155,"min":1200.0,"max":3600.0},{"current":2697.55,"min":1200.0,"max":3600.0},{"current":2697.063,"min":1200.0,"max":3600.0},{"current":2697.191,"min":1200.0,"max":3600.0},{"current":2695.62,"min":1200.0,"max":3600.0},{"current":2793.708,"min":1200.0,"max":3600.0},{"current":2695.647,"min":1200.0,"max":3600.0},{"current":2694.668,"min":1200.0,"max":3600.0},{"current":2694.978,"min":1200.0,"max":3600.0},{"current":2697.487,"min":1200.0,"max":3600.0},{"current":2638.31,"min":1200.0,"max":3600.0},{"current":2771.958,"min":1200.0,"max":3600.0},{"current":2693.336,"min":1200.0,"max":3600.0},{"current":2695.426,"min":1200.0,"max":3600.0},{"current":2695.74,"min":1200.0,"max":3600.0},{"current":2784.11,"min":1200.0,"max":3600.0},{"current":2733.95,"min":1200.0,"max":3600.0},{"current":2794.141,"min":1200.0,"max":3600.0},{"current":2743.458,"min":1200.0,"max":3600.0},{"current":2696.367,"min":1200.0,"max":3600.0},{"current":2835.388,"min":1200.0,"max":3600.0},{"current":2810.558,"min":1200.0,"max":3600.0},{"current":2962.751,"min":1200.0,"max":3600.0},{"current":2886.395,"min":1200.0,"max":3600.0},{"current":2792.561,"min":1200.0,"max":3600.0},{"current":2695.454,"min":1200.0,"max":3600.0},{"current":2696.335,"min":1200.0,"max":3600.0},{"current":2736.964,"min":1200.0,"max":3600.0},{"current":2694.601,"min":1200.0,"max":3600.0},{"current":2839.035,"min":1200.0,"max":3600.0},{"current":2695.202,"min":1200.0,"max":3600.0},{"current":2694.421,"min":1200.0,"max":3600.0},{"current":2696.486,"min":1200.0,"max":3600.0},{"current":2707.995,"min":1200.0,"max":3600.0},{"current":2803.14,"min":1200.0,"max":3600.0},{"current":2693.088,"min":1200.0,"max":3600.0},{"current":2764.637,"min":1200.0,"max":3600.0},{"current":2774.164,"min":1200.0,"max":3600.0},{"current":2696.939,"min":1200.0,"max":3600.0},{"current":2683.051,"min":1200.0,"max":3600.0},{"current":2693.333,"min":1200.0,"max":3600.0},{"current":2693.832,"min":1200.0,"max":3600.0},{"current":2695.228,"min":1200.0,"max":3600.0},{"current":2694.513,"min":1200.0,"max":3600.0},{"current":2697.157,"min":1200.0,"max":3600.0},{"current":2693.54,"min":1200.0,"max":3600.0},{"current":2692.918,"min":1200.0,"max":3600.0},{"current":2694.202,"min":1200.0,"max":3600.0},{"current":2696.705,"min":1200.0,"max":3600.0},{"current":2694.948,"min":1200.0,"max":3600.0},{"current":2778.223,"min":1200.0,"max":3600.0},{"current":2741.002,"min":1200.0,"max":3600.0},{"current":2702.989,"min":1200.0,"max":3600.0},{"current":2747.735,"min":1200.0,"max":3600.0},{"current":2717.63,"min":1200.0,"max":3600.0},{"current":2784.162,"min":1200.0,"max":3600.0},{"current":2783.681,"min":1200.0,"max":3600.0},{"current":2782.105,"min":1200.0,"max":3600.0}],"disk_write_speed":69.78490370866166,"process_ids":[2113736,2113939]} +{"timestamp":1678268598.616223,"rapl_power_draw_absolute":166.75823043111663,"rapl_estimated_attributable_power_draw":8.546881074747,"cpu_time_seconds":{"2113736":{"user":1390.01,"system":271.1,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":22.57,"system":32.97,"children_user":9.55,"children_system":331.09,"iowait":34.81}},"average_relative_cpu_utilization":0.057855851189978984,"absolute_cpu_utilization":1.0037223071599122,"relative_mem_usage":0.01937642181817922,"absolute_mem_usage":3996324864.0,"absolute_mem_percent_usage":0.007387891530076987,"mem_info_per_process":{"2113736":{"rss":3959930880,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3531984896,"pss":3694833664,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":478.6600000000001,"nvidia_estimated_attributable_power_draw":71.54,"average_gpu_estimated_utilization_absolute":0.258,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":7.5,"mem":4.5,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.5,"mem":5.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.8,"mem":17.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":71.54},"cpu_count_adjusted_average_load":[0.23537499999999997,0.23275,0.22949999999999998],"cpu_freq":[{"current":2697.588,"min":1200.0,"max":3600.0},{"current":2710.167,"min":1200.0,"max":3600.0},{"current":2659.43,"min":1200.0,"max":3600.0},{"current":2662.562,"min":1200.0,"max":3600.0},{"current":2839.672,"min":1200.0,"max":3600.0},{"current":2697.26,"min":1200.0,"max":3600.0},{"current":2712.565,"min":1200.0,"max":3600.0},{"current":2873.121,"min":1200.0,"max":3600.0},{"current":2710.386,"min":1200.0,"max":3600.0},{"current":2695.217,"min":1200.0,"max":3600.0},{"current":2703.184,"min":1200.0,"max":3600.0},{"current":2664.138,"min":1200.0,"max":3600.0},{"current":2701.141,"min":1200.0,"max":3600.0},{"current":2695.835,"min":1200.0,"max":3600.0},{"current":2698.225,"min":1200.0,"max":3600.0},{"current":2735.65,"min":1200.0,"max":3600.0},{"current":2612.594,"min":1200.0,"max":3600.0},{"current":2696.572,"min":1200.0,"max":3600.0},{"current":2818.848,"min":1200.0,"max":3600.0},{"current":2694.66,"min":1200.0,"max":3600.0},{"current":2697.827,"min":1200.0,"max":3600.0},{"current":2779.597,"min":1200.0,"max":3600.0},{"current":2697.943,"min":1200.0,"max":3600.0},{"current":2698.57,"min":1200.0,"max":3600.0},{"current":2695.54,"min":1200.0,"max":3600.0},{"current":2701.678,"min":1200.0,"max":3600.0},{"current":2693.827,"min":1200.0,"max":3600.0},{"current":2695.466,"min":1200.0,"max":3600.0},{"current":2697.725,"min":1200.0,"max":3600.0},{"current":2700.69,"min":1200.0,"max":3600.0},{"current":2693.818,"min":1200.0,"max":3600.0},{"current":2696.486,"min":1200.0,"max":3600.0},{"current":2691.274,"min":1200.0,"max":3600.0},{"current":2691.77,"min":1200.0,"max":3600.0},{"current":2694.153,"min":1200.0,"max":3600.0},{"current":2695.716,"min":1200.0,"max":3600.0},{"current":2694.453,"min":1200.0,"max":3600.0},{"current":2694.12,"min":1200.0,"max":3600.0},{"current":2638.207,"min":1200.0,"max":3600.0},{"current":2656.944,"min":1200.0,"max":3600.0},{"current":2696.405,"min":1200.0,"max":3600.0},{"current":2694.309,"min":1200.0,"max":3600.0},{"current":2738.58,"min":1200.0,"max":3600.0},{"current":2760.842,"min":1200.0,"max":3600.0},{"current":2678.869,"min":1200.0,"max":3600.0},{"current":2769.881,"min":1200.0,"max":3600.0},{"current":2694.371,"min":1200.0,"max":3600.0},{"current":2771.0,"min":1200.0,"max":3600.0},{"current":2695.694,"min":1200.0,"max":3600.0},{"current":2739.684,"min":1200.0,"max":3600.0},{"current":2693.549,"min":1200.0,"max":3600.0},{"current":2748.642,"min":1200.0,"max":3600.0},{"current":2694.717,"min":1200.0,"max":3600.0},{"current":2695.121,"min":1200.0,"max":3600.0},{"current":2695.464,"min":1200.0,"max":3600.0},{"current":2694.007,"min":1200.0,"max":3600.0},{"current":2753.006,"min":1200.0,"max":3600.0},{"current":2693.318,"min":1200.0,"max":3600.0},{"current":2695.005,"min":1200.0,"max":3600.0},{"current":2764.091,"min":1200.0,"max":3600.0},{"current":2695.42,"min":1200.0,"max":3600.0},{"current":2691.73,"min":1200.0,"max":3600.0},{"current":2697.169,"min":1200.0,"max":3600.0},{"current":2694.178,"min":1200.0,"max":3600.0},{"current":2697.205,"min":1200.0,"max":3600.0},{"current":2694.347,"min":1200.0,"max":3600.0},{"current":2695.148,"min":1200.0,"max":3600.0},{"current":2693.767,"min":1200.0,"max":3600.0},{"current":2694.02,"min":1200.0,"max":3600.0},{"current":2694.794,"min":1200.0,"max":3600.0},{"current":2697.406,"min":1200.0,"max":3600.0},{"current":2695.188,"min":1200.0,"max":3600.0},{"current":2767.855,"min":1200.0,"max":3600.0},{"current":2769.167,"min":1200.0,"max":3600.0},{"current":2755.709,"min":1200.0,"max":3600.0},{"current":2751.611,"min":1200.0,"max":3600.0},{"current":2697.246,"min":1200.0,"max":3600.0},{"current":2782.957,"min":1200.0,"max":3600.0},{"current":2750.606,"min":1200.0,"max":3600.0},{"current":2758.224,"min":1200.0,"max":3600.0}],"disk_write_speed":71.92064267770948,"process_ids":[2113736,2113939]} +{"timestamp":1678268614.212237,"rapl_power_draw_absolute":167.12059642438817,"rapl_estimated_attributable_power_draw":8.471844779807201,"cpu_time_seconds":{"2113736":{"user":1403.17,"system":273.53,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":22.76,"system":33.33,"children_user":9.63,"children_system":334.24,"iowait":35.15}},"average_relative_cpu_utilization":0.05729427831016502,"absolute_cpu_utilization":1.0040209657404995,"relative_mem_usage":0.01894427887071962,"absolute_mem_usage":3920577536.0,"absolute_mem_percent_usage":0.00724785961025027,"mem_info_per_process":{"2113736":{"rss":3853783040,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3456237568,"pss":3619086336,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":487.31000000000006,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.135,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":11.0,"mem":6.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":25.0,"mem":14.666666666666666,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":13.5,"mem":7.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23775,0.23337500000000003,0.22974999999999998],"cpu_freq":[{"current":2700.575,"min":1200.0,"max":3600.0},{"current":2753.491,"min":1200.0,"max":3600.0},{"current":2742.427,"min":1200.0,"max":3600.0},{"current":2696.476,"min":1200.0,"max":3600.0},{"current":2696.984,"min":1200.0,"max":3600.0},{"current":2816.044,"min":1200.0,"max":3600.0},{"current":2695.822,"min":1200.0,"max":3600.0},{"current":2858.712,"min":1200.0,"max":3600.0},{"current":2697.112,"min":1200.0,"max":3600.0},{"current":2706.762,"min":1200.0,"max":3600.0},{"current":2695.742,"min":1200.0,"max":3600.0},{"current":2688.997,"min":1200.0,"max":3600.0},{"current":2698.598,"min":1200.0,"max":3600.0},{"current":2715.557,"min":1200.0,"max":3600.0},{"current":2698.51,"min":1200.0,"max":3600.0},{"current":2694.133,"min":1200.0,"max":3600.0},{"current":2698.294,"min":1200.0,"max":3600.0},{"current":2702.732,"min":1200.0,"max":3600.0},{"current":2833.255,"min":1200.0,"max":3600.0},{"current":2697.895,"min":1200.0,"max":3600.0},{"current":2697.336,"min":1200.0,"max":3600.0},{"current":2691.357,"min":1200.0,"max":3600.0},{"current":2695.7,"min":1200.0,"max":3600.0},{"current":2697.712,"min":1200.0,"max":3600.0},{"current":2702.301,"min":1200.0,"max":3600.0},{"current":2696.355,"min":1200.0,"max":3600.0},{"current":2694.626,"min":1200.0,"max":3600.0},{"current":2762.03,"min":1200.0,"max":3600.0},{"current":2697.438,"min":1200.0,"max":3600.0},{"current":2696.478,"min":1200.0,"max":3600.0},{"current":2695.552,"min":1200.0,"max":3600.0},{"current":2696.232,"min":1200.0,"max":3600.0},{"current":2722.456,"min":1200.0,"max":3600.0},{"current":2759.96,"min":1200.0,"max":3600.0},{"current":2786.442,"min":1200.0,"max":3600.0},{"current":2738.818,"min":1200.0,"max":3600.0},{"current":2697.761,"min":1200.0,"max":3600.0},{"current":2726.77,"min":1200.0,"max":3600.0},{"current":2724.651,"min":1200.0,"max":3600.0},{"current":2793.544,"min":1200.0,"max":3600.0},{"current":2696.108,"min":1200.0,"max":3600.0},{"current":2699.892,"min":1200.0,"max":3600.0},{"current":2811.288,"min":1200.0,"max":3600.0},{"current":2874.954,"min":1200.0,"max":3600.0},{"current":2694.175,"min":1200.0,"max":3600.0},{"current":2693.699,"min":1200.0,"max":3600.0},{"current":2694.1,"min":1200.0,"max":3600.0},{"current":2704.209,"min":1200.0,"max":3600.0},{"current":2694.444,"min":1200.0,"max":3600.0},{"current":2694.665,"min":1200.0,"max":3600.0},{"current":2695.191,"min":1200.0,"max":3600.0},{"current":2828.013,"min":1200.0,"max":3600.0},{"current":2697.407,"min":1200.0,"max":3600.0},{"current":2694.556,"min":1200.0,"max":3600.0},{"current":2694.549,"min":1200.0,"max":3600.0},{"current":2696.992,"min":1200.0,"max":3600.0},{"current":2694.922,"min":1200.0,"max":3600.0},{"current":2698.455,"min":1200.0,"max":3600.0},{"current":2695.85,"min":1200.0,"max":3600.0},{"current":2804.342,"min":1200.0,"max":3600.0},{"current":2695.752,"min":1200.0,"max":3600.0},{"current":2692.313,"min":1200.0,"max":3600.0},{"current":2693.76,"min":1200.0,"max":3600.0},{"current":2693.935,"min":1200.0,"max":3600.0},{"current":2693.49,"min":1200.0,"max":3600.0},{"current":2694.499,"min":1200.0,"max":3600.0},{"current":2693.815,"min":1200.0,"max":3600.0},{"current":2695.356,"min":1200.0,"max":3600.0},{"current":2695.194,"min":1200.0,"max":3600.0},{"current":2697.588,"min":1200.0,"max":3600.0},{"current":2695.677,"min":1200.0,"max":3600.0},{"current":2694.892,"min":1200.0,"max":3600.0},{"current":2684.84,"min":1200.0,"max":3600.0},{"current":2663.218,"min":1200.0,"max":3600.0},{"current":2689.954,"min":1200.0,"max":3600.0},{"current":2675.221,"min":1200.0,"max":3600.0},{"current":2694.244,"min":1200.0,"max":3600.0},{"current":2763.208,"min":1200.0,"max":3600.0},{"current":2775.494,"min":1200.0,"max":3600.0},{"current":2773.57,"min":1200.0,"max":3600.0}],"disk_write_speed":71.24725276021572,"process_ids":[2113736,2113939]} +{"timestamp":1678268629.660237,"rapl_power_draw_absolute":166.4892818227537,"rapl_estimated_attributable_power_draw":8.5448802011872,"cpu_time_seconds":{"2113736":{"user":1416.13,"system":276.03,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":22.95,"system":33.7,"children_user":9.73,"children_system":337.35,"iowait":35.49}},"average_relative_cpu_utilization":0.05824193163522086,"absolute_cpu_utilization":1.0037105513961755,"relative_mem_usage":0.017901425483046445,"absolute_mem_usage":3701269504.0,"absolute_mem_percent_usage":0.006842431121018557,"mem_info_per_process":{"2113736":{"rss":3639402496,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3236929536,"pss":3399778304,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":490.11,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.23199999999999998,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":13.0,"mem":8.25,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":4.0,"mem":2.3333333333333335,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":25.333333333333332,"mem":14.666666666666666,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.2,"mem":15.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23737499999999997,0.23362500000000003,0.229875],"cpu_freq":[{"current":2695.648,"min":1200.0,"max":3600.0},{"current":2829.13,"min":1200.0,"max":3600.0},{"current":2621.441,"min":1200.0,"max":3600.0},{"current":2626.002,"min":1200.0,"max":3600.0},{"current":2717.728,"min":1200.0,"max":3600.0},{"current":2806.997,"min":1200.0,"max":3600.0},{"current":2709.984,"min":1200.0,"max":3600.0},{"current":2855.35,"min":1200.0,"max":3600.0},{"current":2724.582,"min":1200.0,"max":3600.0},{"current":2694.948,"min":1200.0,"max":3600.0},{"current":2788.728,"min":1200.0,"max":3600.0},{"current":2694.728,"min":1200.0,"max":3600.0},{"current":2694.614,"min":1200.0,"max":3600.0},{"current":2695.396,"min":1200.0,"max":3600.0},{"current":2694.969,"min":1200.0,"max":3600.0},{"current":2699.648,"min":1200.0,"max":3600.0},{"current":2696.584,"min":1200.0,"max":3600.0},{"current":2696.756,"min":1200.0,"max":3600.0},{"current":2856.883,"min":1200.0,"max":3600.0},{"current":2630.378,"min":1200.0,"max":3600.0},{"current":2693.757,"min":1200.0,"max":3600.0},{"current":2694.474,"min":1200.0,"max":3600.0},{"current":2698.616,"min":1200.0,"max":3600.0},{"current":2697.268,"min":1200.0,"max":3600.0},{"current":2698.153,"min":1200.0,"max":3600.0},{"current":2695.021,"min":1200.0,"max":3600.0},{"current":2699.415,"min":1200.0,"max":3600.0},{"current":2765.941,"min":1200.0,"max":3600.0},{"current":2696.467,"min":1200.0,"max":3600.0},{"current":2694.878,"min":1200.0,"max":3600.0},{"current":2696.874,"min":1200.0,"max":3600.0},{"current":2695.223,"min":1200.0,"max":3600.0},{"current":2651.735,"min":1200.0,"max":3600.0},{"current":2692.25,"min":1200.0,"max":3600.0},{"current":2779.325,"min":1200.0,"max":3600.0},{"current":2694.604,"min":1200.0,"max":3600.0},{"current":2693.76,"min":1200.0,"max":3600.0},{"current":2698.722,"min":1200.0,"max":3600.0},{"current":2693.203,"min":1200.0,"max":3600.0},{"current":2694.18,"min":1200.0,"max":3600.0},{"current":2694.596,"min":1200.0,"max":3600.0},{"current":2710.627,"min":1200.0,"max":3600.0},{"current":2764.817,"min":1200.0,"max":3600.0},{"current":2765.553,"min":1200.0,"max":3600.0},{"current":2699.089,"min":1200.0,"max":3600.0},{"current":2693.738,"min":1200.0,"max":3600.0},{"current":2707.823,"min":1200.0,"max":3600.0},{"current":2853.357,"min":1200.0,"max":3600.0},{"current":2697.527,"min":1200.0,"max":3600.0},{"current":2695.391,"min":1200.0,"max":3600.0},{"current":2693.793,"min":1200.0,"max":3600.0},{"current":2770.361,"min":1200.0,"max":3600.0},{"current":2694.267,"min":1200.0,"max":3600.0},{"current":2695.415,"min":1200.0,"max":3600.0},{"current":2696.353,"min":1200.0,"max":3600.0},{"current":2687.984,"min":1200.0,"max":3600.0},{"current":2694.067,"min":1200.0,"max":3600.0},{"current":2694.093,"min":1200.0,"max":3600.0},{"current":2690.925,"min":1200.0,"max":3600.0},{"current":2704.921,"min":1200.0,"max":3600.0},{"current":2694.551,"min":1200.0,"max":3600.0},{"current":2696.115,"min":1200.0,"max":3600.0},{"current":2694.758,"min":1200.0,"max":3600.0},{"current":2693.884,"min":1200.0,"max":3600.0},{"current":2693.862,"min":1200.0,"max":3600.0},{"current":2693.97,"min":1200.0,"max":3600.0},{"current":2696.279,"min":1200.0,"max":3600.0},{"current":2694.215,"min":1200.0,"max":3600.0},{"current":2694.062,"min":1200.0,"max":3600.0},{"current":2696.147,"min":1200.0,"max":3600.0},{"current":2695.669,"min":1200.0,"max":3600.0},{"current":2694.651,"min":1200.0,"max":3600.0},{"current":2765.362,"min":1200.0,"max":3600.0},{"current":2716.623,"min":1200.0,"max":3600.0},{"current":2765.15,"min":1200.0,"max":3600.0},{"current":2759.195,"min":1200.0,"max":3600.0},{"current":2762.4,"min":1200.0,"max":3600.0},{"current":2773.02,"min":1200.0,"max":3600.0},{"current":2733.455,"min":1200.0,"max":3600.0},{"current":2765.151,"min":1200.0,"max":3600.0}],"disk_write_speed":72.55577082756712,"process_ids":[2113736,2113939]} +{"timestamp":1678268645.316226,"rapl_power_draw_absolute":167.90766456014904,"rapl_estimated_attributable_power_draw":8.219768978372798,"cpu_time_seconds":{"2113736":{"user":1429.21,"system":278.6,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":23.16,"system":34.03,"children_user":9.83,"children_system":340.49,"iowait":35.84}},"average_relative_cpu_utilization":0.05550649928493329,"absolute_cpu_utilization":0.9990047185611236,"relative_mem_usage":0.017521940075788212,"absolute_mem_usage":3619998720.0,"absolute_mem_percent_usage":0.006692188145987907,"mem_info_per_process":{"2113736":{"rss":3556364288,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3155660800,"pss":3318507520,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":641.7800000000001,"nvidia_estimated_attributable_power_draw":69.95,"average_gpu_estimated_utilization_absolute":0.2366666666666667,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":10.333333333333334,"mem":6.333333333333333,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":8.25,"mem":5.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.666666666666668,"mem":15.666666666666666,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.95},"cpu_count_adjusted_average_load":[0.2355,0.23337500000000003,0.229875],"cpu_freq":[{"current":2695.128,"min":1200.0,"max":3600.0},{"current":2857.12,"min":1200.0,"max":3600.0},{"current":2725.079,"min":1200.0,"max":3600.0},{"current":2681.407,"min":1200.0,"max":3600.0},{"current":2704.901,"min":1200.0,"max":3600.0},{"current":2848.543,"min":1200.0,"max":3600.0},{"current":2696.048,"min":1200.0,"max":3600.0},{"current":2833.34,"min":1200.0,"max":3600.0},{"current":2717.751,"min":1200.0,"max":3600.0},{"current":2695.344,"min":1200.0,"max":3600.0},{"current":2696.701,"min":1200.0,"max":3600.0},{"current":2835.34,"min":1200.0,"max":3600.0},{"current":2695.629,"min":1200.0,"max":3600.0},{"current":2695.989,"min":1200.0,"max":3600.0},{"current":2697.098,"min":1200.0,"max":3600.0},{"current":2697.009,"min":1200.0,"max":3600.0},{"current":2707.934,"min":1200.0,"max":3600.0},{"current":2697.395,"min":1200.0,"max":3600.0},{"current":2842.389,"min":1200.0,"max":3600.0},{"current":2625.112,"min":1200.0,"max":3600.0},{"current":2694.592,"min":1200.0,"max":3600.0},{"current":2702.98,"min":1200.0,"max":3600.0},{"current":2695.713,"min":1200.0,"max":3600.0},{"current":2695.513,"min":1200.0,"max":3600.0},{"current":2695.271,"min":1200.0,"max":3600.0},{"current":2695.545,"min":1200.0,"max":3600.0},{"current":2699.269,"min":1200.0,"max":3600.0},{"current":2754.186,"min":1200.0,"max":3600.0},{"current":2695.642,"min":1200.0,"max":3600.0},{"current":2697.764,"min":1200.0,"max":3600.0},{"current":2697.041,"min":1200.0,"max":3600.0},{"current":2695.309,"min":1200.0,"max":3600.0},{"current":2681.449,"min":1200.0,"max":3600.0},{"current":2693.396,"min":1200.0,"max":3600.0},{"current":2695.014,"min":1200.0,"max":3600.0},{"current":2693.767,"min":1200.0,"max":3600.0},{"current":2693.925,"min":1200.0,"max":3600.0},{"current":2794.652,"min":1200.0,"max":3600.0},{"current":2766.115,"min":1200.0,"max":3600.0},{"current":2695.51,"min":1200.0,"max":3600.0},{"current":2725.471,"min":1200.0,"max":3600.0},{"current":2657.23,"min":1200.0,"max":3600.0},{"current":2851.982,"min":1200.0,"max":3600.0},{"current":2828.672,"min":1200.0,"max":3600.0},{"current":2694.636,"min":1200.0,"max":3600.0},{"current":2693.734,"min":1200.0,"max":3600.0},{"current":2702.785,"min":1200.0,"max":3600.0},{"current":2762.373,"min":1200.0,"max":3600.0},{"current":2719.338,"min":1200.0,"max":3600.0},{"current":2696.728,"min":1200.0,"max":3600.0},{"current":2694.057,"min":1200.0,"max":3600.0},{"current":2859.288,"min":1200.0,"max":3600.0},{"current":2694.698,"min":1200.0,"max":3600.0},{"current":2695.886,"min":1200.0,"max":3600.0},{"current":2695.871,"min":1200.0,"max":3600.0},{"current":2718.093,"min":1200.0,"max":3600.0},{"current":2695.799,"min":1200.0,"max":3600.0},{"current":2694.037,"min":1200.0,"max":3600.0},{"current":2696.934,"min":1200.0,"max":3600.0},{"current":2810.882,"min":1200.0,"max":3600.0},{"current":2694.374,"min":1200.0,"max":3600.0},{"current":2697.274,"min":1200.0,"max":3600.0},{"current":2699.714,"min":1200.0,"max":3600.0},{"current":2694.977,"min":1200.0,"max":3600.0},{"current":2699.123,"min":1200.0,"max":3600.0},{"current":2695.572,"min":1200.0,"max":3600.0},{"current":2693.753,"min":1200.0,"max":3600.0},{"current":2627.243,"min":1200.0,"max":3600.0},{"current":2696.934,"min":1200.0,"max":3600.0},{"current":2693.657,"min":1200.0,"max":3600.0},{"current":2696.743,"min":1200.0,"max":3600.0},{"current":2695.778,"min":1200.0,"max":3600.0},{"current":2784.654,"min":1200.0,"max":3600.0},{"current":2758.263,"min":1200.0,"max":3600.0},{"current":2762.042,"min":1200.0,"max":3600.0},{"current":2787.461,"min":1200.0,"max":3600.0},{"current":2766.833,"min":1200.0,"max":3600.0},{"current":2790.645,"min":1200.0,"max":3600.0},{"current":2765.95,"min":1200.0,"max":3600.0},{"current":2778.321,"min":1200.0,"max":3600.0}],"disk_write_speed":72.43578370259317,"process_ids":[2113736,2113939]} +{"timestamp":1678268661.092191,"rapl_power_draw_absolute":167.29902008474537,"rapl_estimated_attributable_power_draw":8.521415306383734,"cpu_time_seconds":{"2113736":{"user":1442.52,"system":281.08,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":23.35,"system":34.4,"children_user":9.91,"children_system":343.68,"iowait":36.18}},"average_relative_cpu_utilization":0.05783911453759988,"absolute_cpu_utilization":1.003716583752799,"relative_mem_usage":0.01734231600029796,"absolute_mem_usage":3582721024.0,"absolute_mem_percent_usage":0.006623273935078755,"mem_info_per_process":{"2113736":{"rss":3522895872,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3118383104,"pss":3281229824,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":476.70000000000005,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.23,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.0,"mem":15.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23125,0.2325,0.22962500000000002],"cpu_freq":[{"current":2695.612,"min":1200.0,"max":3600.0},{"current":2808.243,"min":1200.0,"max":3600.0},{"current":2694.28,"min":1200.0,"max":3600.0},{"current":2684.175,"min":1200.0,"max":3600.0},{"current":2701.386,"min":1200.0,"max":3600.0},{"current":2799.513,"min":1200.0,"max":3600.0},{"current":2696.239,"min":1200.0,"max":3600.0},{"current":2845.868,"min":1200.0,"max":3600.0},{"current":2699.628,"min":1200.0,"max":3600.0},{"current":2698.397,"min":1200.0,"max":3600.0},{"current":2695.691,"min":1200.0,"max":3600.0},{"current":2729.041,"min":1200.0,"max":3600.0},{"current":2696.497,"min":1200.0,"max":3600.0},{"current":2695.904,"min":1200.0,"max":3600.0},{"current":2694.968,"min":1200.0,"max":3600.0},{"current":2704.042,"min":1200.0,"max":3600.0},{"current":2700.88,"min":1200.0,"max":3600.0},{"current":2694.176,"min":1200.0,"max":3600.0},{"current":2761.175,"min":1200.0,"max":3600.0},{"current":2642.42,"min":1200.0,"max":3600.0},{"current":2699.14,"min":1200.0,"max":3600.0},{"current":2708.929,"min":1200.0,"max":3600.0},{"current":2694.585,"min":1200.0,"max":3600.0},{"current":2697.721,"min":1200.0,"max":3600.0},{"current":2697.892,"min":1200.0,"max":3600.0},{"current":2696.35,"min":1200.0,"max":3600.0},{"current":2694.785,"min":1200.0,"max":3600.0},{"current":2748.385,"min":1200.0,"max":3600.0},{"current":2695.975,"min":1200.0,"max":3600.0},{"current":2694.866,"min":1200.0,"max":3600.0},{"current":2694.082,"min":1200.0,"max":3600.0},{"current":2694.433,"min":1200.0,"max":3600.0},{"current":2785.19,"min":1200.0,"max":3600.0},{"current":2792.522,"min":1200.0,"max":3600.0},{"current":2793.708,"min":1200.0,"max":3600.0},{"current":2760.472,"min":1200.0,"max":3600.0},{"current":2694.66,"min":1200.0,"max":3600.0},{"current":2700.235,"min":1200.0,"max":3600.0},{"current":2696.859,"min":1200.0,"max":3600.0},{"current":2627.819,"min":1200.0,"max":3600.0},{"current":2777.521,"min":1200.0,"max":3600.0},{"current":2659.62,"min":1200.0,"max":3600.0},{"current":2789.977,"min":1200.0,"max":3600.0},{"current":2819.134,"min":1200.0,"max":3600.0},{"current":2694.46,"min":1200.0,"max":3600.0},{"current":2692.573,"min":1200.0,"max":3600.0},{"current":2695.237,"min":1200.0,"max":3600.0},{"current":2659.587,"min":1200.0,"max":3600.0},{"current":2696.747,"min":1200.0,"max":3600.0},{"current":2694.59,"min":1200.0,"max":3600.0},{"current":2711.737,"min":1200.0,"max":3600.0},{"current":2815.219,"min":1200.0,"max":3600.0},{"current":2694.381,"min":1200.0,"max":3600.0},{"current":2710.509,"min":1200.0,"max":3600.0},{"current":2698.104,"min":1200.0,"max":3600.0},{"current":2746.838,"min":1200.0,"max":3600.0},{"current":2694.626,"min":1200.0,"max":3600.0},{"current":2695.68,"min":1200.0,"max":3600.0},{"current":2665.952,"min":1200.0,"max":3600.0},{"current":2805.712,"min":1200.0,"max":3600.0},{"current":2694.311,"min":1200.0,"max":3600.0},{"current":2695.4,"min":1200.0,"max":3600.0},{"current":2694.066,"min":1200.0,"max":3600.0},{"current":2696.608,"min":1200.0,"max":3600.0},{"current":2693.256,"min":1200.0,"max":3600.0},{"current":2694.498,"min":1200.0,"max":3600.0},{"current":2694.974,"min":1200.0,"max":3600.0},{"current":2693.372,"min":1200.0,"max":3600.0},{"current":2698.166,"min":1200.0,"max":3600.0},{"current":2694.472,"min":1200.0,"max":3600.0},{"current":2693.069,"min":1200.0,"max":3600.0},{"current":2694.46,"min":1200.0,"max":3600.0},{"current":2771.857,"min":1200.0,"max":3600.0},{"current":2763.669,"min":1200.0,"max":3600.0},{"current":2739.967,"min":1200.0,"max":3600.0},{"current":2754.036,"min":1200.0,"max":3600.0},{"current":2778.036,"min":1200.0,"max":3600.0},{"current":2781.359,"min":1200.0,"max":3600.0},{"current":2761.759,"min":1200.0,"max":3600.0},{"current":2771.436,"min":1200.0,"max":3600.0}],"disk_write_speed":70.29720137936107,"process_ids":[2113736,2113939]} +{"timestamp":1678268677.044215,"rapl_power_draw_absolute":168.8819010110041,"rapl_estimated_attributable_power_draw":8.092116461745409,"cpu_time_seconds":{"2113736":{"user":1456.04,"system":283.52,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":23.54,"system":34.75,"children_user":10.01,"children_system":346.86,"iowait":36.52}},"average_relative_cpu_utilization":0.05429237438843681,"absolute_cpu_utilization":1.0037304206832678,"relative_mem_usage":0.017413120612586083,"absolute_mem_usage":3602772992.0,"absolute_mem_percent_usage":0.0066603434350793874,"mem_info_per_process":{"2113736":{"rss":3542085632,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3138433024,"pss":3301281792,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":707.1500000000001,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.268,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":26.0,"mem":17.333333333333332,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":26.8,"mem":18.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.232375,0.23275,0.22974999999999998],"cpu_freq":[{"current":2733.169,"min":1200.0,"max":3600.0},{"current":2837.063,"min":1200.0,"max":3600.0},{"current":2697.578,"min":1200.0,"max":3600.0},{"current":2637.046,"min":1200.0,"max":3600.0},{"current":2697.243,"min":1200.0,"max":3600.0},{"current":2851.181,"min":1200.0,"max":3600.0},{"current":2707.722,"min":1200.0,"max":3600.0},{"current":2866.02,"min":1200.0,"max":3600.0},{"current":2709.186,"min":1200.0,"max":3600.0},{"current":2703.393,"min":1200.0,"max":3600.0},{"current":2694.744,"min":1200.0,"max":3600.0},{"current":2621.645,"min":1200.0,"max":3600.0},{"current":2698.223,"min":1200.0,"max":3600.0},{"current":2695.438,"min":1200.0,"max":3600.0},{"current":2784.593,"min":1200.0,"max":3600.0},{"current":2694.94,"min":1200.0,"max":3600.0},{"current":2698.825,"min":1200.0,"max":3600.0},{"current":2695.659,"min":1200.0,"max":3600.0},{"current":2702.273,"min":1200.0,"max":3600.0},{"current":2693.92,"min":1200.0,"max":3600.0},{"current":2785.799,"min":1200.0,"max":3600.0},{"current":2695.592,"min":1200.0,"max":3600.0},{"current":2695.978,"min":1200.0,"max":3600.0},{"current":2696.271,"min":1200.0,"max":3600.0},{"current":2693.877,"min":1200.0,"max":3600.0},{"current":2695.109,"min":1200.0,"max":3600.0},{"current":2699.805,"min":1200.0,"max":3600.0},{"current":2696.664,"min":1200.0,"max":3600.0},{"current":2693.799,"min":1200.0,"max":3600.0},{"current":2696.316,"min":1200.0,"max":3600.0},{"current":2695.904,"min":1200.0,"max":3600.0},{"current":2716.199,"min":1200.0,"max":3600.0},{"current":2695.559,"min":1200.0,"max":3600.0},{"current":2623.945,"min":1200.0,"max":3600.0},{"current":2694.855,"min":1200.0,"max":3600.0},{"current":2771.612,"min":1200.0,"max":3600.0},{"current":2661.592,"min":1200.0,"max":3600.0},{"current":2733.648,"min":1200.0,"max":3600.0},{"current":2794.479,"min":1200.0,"max":3600.0},{"current":2791.628,"min":1200.0,"max":3600.0},{"current":2695.198,"min":1200.0,"max":3600.0},{"current":2693.656,"min":1200.0,"max":3600.0},{"current":2808.44,"min":1200.0,"max":3600.0},{"current":2799.165,"min":1200.0,"max":3600.0},{"current":2820.425,"min":1200.0,"max":3600.0},{"current":2697.867,"min":1200.0,"max":3600.0},{"current":2694.083,"min":1200.0,"max":3600.0},{"current":2634.375,"min":1200.0,"max":3600.0},{"current":2741.04,"min":1200.0,"max":3600.0},{"current":2732.429,"min":1200.0,"max":3600.0},{"current":2695.308,"min":1200.0,"max":3600.0},{"current":2835.668,"min":1200.0,"max":3600.0},{"current":2697.572,"min":1200.0,"max":3600.0},{"current":2695.973,"min":1200.0,"max":3600.0},{"current":2695.485,"min":1200.0,"max":3600.0},{"current":2745.802,"min":1200.0,"max":3600.0},{"current":2694.13,"min":1200.0,"max":3600.0},{"current":2693.872,"min":1200.0,"max":3600.0},{"current":2695.789,"min":1200.0,"max":3600.0},{"current":2807.53,"min":1200.0,"max":3600.0},{"current":2752.771,"min":1200.0,"max":3600.0},{"current":2695.451,"min":1200.0,"max":3600.0},{"current":2693.773,"min":1200.0,"max":3600.0},{"current":2694.394,"min":1200.0,"max":3600.0},{"current":2694.661,"min":1200.0,"max":3600.0},{"current":2694.789,"min":1200.0,"max":3600.0},{"current":2695.439,"min":1200.0,"max":3600.0},{"current":2696.05,"min":1200.0,"max":3600.0},{"current":2694.76,"min":1200.0,"max":3600.0},{"current":2695.738,"min":1200.0,"max":3600.0},{"current":2694.017,"min":1200.0,"max":3600.0},{"current":2695.822,"min":1200.0,"max":3600.0},{"current":2694.978,"min":1200.0,"max":3600.0},{"current":2763.591,"min":1200.0,"max":3600.0},{"current":2788.001,"min":1200.0,"max":3600.0},{"current":2779.187,"min":1200.0,"max":3600.0},{"current":2784.154,"min":1200.0,"max":3600.0},{"current":2770.66,"min":1200.0,"max":3600.0},{"current":2774.443,"min":1200.0,"max":3600.0},{"current":2775.065,"min":1200.0,"max":3600.0}],"disk_write_speed":71.62248091505289,"process_ids":[2113736,2113939]} +{"timestamp":1678268693.144233,"rapl_power_draw_absolute":168.23010731765726,"rapl_estimated_attributable_power_draw":8.32280074188245,"cpu_time_seconds":{"2113736":{"user":1469.69,"system":285.97,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":23.73,"system":35.11,"children_user":10.1,"children_system":350.06,"iowait":36.86}},"average_relative_cpu_utilization":0.05609868789501557,"absolute_cpu_utilization":0.9987208128305564,"relative_mem_usage":0.01796051677457034,"absolute_mem_usage":3714163712.0,"absolute_mem_percent_usage":0.006866268274731556,"mem_info_per_process":{"2113736":{"rss":3649110016,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3249823744,"pss":3412672512,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":477.69000000000005,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.29,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":9.0,"mem":5.5,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":14.0,"mem":8.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":29.0,"mem":21.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23337500000000003,0.233,0.229875],"cpu_freq":[{"current":2694.553,"min":1200.0,"max":3600.0},{"current":2799.482,"min":1200.0,"max":3600.0},{"current":2712.584,"min":1200.0,"max":3600.0},{"current":2693.537,"min":1200.0,"max":3600.0},{"current":2695.731,"min":1200.0,"max":3600.0},{"current":2764.777,"min":1200.0,"max":3600.0},{"current":2694.777,"min":1200.0,"max":3600.0},{"current":2772.105,"min":1200.0,"max":3600.0},{"current":2713.537,"min":1200.0,"max":3600.0},{"current":2695.046,"min":1200.0,"max":3600.0},{"current":2734.546,"min":1200.0,"max":3600.0},{"current":2750.413,"min":1200.0,"max":3600.0},{"current":2696.156,"min":1200.0,"max":3600.0},{"current":2697.176,"min":1200.0,"max":3600.0},{"current":2696.346,"min":1200.0,"max":3600.0},{"current":2710.207,"min":1200.0,"max":3600.0},{"current":2697.493,"min":1200.0,"max":3600.0},{"current":2696.225,"min":1200.0,"max":3600.0},{"current":2695.906,"min":1200.0,"max":3600.0},{"current":2661.575,"min":1200.0,"max":3600.0},{"current":2779.757,"min":1200.0,"max":3600.0},{"current":2703.411,"min":1200.0,"max":3600.0},{"current":2696.035,"min":1200.0,"max":3600.0},{"current":2696.982,"min":1200.0,"max":3600.0},{"current":2696.401,"min":1200.0,"max":3600.0},{"current":2696.376,"min":1200.0,"max":3600.0},{"current":2696.661,"min":1200.0,"max":3600.0},{"current":2698.245,"min":1200.0,"max":3600.0},{"current":2696.299,"min":1200.0,"max":3600.0},{"current":2778.889,"min":1200.0,"max":3600.0},{"current":2696.549,"min":1200.0,"max":3600.0},{"current":2698.118,"min":1200.0,"max":3600.0},{"current":2697.668,"min":1200.0,"max":3600.0},{"current":2756.048,"min":1200.0,"max":3600.0},{"current":2793.459,"min":1200.0,"max":3600.0},{"current":2795.076,"min":1200.0,"max":3600.0},{"current":2709.452,"min":1200.0,"max":3600.0},{"current":2749.433,"min":1200.0,"max":3600.0},{"current":2694.689,"min":1200.0,"max":3600.0},{"current":2694.62,"min":1200.0,"max":3600.0},{"current":2709.397,"min":1200.0,"max":3600.0},{"current":2691.137,"min":1200.0,"max":3600.0},{"current":2789.068,"min":1200.0,"max":3600.0},{"current":2845.625,"min":1200.0,"max":3600.0},{"current":2844.233,"min":1200.0,"max":3600.0},{"current":2866.524,"min":1200.0,"max":3600.0},{"current":2705.296,"min":1200.0,"max":3600.0},{"current":2632.464,"min":1200.0,"max":3600.0},{"current":2697.261,"min":1200.0,"max":3600.0},{"current":2698.186,"min":1200.0,"max":3600.0},{"current":2697.831,"min":1200.0,"max":3600.0},{"current":2800.135,"min":1200.0,"max":3600.0},{"current":2698.655,"min":1200.0,"max":3600.0},{"current":2695.568,"min":1200.0,"max":3600.0},{"current":2694.732,"min":1200.0,"max":3600.0},{"current":2693.936,"min":1200.0,"max":3600.0},{"current":2693.781,"min":1200.0,"max":3600.0},{"current":2694.339,"min":1200.0,"max":3600.0},{"current":2752.972,"min":1200.0,"max":3600.0},{"current":2810.695,"min":1200.0,"max":3600.0},{"current":2794.186,"min":1200.0,"max":3600.0},{"current":2695.446,"min":1200.0,"max":3600.0},{"current":2696.8,"min":1200.0,"max":3600.0},{"current":2694.18,"min":1200.0,"max":3600.0},{"current":2695.08,"min":1200.0,"max":3600.0},{"current":2697.418,"min":1200.0,"max":3600.0},{"current":2696.455,"min":1200.0,"max":3600.0},{"current":2693.979,"min":1200.0,"max":3600.0},{"current":2694.286,"min":1200.0,"max":3600.0},{"current":2655.765,"min":1200.0,"max":3600.0},{"current":2693.648,"min":1200.0,"max":3600.0},{"current":2694.959,"min":1200.0,"max":3600.0},{"current":2694.426,"min":1200.0,"max":3600.0},{"current":2675.805,"min":1200.0,"max":3600.0},{"current":2676.056,"min":1200.0,"max":3600.0},{"current":2687.906,"min":1200.0,"max":3600.0},{"current":2664.365,"min":1200.0,"max":3600.0},{"current":2700.508,"min":1200.0,"max":3600.0},{"current":2779.791,"min":1200.0,"max":3600.0},{"current":2751.221,"min":1200.0,"max":3600.0}],"disk_write_speed":72.76379900233545,"process_ids":[2113736,2113939]} +{"timestamp":1678268708.632176,"rapl_power_draw_absolute":170.23867483254548,"rapl_estimated_attributable_power_draw":7.926195318228502,"cpu_time_seconds":{"2113736":{"user":1482.81,"system":288.35,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":23.95,"system":35.45,"children_user":10.2,"children_system":353.2,"iowait":37.21}},"average_relative_cpu_utilization":0.05262958569319473,"absolute_cpu_utilization":0.9987490515903888,"relative_mem_usage":0.017275913084290318,"absolute_mem_usage":3570381824.0,"absolute_mem_percent_usage":0.0066004628087889166,"mem_info_per_process":{"2113736":{"rss":3507486720,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3106041856,"pss":3268890624,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":478.5400000000001,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.24600000000000002,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":14.333333333333334,"mem":8.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":16.666666666666668,"mem":9.333333333333334,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.6,"mem":17.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.233875,0.23312499999999997,0.22999999999999998],"cpu_freq":[{"current":2695.348,"min":1200.0,"max":3600.0},{"current":2695.585,"min":1200.0,"max":3600.0},{"current":2779.286,"min":1200.0,"max":3600.0},{"current":2645.195,"min":1200.0,"max":3600.0},{"current":2691.837,"min":1200.0,"max":3600.0},{"current":2865.54,"min":1200.0,"max":3600.0},{"current":2837.811,"min":1200.0,"max":3600.0},{"current":2801.232,"min":1200.0,"max":3600.0},{"current":2698.183,"min":1200.0,"max":3600.0},{"current":2695.933,"min":1200.0,"max":3600.0},{"current":2697.613,"min":1200.0,"max":3600.0},{"current":2705.05,"min":1200.0,"max":3600.0},{"current":2714.998,"min":1200.0,"max":3600.0},{"current":2700.293,"min":1200.0,"max":3600.0},{"current":2700.419,"min":1200.0,"max":3600.0},{"current":2694.637,"min":1200.0,"max":3600.0},{"current":2702.399,"min":1200.0,"max":3600.0},{"current":2696.918,"min":1200.0,"max":3600.0},{"current":2701.217,"min":1200.0,"max":3600.0},{"current":2629.278,"min":1200.0,"max":3600.0},{"current":2782.908,"min":1200.0,"max":3600.0},{"current":2752.541,"min":1200.0,"max":3600.0},{"current":2698.319,"min":1200.0,"max":3600.0},{"current":2696.774,"min":1200.0,"max":3600.0},{"current":2699.196,"min":1200.0,"max":3600.0},{"current":2697.449,"min":1200.0,"max":3600.0},{"current":2696.18,"min":1200.0,"max":3600.0},{"current":2697.337,"min":1200.0,"max":3600.0},{"current":2695.722,"min":1200.0,"max":3600.0},{"current":2767.277,"min":1200.0,"max":3600.0},{"current":2696.839,"min":1200.0,"max":3600.0},{"current":2703.103,"min":1200.0,"max":3600.0},{"current":2697.3,"min":1200.0,"max":3600.0},{"current":2695.344,"min":1200.0,"max":3600.0},{"current":2694.011,"min":1200.0,"max":3600.0},{"current":2695.641,"min":1200.0,"max":3600.0},{"current":2731.155,"min":1200.0,"max":3600.0},{"current":2762.188,"min":1200.0,"max":3600.0},{"current":2693.464,"min":1200.0,"max":3600.0},{"current":2696.35,"min":1200.0,"max":3600.0},{"current":2717.004,"min":1200.0,"max":3600.0},{"current":2695.969,"min":1200.0,"max":3600.0},{"current":2843.648,"min":1200.0,"max":3600.0},{"current":2852.929,"min":1200.0,"max":3600.0},{"current":2813.61,"min":1200.0,"max":3600.0},{"current":2625.016,"min":1200.0,"max":3600.0},{"current":2867.395,"min":1200.0,"max":3600.0},{"current":2646.791,"min":1200.0,"max":3600.0},{"current":2697.378,"min":1200.0,"max":3600.0},{"current":2694.188,"min":1200.0,"max":3600.0},{"current":2694.813,"min":1200.0,"max":3600.0},{"current":2849.451,"min":1200.0,"max":3600.0},{"current":2723.723,"min":1200.0,"max":3600.0},{"current":2696.926,"min":1200.0,"max":3600.0},{"current":2695.8,"min":1200.0,"max":3600.0},{"current":2737.129,"min":1200.0,"max":3600.0},{"current":2693.909,"min":1200.0,"max":3600.0},{"current":2695.209,"min":1200.0,"max":3600.0},{"current":2694.377,"min":1200.0,"max":3600.0},{"current":2852.548,"min":1200.0,"max":3600.0},{"current":2694.167,"min":1200.0,"max":3600.0},{"current":2694.37,"min":1200.0,"max":3600.0},{"current":2693.781,"min":1200.0,"max":3600.0},{"current":2695.839,"min":1200.0,"max":3600.0},{"current":2695.871,"min":1200.0,"max":3600.0},{"current":2696.755,"min":1200.0,"max":3600.0},{"current":2695.518,"min":1200.0,"max":3600.0},{"current":2695.559,"min":1200.0,"max":3600.0},{"current":2693.459,"min":1200.0,"max":3600.0},{"current":2698.235,"min":1200.0,"max":3600.0},{"current":2697.201,"min":1200.0,"max":3600.0},{"current":2695.451,"min":1200.0,"max":3600.0},{"current":2693.74,"min":1200.0,"max":3600.0},{"current":2763.103,"min":1200.0,"max":3600.0},{"current":2776.518,"min":1200.0,"max":3600.0},{"current":2791.825,"min":1200.0,"max":3600.0},{"current":2784.73,"min":1200.0,"max":3600.0},{"current":2727.861,"min":1200.0,"max":3600.0},{"current":2726.58,"min":1200.0,"max":3600.0},{"current":2693.983,"min":1200.0,"max":3600.0}],"disk_write_speed":72.87666179223265,"process_ids":[2113736,2113939]} +{"timestamp":1678268724.30426,"rapl_power_draw_absolute":167.21618251920327,"rapl_estimated_attributable_power_draw":8.402240658985558,"cpu_time_seconds":{"2113736":{"user":1495.99,"system":290.85,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":24.15,"system":35.8,"children_user":10.3,"children_system":356.34,"iowait":37.56}},"average_relative_cpu_utilization":0.057294505635234104,"absolute_cpu_utilization":1.0037074085125615,"relative_mem_usage":0.01689063450652414,"absolute_mem_usage":3502085120.0,"absolute_mem_percent_usage":0.006474204644554304,"mem_info_per_process":{"2113736":{"rss":3443773440,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3037745152,"pss":3200593920,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":597.5900000000001,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.2,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":21.0,"mem":13.75,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":7.0,"mem":4.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":20.666666666666668,"mem":12.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":20.0,"mem":12.25,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23399999999999999,0.23312499999999997,0.22999999999999998],"cpu_freq":[{"current":2700.719,"min":1200.0,"max":3600.0},{"current":2699.667,"min":1200.0,"max":3600.0},{"current":2626.522,"min":1200.0,"max":3600.0},{"current":2632.941,"min":1200.0,"max":3600.0},{"current":2764.126,"min":1200.0,"max":3600.0},{"current":2847.978,"min":1200.0,"max":3600.0},{"current":2836.134,"min":1200.0,"max":3600.0},{"current":2864.405,"min":1200.0,"max":3600.0},{"current":2700.781,"min":1200.0,"max":3600.0},{"current":2696.174,"min":1200.0,"max":3600.0},{"current":2693.947,"min":1200.0,"max":3600.0},{"current":2847.383,"min":1200.0,"max":3600.0},{"current":2694.803,"min":1200.0,"max":3600.0},{"current":2724.005,"min":1200.0,"max":3600.0},{"current":2735.732,"min":1200.0,"max":3600.0},{"current":2698.607,"min":1200.0,"max":3600.0},{"current":2748.943,"min":1200.0,"max":3600.0},{"current":2697.147,"min":1200.0,"max":3600.0},{"current":2695.528,"min":1200.0,"max":3600.0},{"current":2696.685,"min":1200.0,"max":3600.0},{"current":2697.791,"min":1200.0,"max":3600.0},{"current":2778.175,"min":1200.0,"max":3600.0},{"current":2698.423,"min":1200.0,"max":3600.0},{"current":2697.407,"min":1200.0,"max":3600.0},{"current":2697.835,"min":1200.0,"max":3600.0},{"current":2694.263,"min":1200.0,"max":3600.0},{"current":2696.913,"min":1200.0,"max":3600.0},{"current":2698.661,"min":1200.0,"max":3600.0},{"current":2693.809,"min":1200.0,"max":3600.0},{"current":2761.983,"min":1200.0,"max":3600.0},{"current":2696.743,"min":1200.0,"max":3600.0},{"current":2698.719,"min":1200.0,"max":3600.0},{"current":2696.43,"min":1200.0,"max":3600.0},{"current":2732.019,"min":1200.0,"max":3600.0},{"current":2750.641,"min":1200.0,"max":3600.0},{"current":2694.497,"min":1200.0,"max":3600.0},{"current":2692.226,"min":1200.0,"max":3600.0},{"current":2696.397,"min":1200.0,"max":3600.0},{"current":2692.468,"min":1200.0,"max":3600.0},{"current":2747.059,"min":1200.0,"max":3600.0},{"current":2699.423,"min":1200.0,"max":3600.0},{"current":2706.897,"min":1200.0,"max":3600.0},{"current":2795.663,"min":1200.0,"max":3600.0},{"current":2839.52,"min":1200.0,"max":3600.0},{"current":2869.154,"min":1200.0,"max":3600.0},{"current":2805.766,"min":1200.0,"max":3600.0},{"current":2621.272,"min":1200.0,"max":3600.0},{"current":2697.997,"min":1200.0,"max":3600.0},{"current":2746.623,"min":1200.0,"max":3600.0},{"current":2695.315,"min":1200.0,"max":3600.0},{"current":2695.019,"min":1200.0,"max":3600.0},{"current":2624.878,"min":1200.0,"max":3600.0},{"current":2696.368,"min":1200.0,"max":3600.0},{"current":2703.773,"min":1200.0,"max":3600.0},{"current":2697.957,"min":1200.0,"max":3600.0},{"current":2694.117,"min":1200.0,"max":3600.0},{"current":2700.462,"min":1200.0,"max":3600.0},{"current":2696.25,"min":1200.0,"max":3600.0},{"current":2695.88,"min":1200.0,"max":3600.0},{"current":2787.298,"min":1200.0,"max":3600.0},{"current":2695.247,"min":1200.0,"max":3600.0},{"current":2696.765,"min":1200.0,"max":3600.0},{"current":2694.481,"min":1200.0,"max":3600.0},{"current":2694.349,"min":1200.0,"max":3600.0},{"current":2696.451,"min":1200.0,"max":3600.0},{"current":2714.894,"min":1200.0,"max":3600.0},{"current":2694.253,"min":1200.0,"max":3600.0},{"current":2696.848,"min":1200.0,"max":3600.0},{"current":2697.02,"min":1200.0,"max":3600.0},{"current":2695.113,"min":1200.0,"max":3600.0},{"current":2694.764,"min":1200.0,"max":3600.0},{"current":2694.264,"min":1200.0,"max":3600.0},{"current":2693.108,"min":1200.0,"max":3600.0},{"current":2674.808,"min":1200.0,"max":3600.0},{"current":2681.002,"min":1200.0,"max":3600.0},{"current":2734.641,"min":1200.0,"max":3600.0},{"current":2770.25,"min":1200.0,"max":3600.0},{"current":2761.484,"min":1200.0,"max":3600.0},{"current":2777.025,"min":1200.0,"max":3600.0},{"current":2693.966,"min":1200.0,"max":3600.0}],"disk_write_speed":72.84553236311883,"process_ids":[2113736,2113939]} +{"timestamp":1678268740.012216,"rapl_power_draw_absolute":168.6809771770441,"rapl_estimated_attributable_power_draw":8.063636383059515,"cpu_time_seconds":{"2113736":{"user":1509.25,"system":293.31,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":24.37,"system":36.14,"children_user":10.38,"children_system":359.49,"iowait":37.91}},"average_relative_cpu_utilization":0.054424228349284,"absolute_cpu_utilization":1.0040221222275851,"relative_mem_usage":0.01643493701500267,"absolute_mem_usage":3394208768.0,"absolute_mem_percent_usage":0.006274776716555805,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929868800,"pss":3092717568,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":483.61,"nvidia_estimated_attributable_power_draw":70.09,"average_gpu_estimated_utilization_absolute":0.2475,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":9.5,"mem":6.5,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":24.75,"mem":17.5,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":70.09},"cpu_count_adjusted_average_load":[0.23875000000000002,0.234375,0.2305],"cpu_freq":[{"current":2700.987,"min":1200.0,"max":3600.0},{"current":2695.342,"min":1200.0,"max":3600.0},{"current":2621.358,"min":1200.0,"max":3600.0},{"current":2698.161,"min":1200.0,"max":3600.0},{"current":2875.268,"min":1200.0,"max":3600.0},{"current":2815.099,"min":1200.0,"max":3600.0},{"current":2850.743,"min":1200.0,"max":3600.0},{"current":2872.886,"min":1200.0,"max":3600.0},{"current":2697.293,"min":1200.0,"max":3600.0},{"current":2694.912,"min":1200.0,"max":3600.0},{"current":2695.919,"min":1200.0,"max":3600.0},{"current":2849.083,"min":1200.0,"max":3600.0},{"current":2697.583,"min":1200.0,"max":3600.0},{"current":2697.04,"min":1200.0,"max":3600.0},{"current":2719.269,"min":1200.0,"max":3600.0},{"current":2695.585,"min":1200.0,"max":3600.0},{"current":2697.987,"min":1200.0,"max":3600.0},{"current":2695.319,"min":1200.0,"max":3600.0},{"current":2694.989,"min":1200.0,"max":3600.0},{"current":2698.464,"min":1200.0,"max":3600.0},{"current":2733.833,"min":1200.0,"max":3600.0},{"current":2781.776,"min":1200.0,"max":3600.0},{"current":2699.329,"min":1200.0,"max":3600.0},{"current":2696.394,"min":1200.0,"max":3600.0},{"current":2699.277,"min":1200.0,"max":3600.0},{"current":2700.446,"min":1200.0,"max":3600.0},{"current":2696.725,"min":1200.0,"max":3600.0},{"current":2697.663,"min":1200.0,"max":3600.0},{"current":2696.238,"min":1200.0,"max":3600.0},{"current":2693.843,"min":1200.0,"max":3600.0},{"current":2695.66,"min":1200.0,"max":3600.0},{"current":2697.605,"min":1200.0,"max":3600.0},{"current":2698.138,"min":1200.0,"max":3600.0},{"current":2719.67,"min":1200.0,"max":3600.0},{"current":2712.27,"min":1200.0,"max":3600.0},{"current":2681.406,"min":1200.0,"max":3600.0},{"current":2726.231,"min":1200.0,"max":3600.0},{"current":2752.081,"min":1200.0,"max":3600.0},{"current":2641.58,"min":1200.0,"max":3600.0},{"current":2696.117,"min":1200.0,"max":3600.0},{"current":2704.626,"min":1200.0,"max":3600.0},{"current":2696.975,"min":1200.0,"max":3600.0},{"current":2840.21,"min":1200.0,"max":3600.0},{"current":2865.226,"min":1200.0,"max":3600.0},{"current":2867.877,"min":1200.0,"max":3600.0},{"current":2659.531,"min":1200.0,"max":3600.0},{"current":2657.791,"min":1200.0,"max":3600.0},{"current":2693.139,"min":1200.0,"max":3600.0},{"current":2695.19,"min":1200.0,"max":3600.0},{"current":2696.081,"min":1200.0,"max":3600.0},{"current":2694.428,"min":1200.0,"max":3600.0},{"current":2718.206,"min":1200.0,"max":3600.0},{"current":2695.748,"min":1200.0,"max":3600.0},{"current":2695.725,"min":1200.0,"max":3600.0},{"current":2696.99,"min":1200.0,"max":3600.0},{"current":2696.475,"min":1200.0,"max":3600.0},{"current":2694.364,"min":1200.0,"max":3600.0},{"current":2692.565,"min":1200.0,"max":3600.0},{"current":2711.638,"min":1200.0,"max":3600.0},{"current":2862.601,"min":1200.0,"max":3600.0},{"current":2736.719,"min":1200.0,"max":3600.0},{"current":2690.843,"min":1200.0,"max":3600.0},{"current":2694.52,"min":1200.0,"max":3600.0},{"current":2695.98,"min":1200.0,"max":3600.0},{"current":2693.765,"min":1200.0,"max":3600.0},{"current":2694.3,"min":1200.0,"max":3600.0},{"current":2694.023,"min":1200.0,"max":3600.0},{"current":2694.817,"min":1200.0,"max":3600.0},{"current":2695.418,"min":1200.0,"max":3600.0},{"current":2695.528,"min":1200.0,"max":3600.0},{"current":2698.021,"min":1200.0,"max":3600.0},{"current":2693.159,"min":1200.0,"max":3600.0},{"current":2694.12,"min":1200.0,"max":3600.0},{"current":2785.166,"min":1200.0,"max":3600.0},{"current":2788.98,"min":1200.0,"max":3600.0},{"current":2777.186,"min":1200.0,"max":3600.0},{"current":2779.118,"min":1200.0,"max":3600.0},{"current":2775.492,"min":1200.0,"max":3600.0},{"current":2791.977,"min":1200.0,"max":3600.0},{"current":2693.611,"min":1200.0,"max":3600.0}],"disk_write_speed":72.57589219114409,"process_ids":[2113736,2113939]} +{"timestamp":1678268755.712284,"rapl_power_draw_absolute":167.53825187458807,"rapl_estimated_attributable_power_draw":8.536807174468883,"cpu_time_seconds":{"2113736":{"user":1522.44,"system":295.83,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":24.57,"system":36.49,"children_user":10.49,"children_system":362.63,"iowait":38.25}},"average_relative_cpu_utilization":0.05802630151363759,"absolute_cpu_utilization":1.0087282720597976,"relative_mem_usage":0.016433622079567833,"absolute_mem_usage":3394206720.0,"absolute_mem_percent_usage":0.0062747729304767534,"mem_info_per_process":{"2113736":{"rss":3357995008,"vms":27276865536,"shared":828198912,"text":2633728,"lib":0,"data":5280497664,"dirty":0,"uss":2929868800,"pss":3092715520,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":664.2,"nvidia_estimated_attributable_power_draw":251.47,"average_gpu_estimated_utilization_absolute":0.2275,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":8.0,"mem":4.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.75,"mem":15.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":251.47},"cpu_count_adjusted_average_load":[0.236625,0.234125,0.2305],"cpu_freq":[{"current":2702.915,"min":1200.0,"max":3600.0},{"current":2696.654,"min":1200.0,"max":3600.0},{"current":2692.265,"min":1200.0,"max":3600.0},{"current":2666.68,"min":1200.0,"max":3600.0},{"current":2692.819,"min":1200.0,"max":3600.0},{"current":2836.848,"min":1200.0,"max":3600.0},{"current":2854.076,"min":1200.0,"max":3600.0},{"current":2866.937,"min":1200.0,"max":3600.0},{"current":2702.541,"min":1200.0,"max":3600.0},{"current":2721.796,"min":1200.0,"max":3600.0},{"current":2695.295,"min":1200.0,"max":3600.0},{"current":2858.345,"min":1200.0,"max":3600.0},{"current":2697.396,"min":1200.0,"max":3600.0},{"current":2696.203,"min":1200.0,"max":3600.0},{"current":2699.441,"min":1200.0,"max":3600.0},{"current":2695.966,"min":1200.0,"max":3600.0},{"current":2697.586,"min":1200.0,"max":3600.0},{"current":2695.402,"min":1200.0,"max":3600.0},{"current":2697.21,"min":1200.0,"max":3600.0},{"current":2695.562,"min":1200.0,"max":3600.0},{"current":2696.308,"min":1200.0,"max":3600.0},{"current":2774.261,"min":1200.0,"max":3600.0},{"current":2695.236,"min":1200.0,"max":3600.0},{"current":2697.999,"min":1200.0,"max":3600.0},{"current":2696.061,"min":1200.0,"max":3600.0},{"current":2696.306,"min":1200.0,"max":3600.0},{"current":2697.855,"min":1200.0,"max":3600.0},{"current":2695.395,"min":1200.0,"max":3600.0},{"current":2697.362,"min":1200.0,"max":3600.0},{"current":2727.025,"min":1200.0,"max":3600.0},{"current":2700.9,"min":1200.0,"max":3600.0},{"current":2697.769,"min":1200.0,"max":3600.0},{"current":2702.926,"min":1200.0,"max":3600.0},{"current":2733.533,"min":1200.0,"max":3600.0},{"current":2750.87,"min":1200.0,"max":3600.0},{"current":2697.759,"min":1200.0,"max":3600.0},{"current":2728.752,"min":1200.0,"max":3600.0},{"current":2751.202,"min":1200.0,"max":3600.0},{"current":2695.197,"min":1200.0,"max":3600.0},{"current":2700.189,"min":1200.0,"max":3600.0},{"current":2695.37,"min":1200.0,"max":3600.0},{"current":2696.505,"min":1200.0,"max":3600.0},{"current":2867.931,"min":1200.0,"max":3600.0},{"current":2851.472,"min":1200.0,"max":3600.0},{"current":2844.089,"min":1200.0,"max":3600.0},{"current":2796.2,"min":1200.0,"max":3600.0},{"current":2706.148,"min":1200.0,"max":3600.0},{"current":2625.497,"min":1200.0,"max":3600.0},{"current":2694.384,"min":1200.0,"max":3600.0},{"current":2694.672,"min":1200.0,"max":3600.0},{"current":2695.481,"min":1200.0,"max":3600.0},{"current":2692.971,"min":1200.0,"max":3600.0},{"current":2695.698,"min":1200.0,"max":3600.0},{"current":2694.597,"min":1200.0,"max":3600.0},{"current":2694.152,"min":1200.0,"max":3600.0},{"current":2700.543,"min":1200.0,"max":3600.0},{"current":2697.069,"min":1200.0,"max":3600.0},{"current":2695.731,"min":1200.0,"max":3600.0},{"current":2697.815,"min":1200.0,"max":3600.0},{"current":2818.108,"min":1200.0,"max":3600.0},{"current":2783.92,"min":1200.0,"max":3600.0},{"current":2750.624,"min":1200.0,"max":3600.0},{"current":2693.388,"min":1200.0,"max":3600.0},{"current":2694.517,"min":1200.0,"max":3600.0},{"current":2694.634,"min":1200.0,"max":3600.0},{"current":2696.188,"min":1200.0,"max":3600.0},{"current":2695.216,"min":1200.0,"max":3600.0},{"current":2694.751,"min":1200.0,"max":3600.0},{"current":2694.602,"min":1200.0,"max":3600.0},{"current":2694.739,"min":1200.0,"max":3600.0},{"current":2694.909,"min":1200.0,"max":3600.0},{"current":2700.319,"min":1200.0,"max":3600.0},{"current":2695.379,"min":1200.0,"max":3600.0},{"current":2764.133,"min":1200.0,"max":3600.0},{"current":2781.519,"min":1200.0,"max":3600.0},{"current":2788.145,"min":1200.0,"max":3600.0},{"current":2761.216,"min":1200.0,"max":3600.0},{"current":2766.92,"min":1200.0,"max":3600.0},{"current":2776.845,"min":1200.0,"max":3600.0},{"current":2693.921,"min":1200.0,"max":3600.0}],"disk_write_speed":72.93128804544234,"process_ids":[2113736,2113939]} +{"timestamp":1678268771.404269,"rapl_power_draw_absolute":168.8331266201953,"rapl_estimated_attributable_power_draw":8.34513623028251,"cpu_time_seconds":{"2113736":{"user":1535.43,"system":298.53,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":24.74,"system":36.86,"children_user":10.58,"children_system":365.82,"iowait":38.6}},"average_relative_cpu_utilization":0.05578362457730445,"absolute_cpu_utilization":1.0037223333007925,"relative_mem_usage":0.019233567633150945,"absolute_mem_usage":3990549504.0,"absolute_mem_percent_usage":0.007377214787149627,"mem_info_per_process":{"2113736":{"rss":3923947520,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3526209536,"pss":3689058304,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":487.3,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.20600000000000002,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":25.0,"mem":16.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":4.5,"mem":2.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":20.6,"mem":13.2,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23562500000000003,0.23399999999999999,0.2305],"cpu_freq":[{"current":2694.44,"min":1200.0,"max":3600.0},{"current":2697.486,"min":1200.0,"max":3600.0},{"current":2692.06,"min":1200.0,"max":3600.0},{"current":2695.366,"min":1200.0,"max":3600.0},{"current":2695.136,"min":1200.0,"max":3600.0},{"current":2698.052,"min":1200.0,"max":3600.0},{"current":2878.826,"min":1200.0,"max":3600.0},{"current":2772.157,"min":1200.0,"max":3600.0},{"current":2821.69,"min":1200.0,"max":3600.0},{"current":2701.975,"min":1200.0,"max":3600.0},{"current":2698.857,"min":1200.0,"max":3600.0},{"current":2865.957,"min":1200.0,"max":3600.0},{"current":2697.369,"min":1200.0,"max":3600.0},{"current":2845.783,"min":1200.0,"max":3600.0},{"current":2695.664,"min":1200.0,"max":3600.0},{"current":2695.185,"min":1200.0,"max":3600.0},{"current":2694.985,"min":1200.0,"max":3600.0},{"current":2695.626,"min":1200.0,"max":3600.0},{"current":2737.053,"min":1200.0,"max":3600.0},{"current":2702.371,"min":1200.0,"max":3600.0},{"current":2694.532,"min":1200.0,"max":3600.0},{"current":2780.125,"min":1200.0,"max":3600.0},{"current":2694.864,"min":1200.0,"max":3600.0},{"current":2698.69,"min":1200.0,"max":3600.0},{"current":2695.384,"min":1200.0,"max":3600.0},{"current":2693.762,"min":1200.0,"max":3600.0},{"current":2702.822,"min":1200.0,"max":3600.0},{"current":2693.821,"min":1200.0,"max":3600.0},{"current":2696.492,"min":1200.0,"max":3600.0},{"current":2688.155,"min":1200.0,"max":3600.0},{"current":2752.253,"min":1200.0,"max":3600.0},{"current":2696.542,"min":1200.0,"max":3600.0},{"current":2695.141,"min":1200.0,"max":3600.0},{"current":2725.237,"min":1200.0,"max":3600.0},{"current":2703.273,"min":1200.0,"max":3600.0},{"current":2757.662,"min":1200.0,"max":3600.0},{"current":2789.647,"min":1200.0,"max":3600.0},{"current":2695.619,"min":1200.0,"max":3600.0},{"current":2716.161,"min":1200.0,"max":3600.0},{"current":2696.155,"min":1200.0,"max":3600.0},{"current":2715.05,"min":1200.0,"max":3600.0},{"current":2697.068,"min":1200.0,"max":3600.0},{"current":2865.506,"min":1200.0,"max":3600.0},{"current":2869.647,"min":1200.0,"max":3600.0},{"current":2858.99,"min":1200.0,"max":3600.0},{"current":2696.22,"min":1200.0,"max":3600.0},{"current":2664.039,"min":1200.0,"max":3600.0},{"current":2694.788,"min":1200.0,"max":3600.0},{"current":2654.547,"min":1200.0,"max":3600.0},{"current":2694.676,"min":1200.0,"max":3600.0},{"current":2696.021,"min":1200.0,"max":3600.0},{"current":2669.129,"min":1200.0,"max":3600.0},{"current":2694.027,"min":1200.0,"max":3600.0},{"current":2694.641,"min":1200.0,"max":3600.0},{"current":2694.475,"min":1200.0,"max":3600.0},{"current":2694.256,"min":1200.0,"max":3600.0},{"current":2694.951,"min":1200.0,"max":3600.0},{"current":2695.143,"min":1200.0,"max":3600.0},{"current":2757.46,"min":1200.0,"max":3600.0},{"current":2695.122,"min":1200.0,"max":3600.0},{"current":2767.565,"min":1200.0,"max":3600.0},{"current":2720.615,"min":1200.0,"max":3600.0},{"current":2696.501,"min":1200.0,"max":3600.0},{"current":2695.495,"min":1200.0,"max":3600.0},{"current":2782.46,"min":1200.0,"max":3600.0},{"current":2696.234,"min":1200.0,"max":3600.0},{"current":2694.924,"min":1200.0,"max":3600.0},{"current":2694.585,"min":1200.0,"max":3600.0},{"current":2696.695,"min":1200.0,"max":3600.0},{"current":2697.355,"min":1200.0,"max":3600.0},{"current":2778.877,"min":1200.0,"max":3600.0},{"current":2696.712,"min":1200.0,"max":3600.0},{"current":2696.467,"min":1200.0,"max":3600.0},{"current":2778.347,"min":1200.0,"max":3600.0},{"current":2769.34,"min":1200.0,"max":3600.0},{"current":2786.536,"min":1200.0,"max":3600.0},{"current":2756.894,"min":1200.0,"max":3600.0},{"current":2694.036,"min":1200.0,"max":3600.0},{"current":2725.539,"min":1200.0,"max":3600.0},{"current":2697.368,"min":1200.0,"max":3600.0}],"disk_write_speed":69.74525040716226,"process_ids":[2113736,2113939]} +{"timestamp":1678268786.976289,"rapl_power_draw_absolute":168.1511553710523,"rapl_estimated_attributable_power_draw":8.447393752119961,"cpu_time_seconds":{"2113736":{"user":1548.38,"system":301.16,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":24.97,"system":37.23,"children_user":10.68,"children_system":368.98,"iowait":38.93}},"average_relative_cpu_utilization":0.05685735781945885,"absolute_cpu_utilization":1.0037007517137464,"relative_mem_usage":0.018072565059528468,"absolute_mem_usage":3740869632.0,"absolute_mem_percent_usage":0.006915638745572966,"mem_info_per_process":{"2113736":{"rss":3679293440,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3276529664,"pss":3439378432,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":476.24000000000007,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.254,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.4,"mem":17.8,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23224999999999998,0.23337500000000003,0.230375],"cpu_freq":[{"current":2697.543,"min":1200.0,"max":3600.0},{"current":2695.416,"min":1200.0,"max":3600.0},{"current":2734.046,"min":1200.0,"max":3600.0},{"current":2744.369,"min":1200.0,"max":3600.0},{"current":2699.309,"min":1200.0,"max":3600.0},{"current":2750.252,"min":1200.0,"max":3600.0},{"current":2834.722,"min":1200.0,"max":3600.0},{"current":2847.698,"min":1200.0,"max":3600.0},{"current":2807.841,"min":1200.0,"max":3600.0},{"current":2863.063,"min":1200.0,"max":3600.0},{"current":2695.377,"min":1200.0,"max":3600.0},{"current":2848.995,"min":1200.0,"max":3600.0},{"current":2777.476,"min":1200.0,"max":3600.0},{"current":2724.526,"min":1200.0,"max":3600.0},{"current":2707.641,"min":1200.0,"max":3600.0},{"current":2695.619,"min":1200.0,"max":3600.0},{"current":2698.262,"min":1200.0,"max":3600.0},{"current":2695.986,"min":1200.0,"max":3600.0},{"current":2699.049,"min":1200.0,"max":3600.0},{"current":2693.766,"min":1200.0,"max":3600.0},{"current":2690.926,"min":1200.0,"max":3600.0},{"current":2748.347,"min":1200.0,"max":3600.0},{"current":2697.046,"min":1200.0,"max":3600.0},{"current":2696.679,"min":1200.0,"max":3600.0},{"current":2701.685,"min":1200.0,"max":3600.0},{"current":2698.404,"min":1200.0,"max":3600.0},{"current":2695.56,"min":1200.0,"max":3600.0},{"current":2693.843,"min":1200.0,"max":3600.0},{"current":2698.179,"min":1200.0,"max":3600.0},{"current":2771.133,"min":1200.0,"max":3600.0},{"current":2782.449,"min":1200.0,"max":3600.0},{"current":2696.08,"min":1200.0,"max":3600.0},{"current":2696.005,"min":1200.0,"max":3600.0},{"current":2693.722,"min":1200.0,"max":3600.0},{"current":2781.923,"min":1200.0,"max":3600.0},{"current":2698.155,"min":1200.0,"max":3600.0},{"current":2789.969,"min":1200.0,"max":3600.0},{"current":2697.057,"min":1200.0,"max":3600.0},{"current":2693.994,"min":1200.0,"max":3600.0},{"current":2694.938,"min":1200.0,"max":3600.0},{"current":2709.157,"min":1200.0,"max":3600.0},{"current":2695.526,"min":1200.0,"max":3600.0},{"current":2801.586,"min":1200.0,"max":3600.0},{"current":2829.719,"min":1200.0,"max":3600.0},{"current":2855.283,"min":1200.0,"max":3600.0},{"current":2694.48,"min":1200.0,"max":3600.0},{"current":2693.268,"min":1200.0,"max":3600.0},{"current":2776.713,"min":1200.0,"max":3600.0},{"current":2770.6,"min":1200.0,"max":3600.0},{"current":2696.751,"min":1200.0,"max":3600.0},{"current":2695.649,"min":1200.0,"max":3600.0},{"current":2704.732,"min":1200.0,"max":3600.0},{"current":2696.912,"min":1200.0,"max":3600.0},{"current":2694.442,"min":1200.0,"max":3600.0},{"current":2695.777,"min":1200.0,"max":3600.0},{"current":2700.361,"min":1200.0,"max":3600.0},{"current":2694.714,"min":1200.0,"max":3600.0},{"current":2783.24,"min":1200.0,"max":3600.0},{"current":2693.932,"min":1200.0,"max":3600.0},{"current":2693.651,"min":1200.0,"max":3600.0},{"current":2778.659,"min":1200.0,"max":3600.0},{"current":2637.789,"min":1200.0,"max":3600.0},{"current":2694.156,"min":1200.0,"max":3600.0},{"current":2694.288,"min":1200.0,"max":3600.0},{"current":2695.287,"min":1200.0,"max":3600.0},{"current":2694.142,"min":1200.0,"max":3600.0},{"current":2696.645,"min":1200.0,"max":3600.0},{"current":2694.041,"min":1200.0,"max":3600.0},{"current":2695.658,"min":1200.0,"max":3600.0},{"current":2694.817,"min":1200.0,"max":3600.0},{"current":2694.178,"min":1200.0,"max":3600.0},{"current":2695.366,"min":1200.0,"max":3600.0},{"current":2697.741,"min":1200.0,"max":3600.0},{"current":2778.502,"min":1200.0,"max":3600.0},{"current":2704.11,"min":1200.0,"max":3600.0},{"current":2717.614,"min":1200.0,"max":3600.0},{"current":2695.654,"min":1200.0,"max":3600.0},{"current":2694.192,"min":1200.0,"max":3600.0},{"current":2745.097,"min":1200.0,"max":3600.0},{"current":2698.064,"min":1200.0,"max":3600.0}],"disk_write_speed":71.46008442037542,"process_ids":[2113736,2113939]} +{"timestamp":1678268802.624224,"rapl_power_draw_absolute":168.34797541260542,"rapl_estimated_attributable_power_draw":8.397747221411345,"cpu_time_seconds":{"2113736":{"user":1561.43,"system":303.76,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":25.18,"system":37.57,"children_user":10.8,"children_system":372.14,"iowait":39.26}},"average_relative_cpu_utilization":0.05653718577770828,"absolute_cpu_utilization":1.0040381713294892,"relative_mem_usage":0.01759226780849319,"absolute_mem_usage":3640214528.0,"absolute_mem_percent_usage":0.00672956053231272,"mem_info_per_process":{"2113736":{"rss":3586555904,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3175874560,"pss":3338723328,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":475.2,"nvidia_estimated_attributable_power_draw":69.56,"average_gpu_estimated_utilization_absolute":0.22,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":9.5,"mem":5.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":20.5,"mem":11.5,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.0,"mem":14.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.56},"cpu_count_adjusted_average_load":[0.232625,0.23337500000000003,0.230375],"cpu_freq":[{"current":2695.494,"min":1200.0,"max":3600.0},{"current":2700.137,"min":1200.0,"max":3600.0},{"current":2661.532,"min":1200.0,"max":3600.0},{"current":2692.414,"min":1200.0,"max":3600.0},{"current":2725.427,"min":1200.0,"max":3600.0},{"current":2760.998,"min":1200.0,"max":3600.0},{"current":2832.611,"min":1200.0,"max":3600.0},{"current":2845.451,"min":1200.0,"max":3600.0},{"current":2853.227,"min":1200.0,"max":3600.0},{"current":2866.239,"min":1200.0,"max":3600.0},{"current":2700.005,"min":1200.0,"max":3600.0},{"current":2870.316,"min":1200.0,"max":3600.0},{"current":2772.851,"min":1200.0,"max":3600.0},{"current":2701.158,"min":1200.0,"max":3600.0},{"current":2695.429,"min":1200.0,"max":3600.0},{"current":2694.965,"min":1200.0,"max":3600.0},{"current":2697.917,"min":1200.0,"max":3600.0},{"current":2730.464,"min":1200.0,"max":3600.0},{"current":2697.903,"min":1200.0,"max":3600.0},{"current":2694.857,"min":1200.0,"max":3600.0},{"current":2757.112,"min":1200.0,"max":3600.0},{"current":2697.855,"min":1200.0,"max":3600.0},{"current":2698.91,"min":1200.0,"max":3600.0},{"current":2694.968,"min":1200.0,"max":3600.0},{"current":2697.145,"min":1200.0,"max":3600.0},{"current":2696.805,"min":1200.0,"max":3600.0},{"current":2718.168,"min":1200.0,"max":3600.0},{"current":2698.925,"min":1200.0,"max":3600.0},{"current":2699.692,"min":1200.0,"max":3600.0},{"current":2783.556,"min":1200.0,"max":3600.0},{"current":2730.95,"min":1200.0,"max":3600.0},{"current":2702.894,"min":1200.0,"max":3600.0},{"current":2700.568,"min":1200.0,"max":3600.0},{"current":2695.629,"min":1200.0,"max":3600.0},{"current":2694.986,"min":1200.0,"max":3600.0},{"current":2656.635,"min":1200.0,"max":3600.0},{"current":2777.631,"min":1200.0,"max":3600.0},{"current":2694.9,"min":1200.0,"max":3600.0},{"current":2694.544,"min":1200.0,"max":3600.0},{"current":2694.531,"min":1200.0,"max":3600.0},{"current":2696.247,"min":1200.0,"max":3600.0},{"current":2710.117,"min":1200.0,"max":3600.0},{"current":2860.487,"min":1200.0,"max":3600.0},{"current":2871.202,"min":1200.0,"max":3600.0},{"current":2862.941,"min":1200.0,"max":3600.0},{"current":2748.395,"min":1200.0,"max":3600.0},{"current":2881.243,"min":1200.0,"max":3600.0},{"current":2692.481,"min":1200.0,"max":3600.0},{"current":2690.635,"min":1200.0,"max":3600.0},{"current":2697.327,"min":1200.0,"max":3600.0},{"current":2695.337,"min":1200.0,"max":3600.0},{"current":2797.711,"min":1200.0,"max":3600.0},{"current":2697.378,"min":1200.0,"max":3600.0},{"current":2713.666,"min":1200.0,"max":3600.0},{"current":2695.245,"min":1200.0,"max":3600.0},{"current":2693.897,"min":1200.0,"max":3600.0},{"current":2696.775,"min":1200.0,"max":3600.0},{"current":2716.21,"min":1200.0,"max":3600.0},{"current":2694.28,"min":1200.0,"max":3600.0},{"current":2716.367,"min":1200.0,"max":3600.0},{"current":2789.685,"min":1200.0,"max":3600.0},{"current":2794.701,"min":1200.0,"max":3600.0},{"current":2695.198,"min":1200.0,"max":3600.0},{"current":2695.209,"min":1200.0,"max":3600.0},{"current":2695.125,"min":1200.0,"max":3600.0},{"current":2697.057,"min":1200.0,"max":3600.0},{"current":2696.279,"min":1200.0,"max":3600.0},{"current":2731.313,"min":1200.0,"max":3600.0},{"current":2696.23,"min":1200.0,"max":3600.0},{"current":2733.357,"min":1200.0,"max":3600.0},{"current":2771.4,"min":1200.0,"max":3600.0},{"current":2696.079,"min":1200.0,"max":3600.0},{"current":2694.509,"min":1200.0,"max":3600.0},{"current":2785.682,"min":1200.0,"max":3600.0},{"current":2775.461,"min":1200.0,"max":3600.0},{"current":2779.283,"min":1200.0,"max":3600.0},{"current":2693.946,"min":1200.0,"max":3600.0},{"current":2694.216,"min":1200.0,"max":3600.0},{"current":2784.82,"min":1200.0,"max":3600.0},{"current":2695.286,"min":1200.0,"max":3600.0}],"disk_write_speed":72.13216345946026,"process_ids":[2113736,2113939]} +{"timestamp":1678268818.528267,"rapl_power_draw_absolute":166.62529617646106,"rapl_estimated_attributable_power_draw":8.412745376464624,"cpu_time_seconds":{"2113736":{"user":1574.72,"system":306.38,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":25.41,"system":37.86,"children_user":10.89,"children_system":375.33,"iowait":39.61}},"average_relative_cpu_utilization":0.057402685974220664,"absolute_cpu_utilization":0.9987425458881847,"relative_mem_usage":0.017775937945048812,"absolute_mem_usage":3696555008.0,"absolute_mem_percent_usage":0.006833715567040264,"mem_info_per_process":{"2113736":{"rss":3632824320,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3232215040,"pss":3395063808,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":488.66,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.23199999999999998,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":19.25,"mem":12.25,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":12.333333333333334,"mem":7.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":17.0,"mem":9.666666666666666,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":23.2,"mem":15.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23374999999999999,0.23362500000000003,0.2305],"cpu_freq":[{"current":2695.271,"min":1200.0,"max":3600.0},{"current":2696.312,"min":1200.0,"max":3600.0},{"current":2716.779,"min":1200.0,"max":3600.0},{"current":2697.773,"min":1200.0,"max":3600.0},{"current":2692.275,"min":1200.0,"max":3600.0},{"current":2715.483,"min":1200.0,"max":3600.0},{"current":2828.234,"min":1200.0,"max":3600.0},{"current":2828.266,"min":1200.0,"max":3600.0},{"current":2861.914,"min":1200.0,"max":3600.0},{"current":2825.843,"min":1200.0,"max":3600.0},{"current":2768.438,"min":1200.0,"max":3600.0},{"current":2809.642,"min":1200.0,"max":3600.0},{"current":2709.01,"min":1200.0,"max":3600.0},{"current":2696.114,"min":1200.0,"max":3600.0},{"current":2694.001,"min":1200.0,"max":3600.0},{"current":2702.073,"min":1200.0,"max":3600.0},{"current":2732.542,"min":1200.0,"max":3600.0},{"current":2694.529,"min":1200.0,"max":3600.0},{"current":2695.479,"min":1200.0,"max":3600.0},{"current":2695.102,"min":1200.0,"max":3600.0},{"current":2748.108,"min":1200.0,"max":3600.0},{"current":2675.893,"min":1200.0,"max":3600.0},{"current":2696.635,"min":1200.0,"max":3600.0},{"current":2693.971,"min":1200.0,"max":3600.0},{"current":2695.17,"min":1200.0,"max":3600.0},{"current":2695.529,"min":1200.0,"max":3600.0},{"current":2696.194,"min":1200.0,"max":3600.0},{"current":2698.974,"min":1200.0,"max":3600.0},{"current":2694.555,"min":1200.0,"max":3600.0},{"current":2776.337,"min":1200.0,"max":3600.0},{"current":2769.249,"min":1200.0,"max":3600.0},{"current":2697.811,"min":1200.0,"max":3600.0},{"current":2699.562,"min":1200.0,"max":3600.0},{"current":2694.107,"min":1200.0,"max":3600.0},{"current":2692.657,"min":1200.0,"max":3600.0},{"current":2655.681,"min":1200.0,"max":3600.0},{"current":2726.084,"min":1200.0,"max":3600.0},{"current":2700.028,"min":1200.0,"max":3600.0},{"current":2650.597,"min":1200.0,"max":3600.0},{"current":2702.62,"min":1200.0,"max":3600.0},{"current":2707.124,"min":1200.0,"max":3600.0},{"current":2718.812,"min":1200.0,"max":3600.0},{"current":2867.23,"min":1200.0,"max":3600.0},{"current":2841.545,"min":1200.0,"max":3600.0},{"current":2816.216,"min":1200.0,"max":3600.0},{"current":2694.85,"min":1200.0,"max":3600.0},{"current":2692.826,"min":1200.0,"max":3600.0},{"current":2696.945,"min":1200.0,"max":3600.0},{"current":2694.07,"min":1200.0,"max":3600.0},{"current":2691.646,"min":1200.0,"max":3600.0},{"current":2735.463,"min":1200.0,"max":3600.0},{"current":2699.024,"min":1200.0,"max":3600.0},{"current":2694.576,"min":1200.0,"max":3600.0},{"current":2695.628,"min":1200.0,"max":3600.0},{"current":2697.069,"min":1200.0,"max":3600.0},{"current":2694.297,"min":1200.0,"max":3600.0},{"current":2696.031,"min":1200.0,"max":3600.0},{"current":2694.371,"min":1200.0,"max":3600.0},{"current":2694.873,"min":1200.0,"max":3600.0},{"current":2697.296,"min":1200.0,"max":3600.0},{"current":2693.758,"min":1200.0,"max":3600.0},{"current":2694.193,"min":1200.0,"max":3600.0},{"current":2695.022,"min":1200.0,"max":3600.0},{"current":2693.993,"min":1200.0,"max":3600.0},{"current":2694.401,"min":1200.0,"max":3600.0},{"current":2696.333,"min":1200.0,"max":3600.0},{"current":2694.56,"min":1200.0,"max":3600.0},{"current":2693.975,"min":1200.0,"max":3600.0},{"current":2697.32,"min":1200.0,"max":3600.0},{"current":2694.775,"min":1200.0,"max":3600.0},{"current":2693.174,"min":1200.0,"max":3600.0},{"current":2694.652,"min":1200.0,"max":3600.0},{"current":2696.331,"min":1200.0,"max":3600.0},{"current":2789.389,"min":1200.0,"max":3600.0},{"current":2779.168,"min":1200.0,"max":3600.0},{"current":2792.309,"min":1200.0,"max":3600.0},{"current":2790.7,"min":1200.0,"max":3600.0},{"current":2693.982,"min":1200.0,"max":3600.0},{"current":2778.595,"min":1200.0,"max":3600.0},{"current":2695.562,"min":1200.0,"max":3600.0}],"disk_write_speed":57.56558563316798,"process_ids":[2113736,2113939]} +{"timestamp":1678268834.10824,"rapl_power_draw_absolute":167.099778038205,"rapl_estimated_attributable_power_draw":8.487796487265834,"cpu_time_seconds":{"2113736":{"user":1587.85,"system":308.84,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":25.67,"system":38.23,"children_user":10.98,"children_system":378.5,"iowait":39.88}},"average_relative_cpu_utilization":0.057656489226033225,"absolute_cpu_utilization":1.0037253203654932,"relative_mem_usage":0.01746813684685761,"absolute_mem_usage":3615249408.0,"absolute_mem_percent_usage":0.006683408228665727,"mem_info_per_process":{"2113736":{"rss":3551363072,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3150909440,"pss":3313758208,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":480.52000000000004,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.2625,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":7.666666666666667,"mem":4.333333333333333,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":8.0,"mem":4.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":26.25,"mem":17.25,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.232875,0.23349999999999999,0.2305],"cpu_freq":[{"current":2694.41,"min":1200.0,"max":3600.0},{"current":2693.961,"min":1200.0,"max":3600.0},{"current":2616.121,"min":1200.0,"max":3600.0},{"current":2692.126,"min":1200.0,"max":3600.0},{"current":2693.874,"min":1200.0,"max":3600.0},{"current":2713.991,"min":1200.0,"max":3600.0},{"current":2779.504,"min":1200.0,"max":3600.0},{"current":2707.719,"min":1200.0,"max":3600.0},{"current":2804.287,"min":1200.0,"max":3600.0},{"current":2801.995,"min":1200.0,"max":3600.0},{"current":2694.25,"min":1200.0,"max":3600.0},{"current":2863.779,"min":1200.0,"max":3600.0},{"current":2702.926,"min":1200.0,"max":3600.0},{"current":2697.474,"min":1200.0,"max":3600.0},{"current":2829.196,"min":1200.0,"max":3600.0},{"current":2737.643,"min":1200.0,"max":3600.0},{"current":2698.65,"min":1200.0,"max":3600.0},{"current":2695.481,"min":1200.0,"max":3600.0},{"current":2695.741,"min":1200.0,"max":3600.0},{"current":2694.918,"min":1200.0,"max":3600.0},{"current":2788.722,"min":1200.0,"max":3600.0},{"current":2774.658,"min":1200.0,"max":3600.0},{"current":2693.572,"min":1200.0,"max":3600.0},{"current":2700.406,"min":1200.0,"max":3600.0},{"current":2699.842,"min":1200.0,"max":3600.0},{"current":2697.777,"min":1200.0,"max":3600.0},{"current":2694.959,"min":1200.0,"max":3600.0},{"current":2696.744,"min":1200.0,"max":3600.0},{"current":2695.735,"min":1200.0,"max":3600.0},{"current":2770.401,"min":1200.0,"max":3600.0},{"current":2780.214,"min":1200.0,"max":3600.0},{"current":2693.769,"min":1200.0,"max":3600.0},{"current":2697.079,"min":1200.0,"max":3600.0},{"current":2692.332,"min":1200.0,"max":3600.0},{"current":2683.817,"min":1200.0,"max":3600.0},{"current":2695.386,"min":1200.0,"max":3600.0},{"current":2771.811,"min":1200.0,"max":3600.0},{"current":2698.091,"min":1200.0,"max":3600.0},{"current":2735.888,"min":1200.0,"max":3600.0},{"current":2721.967,"min":1200.0,"max":3600.0},{"current":2738.471,"min":1200.0,"max":3600.0},{"current":2742.798,"min":1200.0,"max":3600.0},{"current":2813.552,"min":1200.0,"max":3600.0},{"current":2748.013,"min":1200.0,"max":3600.0},{"current":2822.082,"min":1200.0,"max":3600.0},{"current":2702.896,"min":1200.0,"max":3600.0},{"current":2624.32,"min":1200.0,"max":3600.0},{"current":2696.061,"min":1200.0,"max":3600.0},{"current":2665.588,"min":1200.0,"max":3600.0},{"current":2709.709,"min":1200.0,"max":3600.0},{"current":2693.837,"min":1200.0,"max":3600.0},{"current":2707.316,"min":1200.0,"max":3600.0},{"current":2694.195,"min":1200.0,"max":3600.0},{"current":2709.748,"min":1200.0,"max":3600.0},{"current":2690.26,"min":1200.0,"max":3600.0},{"current":2709.501,"min":1200.0,"max":3600.0},{"current":2696.171,"min":1200.0,"max":3600.0},{"current":2695.328,"min":1200.0,"max":3600.0},{"current":2694.395,"min":1200.0,"max":3600.0},{"current":2764.54,"min":1200.0,"max":3600.0},{"current":2777.08,"min":1200.0,"max":3600.0},{"current":2694.798,"min":1200.0,"max":3600.0},{"current":2693.835,"min":1200.0,"max":3600.0},{"current":2694.456,"min":1200.0,"max":3600.0},{"current":2693.888,"min":1200.0,"max":3600.0},{"current":2694.241,"min":1200.0,"max":3600.0},{"current":2694.882,"min":1200.0,"max":3600.0},{"current":2693.969,"min":1200.0,"max":3600.0},{"current":2708.255,"min":1200.0,"max":3600.0},{"current":2690.592,"min":1200.0,"max":3600.0},{"current":2692.86,"min":1200.0,"max":3600.0},{"current":2694.95,"min":1200.0,"max":3600.0},{"current":2693.712,"min":1200.0,"max":3600.0},{"current":2806.164,"min":1200.0,"max":3600.0},{"current":2778.973,"min":1200.0,"max":3600.0},{"current":2784.316,"min":1200.0,"max":3600.0},{"current":2800.398,"min":1200.0,"max":3600.0},{"current":2708.588,"min":1200.0,"max":3600.0},{"current":2698.345,"min":1200.0,"max":3600.0},{"current":2695.942,"min":1200.0,"max":3600.0}],"disk_write_speed":70.23677283318115,"process_ids":[2113736,2113939]} +{"timestamp":1678268849.804255,"rapl_power_draw_absolute":167.60782798372713,"rapl_estimated_attributable_power_draw":8.416681676229826,"cpu_time_seconds":{"2113736":{"user":1600.98,"system":311.41,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":25.87,"system":38.58,"children_user":11.03,"children_system":381.72,"iowait":40.22}},"average_relative_cpu_utilization":0.05704208202672339,"absolute_cpu_utilization":0.9987298152830705,"relative_mem_usage":0.01726144618069263,"absolute_mem_usage":3572052992.0,"absolute_mem_percent_usage":0.006603552249295557,"mem_info_per_process":{"2113736":{"rss":3512000512,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3107713024,"pss":3270561792,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":480.07,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.278,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":10.0,"mem":5.666666666666667,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":27.8,"mem":19.6,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23025,0.232875,0.230375],"cpu_freq":[{"current":2695.685,"min":1200.0,"max":3600.0},{"current":2699.508,"min":1200.0,"max":3600.0},{"current":2617.225,"min":1200.0,"max":3600.0},{"current":2657.505,"min":1200.0,"max":3600.0},{"current":2692.53,"min":1200.0,"max":3600.0},{"current":2779.229,"min":1200.0,"max":3600.0},{"current":2797.606,"min":1200.0,"max":3600.0},{"current":2702.397,"min":1200.0,"max":3600.0},{"current":2818.502,"min":1200.0,"max":3600.0},{"current":2802.031,"min":1200.0,"max":3600.0},{"current":2693.251,"min":1200.0,"max":3600.0},{"current":2778.4,"min":1200.0,"max":3600.0},{"current":2698.599,"min":1200.0,"max":3600.0},{"current":2700.537,"min":1200.0,"max":3600.0},{"current":2697.953,"min":1200.0,"max":3600.0},{"current":2704.031,"min":1200.0,"max":3600.0},{"current":2695.326,"min":1200.0,"max":3600.0},{"current":2697.615,"min":1200.0,"max":3600.0},{"current":2702.89,"min":1200.0,"max":3600.0},{"current":2696.533,"min":1200.0,"max":3600.0},{"current":2734.379,"min":1200.0,"max":3600.0},{"current":2779.728,"min":1200.0,"max":3600.0},{"current":2696.732,"min":1200.0,"max":3600.0},{"current":2695.726,"min":1200.0,"max":3600.0},{"current":2696.035,"min":1200.0,"max":3600.0},{"current":2709.626,"min":1200.0,"max":3600.0},{"current":2710.766,"min":1200.0,"max":3600.0},{"current":2698.249,"min":1200.0,"max":3600.0},{"current":2695.134,"min":1200.0,"max":3600.0},{"current":2684.256,"min":1200.0,"max":3600.0},{"current":2690.307,"min":1200.0,"max":3600.0},{"current":2699.88,"min":1200.0,"max":3600.0},{"current":2699.106,"min":1200.0,"max":3600.0},{"current":2680.616,"min":1200.0,"max":3600.0},{"current":2693.672,"min":1200.0,"max":3600.0},{"current":2696.478,"min":1200.0,"max":3600.0},{"current":2696.452,"min":1200.0,"max":3600.0},{"current":2696.806,"min":1200.0,"max":3600.0},{"current":2693.384,"min":1200.0,"max":3600.0},{"current":2696.622,"min":1200.0,"max":3600.0},{"current":2715.857,"min":1200.0,"max":3600.0},{"current":2694.142,"min":1200.0,"max":3600.0},{"current":2818.177,"min":1200.0,"max":3600.0},{"current":2814.529,"min":1200.0,"max":3600.0},{"current":2860.438,"min":1200.0,"max":3600.0},{"current":2784.9,"min":1200.0,"max":3600.0},{"current":2657.601,"min":1200.0,"max":3600.0},{"current":2694.303,"min":1200.0,"max":3600.0},{"current":2646.32,"min":1200.0,"max":3600.0},{"current":2873.058,"min":1200.0,"max":3600.0},{"current":2851.82,"min":1200.0,"max":3600.0},{"current":2621.625,"min":1200.0,"max":3600.0},{"current":2697.467,"min":1200.0,"max":3600.0},{"current":2709.308,"min":1200.0,"max":3600.0},{"current":2694.869,"min":1200.0,"max":3600.0},{"current":2772.875,"min":1200.0,"max":3600.0},{"current":2693.971,"min":1200.0,"max":3600.0},{"current":2695.76,"min":1200.0,"max":3600.0},{"current":2708.76,"min":1200.0,"max":3600.0},{"current":2703.486,"min":1200.0,"max":3600.0},{"current":2680.247,"min":1200.0,"max":3600.0},{"current":2629.678,"min":1200.0,"max":3600.0},{"current":2697.016,"min":1200.0,"max":3600.0},{"current":2694.697,"min":1200.0,"max":3600.0},{"current":2692.865,"min":1200.0,"max":3600.0},{"current":2694.284,"min":1200.0,"max":3600.0},{"current":2693.441,"min":1200.0,"max":3600.0},{"current":2693.782,"min":1200.0,"max":3600.0},{"current":2695.778,"min":1200.0,"max":3600.0},{"current":2693.155,"min":1200.0,"max":3600.0},{"current":2693.803,"min":1200.0,"max":3600.0},{"current":2693.769,"min":1200.0,"max":3600.0},{"current":2721.624,"min":1200.0,"max":3600.0},{"current":2685.237,"min":1200.0,"max":3600.0},{"current":2685.928,"min":1200.0,"max":3600.0},{"current":2677.597,"min":1200.0,"max":3600.0},{"current":2697.488,"min":1200.0,"max":3600.0},{"current":2695.47,"min":1200.0,"max":3600.0},{"current":2693.757,"min":1200.0,"max":3600.0},{"current":2694.747,"min":1200.0,"max":3600.0}],"disk_write_speed":68.87867599621451,"process_ids":[2113736,2113939]} +{"timestamp":1678268865.896226,"rapl_power_draw_absolute":167.7687536669181,"rapl_estimated_attributable_power_draw":8.406276113511435,"cpu_time_seconds":{"2113736":{"user":1614.5,"system":314.0,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":26.05,"system":38.93,"children_user":11.13,"children_system":384.89,"iowait":40.55}},"average_relative_cpu_utilization":0.05690559834012353,"absolute_cpu_utilization":1.0037186684639672,"relative_mem_usage":0.01791354595963304,"absolute_mem_usage":3710027776.0,"absolute_mem_percent_usage":0.006858622288085527,"mem_info_per_process":{"2113736":{"rss":3649138688,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3245690880,"pss":3408536576,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":489.58000000000004,"nvidia_estimated_attributable_power_draw":69.56,"average_gpu_estimated_utilization_absolute":0.255,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":24.333333333333332,"mem":15.333333333333334,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.666666666666667,"mem":4.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.5,"mem":18.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.56},"cpu_count_adjusted_average_load":[0.229875,0.232625,0.230375],"cpu_freq":[{"current":2696.694,"min":1200.0,"max":3600.0},{"current":2694.615,"min":1200.0,"max":3600.0},{"current":2691.84,"min":1200.0,"max":3600.0},{"current":2662.871,"min":1200.0,"max":3600.0},{"current":2703.942,"min":1200.0,"max":3600.0},{"current":2693.815,"min":1200.0,"max":3600.0},{"current":2729.937,"min":1200.0,"max":3600.0},{"current":2698.022,"min":1200.0,"max":3600.0},{"current":2706.749,"min":1200.0,"max":3600.0},{"current":2625.131,"min":1200.0,"max":3600.0},{"current":2703.64,"min":1200.0,"max":3600.0},{"current":2720.609,"min":1200.0,"max":3600.0},{"current":2697.015,"min":1200.0,"max":3600.0},{"current":2695.887,"min":1200.0,"max":3600.0},{"current":2697.291,"min":1200.0,"max":3600.0},{"current":2700.406,"min":1200.0,"max":3600.0},{"current":2695.129,"min":1200.0,"max":3600.0},{"current":2701.143,"min":1200.0,"max":3600.0},{"current":2748.636,"min":1200.0,"max":3600.0},{"current":2697.722,"min":1200.0,"max":3600.0},{"current":2694.397,"min":1200.0,"max":3600.0},{"current":2693.959,"min":1200.0,"max":3600.0},{"current":2699.477,"min":1200.0,"max":3600.0},{"current":2696.737,"min":1200.0,"max":3600.0},{"current":2696.098,"min":1200.0,"max":3600.0},{"current":2708.063,"min":1200.0,"max":3600.0},{"current":2695.432,"min":1200.0,"max":3600.0},{"current":2696.109,"min":1200.0,"max":3600.0},{"current":2696.503,"min":1200.0,"max":3600.0},{"current":2780.869,"min":1200.0,"max":3600.0},{"current":2777.92,"min":1200.0,"max":3600.0},{"current":2696.98,"min":1200.0,"max":3600.0},{"current":2696.229,"min":1200.0,"max":3600.0},{"current":2631.789,"min":1200.0,"max":3600.0},{"current":2734.166,"min":1200.0,"max":3600.0},{"current":2710.339,"min":1200.0,"max":3600.0},{"current":2693.965,"min":1200.0,"max":3600.0},{"current":2695.92,"min":1200.0,"max":3600.0},{"current":2656.003,"min":1200.0,"max":3600.0},{"current":2670.121,"min":1200.0,"max":3600.0},{"current":2696.4,"min":1200.0,"max":3600.0},{"current":2695.166,"min":1200.0,"max":3600.0},{"current":2740.004,"min":1200.0,"max":3600.0},{"current":2748.699,"min":1200.0,"max":3600.0},{"current":2697.634,"min":1200.0,"max":3600.0},{"current":2694.645,"min":1200.0,"max":3600.0},{"current":2681.35,"min":1200.0,"max":3600.0},{"current":2695.153,"min":1200.0,"max":3600.0},{"current":2695.953,"min":1200.0,"max":3600.0},{"current":2778.561,"min":1200.0,"max":3600.0},{"current":2654.996,"min":1200.0,"max":3600.0},{"current":2692.697,"min":1200.0,"max":3600.0},{"current":2694.635,"min":1200.0,"max":3600.0},{"current":2748.49,"min":1200.0,"max":3600.0},{"current":2694.568,"min":1200.0,"max":3600.0},{"current":2721.939,"min":1200.0,"max":3600.0},{"current":2693.803,"min":1200.0,"max":3600.0},{"current":2753.726,"min":1200.0,"max":3600.0},{"current":2707.944,"min":1200.0,"max":3600.0},{"current":2696.112,"min":1200.0,"max":3600.0},{"current":2811.615,"min":1200.0,"max":3600.0},{"current":2787.269,"min":1200.0,"max":3600.0},{"current":2707.5,"min":1200.0,"max":3600.0},{"current":2694.442,"min":1200.0,"max":3600.0},{"current":2693.953,"min":1200.0,"max":3600.0},{"current":2694.88,"min":1200.0,"max":3600.0},{"current":2695.1,"min":1200.0,"max":3600.0},{"current":2694.689,"min":1200.0,"max":3600.0},{"current":2695.053,"min":1200.0,"max":3600.0},{"current":2736.103,"min":1200.0,"max":3600.0},{"current":2755.19,"min":1200.0,"max":3600.0},{"current":2713.509,"min":1200.0,"max":3600.0},{"current":2697.414,"min":1200.0,"max":3600.0},{"current":2764.1,"min":1200.0,"max":3600.0},{"current":2682.545,"min":1200.0,"max":3600.0},{"current":2694.751,"min":1200.0,"max":3600.0},{"current":2696.06,"min":1200.0,"max":3600.0},{"current":2693.951,"min":1200.0,"max":3600.0},{"current":2731.278,"min":1200.0,"max":3600.0},{"current":2709.853,"min":1200.0,"max":3600.0}],"disk_write_speed":71.28344426699046,"process_ids":[2113736,2113939]} +{"timestamp":1678268881.9762,"rapl_power_draw_absolute":166.4475362660126,"rapl_estimated_attributable_power_draw":8.578887934098383,"cpu_time_seconds":{"2113736":{"user":1627.95,"system":316.63,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":26.29,"system":39.24,"children_user":11.2,"children_system":388.12,"iowait":40.89}},"average_relative_cpu_utilization":0.05835899760839822,"absolute_cpu_utilization":1.0037238784125668,"relative_mem_usage":0.01849521846797699,"absolute_mem_usage":3833361408.0,"absolute_mem_percent_usage":0.007086625647730923,"mem_info_per_process":{"2113736":{"rss":3767279616,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3369021440,"pss":3531870208,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":476.2100000000001,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.1175,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":11.75,"mem":6.75,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.227875,0.23199999999999998,0.23025],"cpu_freq":[{"current":2697.166,"min":1200.0,"max":3600.0},{"current":2701.319,"min":1200.0,"max":3600.0},{"current":2699.384,"min":1200.0,"max":3600.0},{"current":2865.47,"min":1200.0,"max":3600.0},{"current":2711.726,"min":1200.0,"max":3600.0},{"current":2709.214,"min":1200.0,"max":3600.0},{"current":2795.237,"min":1200.0,"max":3600.0},{"current":2698.242,"min":1200.0,"max":3600.0},{"current":2802.114,"min":1200.0,"max":3600.0},{"current":2697.481,"min":1200.0,"max":3600.0},{"current":2792.742,"min":1200.0,"max":3600.0},{"current":2827.437,"min":1200.0,"max":3600.0},{"current":2693.471,"min":1200.0,"max":3600.0},{"current":2696.271,"min":1200.0,"max":3600.0},{"current":2693.398,"min":1200.0,"max":3600.0},{"current":2707.234,"min":1200.0,"max":3600.0},{"current":2693.837,"min":1200.0,"max":3600.0},{"current":2698.295,"min":1200.0,"max":3600.0},{"current":2695.522,"min":1200.0,"max":3600.0},{"current":2699.902,"min":1200.0,"max":3600.0},{"current":2792.511,"min":1200.0,"max":3600.0},{"current":2780.541,"min":1200.0,"max":3600.0},{"current":2697.366,"min":1200.0,"max":3600.0},{"current":2695.983,"min":1200.0,"max":3600.0},{"current":2695.815,"min":1200.0,"max":3600.0},{"current":2696.948,"min":1200.0,"max":3600.0},{"current":2696.349,"min":1200.0,"max":3600.0},{"current":2697.453,"min":1200.0,"max":3600.0},{"current":2694.794,"min":1200.0,"max":3600.0},{"current":2767.86,"min":1200.0,"max":3600.0},{"current":2778.159,"min":1200.0,"max":3600.0},{"current":2697.076,"min":1200.0,"max":3600.0},{"current":2698.382,"min":1200.0,"max":3600.0},{"current":2741.762,"min":1200.0,"max":3600.0},{"current":2744.162,"min":1200.0,"max":3600.0},{"current":2693.801,"min":1200.0,"max":3600.0},{"current":2786.015,"min":1200.0,"max":3600.0},{"current":2695.289,"min":1200.0,"max":3600.0},{"current":2730.47,"min":1200.0,"max":3600.0},{"current":2795.447,"min":1200.0,"max":3600.0},{"current":2722.985,"min":1200.0,"max":3600.0},{"current":2695.939,"min":1200.0,"max":3600.0},{"current":2820.146,"min":1200.0,"max":3600.0},{"current":2713.045,"min":1200.0,"max":3600.0},{"current":2694.563,"min":1200.0,"max":3600.0},{"current":2783.693,"min":1200.0,"max":3600.0},{"current":2690.645,"min":1200.0,"max":3600.0},{"current":2698.732,"min":1200.0,"max":3600.0},{"current":2858.831,"min":1200.0,"max":3600.0},{"current":2696.113,"min":1200.0,"max":3600.0},{"current":2709.516,"min":1200.0,"max":3600.0},{"current":2657.624,"min":1200.0,"max":3600.0},{"current":2806.69,"min":1200.0,"max":3600.0},{"current":2692.358,"min":1200.0,"max":3600.0},{"current":2873.305,"min":1200.0,"max":3600.0},{"current":2695.668,"min":1200.0,"max":3600.0},{"current":2700.047,"min":1200.0,"max":3600.0},{"current":2694.095,"min":1200.0,"max":3600.0},{"current":2696.509,"min":1200.0,"max":3600.0},{"current":2695.946,"min":1200.0,"max":3600.0},{"current":2781.349,"min":1200.0,"max":3600.0},{"current":2662.631,"min":1200.0,"max":3600.0},{"current":2698.811,"min":1200.0,"max":3600.0},{"current":2694.876,"min":1200.0,"max":3600.0},{"current":2694.787,"min":1200.0,"max":3600.0},{"current":2695.588,"min":1200.0,"max":3600.0},{"current":2693.529,"min":1200.0,"max":3600.0},{"current":2695.109,"min":1200.0,"max":3600.0},{"current":2696.265,"min":1200.0,"max":3600.0},{"current":2789.185,"min":1200.0,"max":3600.0},{"current":2746.248,"min":1200.0,"max":3600.0},{"current":2694.241,"min":1200.0,"max":3600.0},{"current":2694.078,"min":1200.0,"max":3600.0},{"current":2687.753,"min":1200.0,"max":3600.0},{"current":2705.614,"min":1200.0,"max":3600.0},{"current":2695.577,"min":1200.0,"max":3600.0},{"current":2697.208,"min":1200.0,"max":3600.0},{"current":2695.131,"min":1200.0,"max":3600.0},{"current":2779.271,"min":1200.0,"max":3600.0},{"current":2750.656,"min":1200.0,"max":3600.0}],"disk_write_speed":71.6547359909114,"process_ids":[2113736,2113939]} +{"timestamp":1678268897.564219,"rapl_power_draw_absolute":167.7330113508794,"rapl_estimated_attributable_power_draw":8.400179932368587,"cpu_time_seconds":{"2113736":{"user":1641.16,"system":319.02,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":26.48,"system":39.61,"children_user":11.3,"children_system":391.25,"iowait":41.23}},"average_relative_cpu_utilization":0.05672942179786311,"absolute_cpu_utilization":1.0037452751990776,"relative_mem_usage":0.018119243354093286,"absolute_mem_usage":3754456064.0,"absolute_mem_percent_usage":0.006940755594005628,"mem_info_per_process":{"2113736":{"rss":3692834816,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3290116096,"pss":3452964864,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":476.21000000000004,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.22,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.5,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":4.5,"mem":2.5,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":22.0,"mem":14.666666666666666,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.231,0.2325,0.230375],"cpu_freq":[{"current":2695.517,"min":1200.0,"max":3600.0},{"current":2695.439,"min":1200.0,"max":3600.0},{"current":2740.481,"min":1200.0,"max":3600.0},{"current":2848.506,"min":1200.0,"max":3600.0},{"current":2719.105,"min":1200.0,"max":3600.0},{"current":2709.836,"min":1200.0,"max":3600.0},{"current":2868.645,"min":1200.0,"max":3600.0},{"current":2697.393,"min":1200.0,"max":3600.0},{"current":2875.211,"min":1200.0,"max":3600.0},{"current":2702.429,"min":1200.0,"max":3600.0},{"current":2814.567,"min":1200.0,"max":3600.0},{"current":2841.692,"min":1200.0,"max":3600.0},{"current":2692.761,"min":1200.0,"max":3600.0},{"current":2698.082,"min":1200.0,"max":3600.0},{"current":2691.461,"min":1200.0,"max":3600.0},{"current":2702.944,"min":1200.0,"max":3600.0},{"current":2695.736,"min":1200.0,"max":3600.0},{"current":2694.943,"min":1200.0,"max":3600.0},{"current":2696.443,"min":1200.0,"max":3600.0},{"current":2696.544,"min":1200.0,"max":3600.0},{"current":2792.693,"min":1200.0,"max":3600.0},{"current":2779.122,"min":1200.0,"max":3600.0},{"current":2697.005,"min":1200.0,"max":3600.0},{"current":2697.689,"min":1200.0,"max":3600.0},{"current":2695.609,"min":1200.0,"max":3600.0},{"current":2697.289,"min":1200.0,"max":3600.0},{"current":2696.575,"min":1200.0,"max":3600.0},{"current":2694.887,"min":1200.0,"max":3600.0},{"current":2697.666,"min":1200.0,"max":3600.0},{"current":2793.783,"min":1200.0,"max":3600.0},{"current":2769.263,"min":1200.0,"max":3600.0},{"current":2694.982,"min":1200.0,"max":3600.0},{"current":2697.697,"min":1200.0,"max":3600.0},{"current":2749.868,"min":1200.0,"max":3600.0},{"current":2762.832,"min":1200.0,"max":3600.0},{"current":2698.037,"min":1200.0,"max":3600.0},{"current":2779.714,"min":1200.0,"max":3600.0},{"current":2694.719,"min":1200.0,"max":3600.0},{"current":2726.487,"min":1200.0,"max":3600.0},{"current":2758.403,"min":1200.0,"max":3600.0},{"current":2779.731,"min":1200.0,"max":3600.0},{"current":2694.617,"min":1200.0,"max":3600.0},{"current":2831.376,"min":1200.0,"max":3600.0},{"current":2693.573,"min":1200.0,"max":3600.0},{"current":2728.147,"min":1200.0,"max":3600.0},{"current":2745.569,"min":1200.0,"max":3600.0},{"current":2663.728,"min":1200.0,"max":3600.0},{"current":2705.68,"min":1200.0,"max":3600.0},{"current":2834.351,"min":1200.0,"max":3600.0},{"current":2696.098,"min":1200.0,"max":3600.0},{"current":2697.32,"min":1200.0,"max":3600.0},{"current":2624.736,"min":1200.0,"max":3600.0},{"current":2814.706,"min":1200.0,"max":3600.0},{"current":2771.598,"min":1200.0,"max":3600.0},{"current":2850.671,"min":1200.0,"max":3600.0},{"current":2722.221,"min":1200.0,"max":3600.0},{"current":2694.461,"min":1200.0,"max":3600.0},{"current":2693.922,"min":1200.0,"max":3600.0},{"current":2694.988,"min":1200.0,"max":3600.0},{"current":2696.678,"min":1200.0,"max":3600.0},{"current":2755.119,"min":1200.0,"max":3600.0},{"current":2698.123,"min":1200.0,"max":3600.0},{"current":2695.447,"min":1200.0,"max":3600.0},{"current":2695.183,"min":1200.0,"max":3600.0},{"current":2694.167,"min":1200.0,"max":3600.0},{"current":2695.365,"min":1200.0,"max":3600.0},{"current":2694.285,"min":1200.0,"max":3600.0},{"current":2695.482,"min":1200.0,"max":3600.0},{"current":2694.477,"min":1200.0,"max":3600.0},{"current":2727.659,"min":1200.0,"max":3600.0},{"current":2763.538,"min":1200.0,"max":3600.0},{"current":2695.429,"min":1200.0,"max":3600.0},{"current":2693.74,"min":1200.0,"max":3600.0},{"current":2776.703,"min":1200.0,"max":3600.0},{"current":2741.818,"min":1200.0,"max":3600.0},{"current":2696.249,"min":1200.0,"max":3600.0},{"current":2697.462,"min":1200.0,"max":3600.0},{"current":2696.584,"min":1200.0,"max":3600.0},{"current":2763.683,"min":1200.0,"max":3600.0},{"current":2778.083,"min":1200.0,"max":3600.0}],"disk_write_speed":71.02890173410404,"process_ids":[2113736,2113939]} +{"timestamp":1678268913.356225,"rapl_power_draw_absolute":167.41312581819344,"rapl_estimated_attributable_power_draw":8.361343937848817,"cpu_time_seconds":{"2113736":{"user":1654.53,"system":321.45,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":26.68,"system":39.94,"children_user":11.41,"children_system":394.41,"iowait":41.57}},"average_relative_cpu_utilization":0.056728482183183514,"absolute_cpu_utilization":1.003690016813862,"relative_mem_usage":0.018092202062542594,"absolute_mem_usage":3756024832.0,"absolute_mem_percent_usage":0.006943655730559656,"mem_info_per_process":{"2113736":{"rss":3691397120,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3291684864,"pss":3454533632,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":490.9800000000001,"nvidia_estimated_attributable_power_draw":69.56,"average_gpu_estimated_utilization_absolute":0.25666666666666665,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":21.0,"mem":14.333333333333334,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":10.0,"mem":5.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":16.75,"mem":9.5,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":25.666666666666668,"mem":17.0,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.56},"cpu_count_adjusted_average_load":[0.234125,0.23312499999999997,0.230625],"cpu_freq":[{"current":2694.26,"min":1200.0,"max":3600.0},{"current":2697.877,"min":1200.0,"max":3600.0},{"current":2695.882,"min":1200.0,"max":3600.0},{"current":2726.06,"min":1200.0,"max":3600.0},{"current":2694.411,"min":1200.0,"max":3600.0},{"current":2696.17,"min":1200.0,"max":3600.0},{"current":2695.005,"min":1200.0,"max":3600.0},{"current":2812.21,"min":1200.0,"max":3600.0},{"current":2761.954,"min":1200.0,"max":3600.0},{"current":2700.856,"min":1200.0,"max":3600.0},{"current":2811.608,"min":1200.0,"max":3600.0},{"current":2876.861,"min":1200.0,"max":3600.0},{"current":2655.609,"min":1200.0,"max":3600.0},{"current":2694.961,"min":1200.0,"max":3600.0},{"current":2695.656,"min":1200.0,"max":3600.0},{"current":2718.386,"min":1200.0,"max":3600.0},{"current":2699.206,"min":1200.0,"max":3600.0},{"current":2698.747,"min":1200.0,"max":3600.0},{"current":2698.656,"min":1200.0,"max":3600.0},{"current":2697.152,"min":1200.0,"max":3600.0},{"current":2793.842,"min":1200.0,"max":3600.0},{"current":2695.709,"min":1200.0,"max":3600.0},{"current":2706.622,"min":1200.0,"max":3600.0},{"current":2720.272,"min":1200.0,"max":3600.0},{"current":2828.368,"min":1200.0,"max":3600.0},{"current":2695.662,"min":1200.0,"max":3600.0},{"current":2701.148,"min":1200.0,"max":3600.0},{"current":2696.528,"min":1200.0,"max":3600.0},{"current":2696.35,"min":1200.0,"max":3600.0},{"current":2785.741,"min":1200.0,"max":3600.0},{"current":2783.003,"min":1200.0,"max":3600.0},{"current":2694.344,"min":1200.0,"max":3600.0},{"current":2696.441,"min":1200.0,"max":3600.0},{"current":2716.962,"min":1200.0,"max":3600.0},{"current":2791.364,"min":1200.0,"max":3600.0},{"current":2696.509,"min":1200.0,"max":3600.0},{"current":2775.011,"min":1200.0,"max":3600.0},{"current":2736.371,"min":1200.0,"max":3600.0},{"current":2794.114,"min":1200.0,"max":3600.0},{"current":2769.272,"min":1200.0,"max":3600.0},{"current":2694.459,"min":1200.0,"max":3600.0},{"current":2693.804,"min":1200.0,"max":3600.0},{"current":2700.556,"min":1200.0,"max":3600.0},{"current":2662.534,"min":1200.0,"max":3600.0},{"current":2834.57,"min":1200.0,"max":3600.0},{"current":2697.843,"min":1200.0,"max":3600.0},{"current":2728.762,"min":1200.0,"max":3600.0},{"current":2693.472,"min":1200.0,"max":3600.0},{"current":2873.48,"min":1200.0,"max":3600.0},{"current":2735.907,"min":1200.0,"max":3600.0},{"current":2647.685,"min":1200.0,"max":3600.0},{"current":2693.356,"min":1200.0,"max":3600.0},{"current":2867.715,"min":1200.0,"max":3600.0},{"current":2695.785,"min":1200.0,"max":3600.0},{"current":2824.907,"min":1200.0,"max":3600.0},{"current":2693.81,"min":1200.0,"max":3600.0},{"current":2694.733,"min":1200.0,"max":3600.0},{"current":2710.23,"min":1200.0,"max":3600.0},{"current":2698.65,"min":1200.0,"max":3600.0},{"current":2696.312,"min":1200.0,"max":3600.0},{"current":2771.387,"min":1200.0,"max":3600.0},{"current":2693.822,"min":1200.0,"max":3600.0},{"current":2693.957,"min":1200.0,"max":3600.0},{"current":2696.782,"min":1200.0,"max":3600.0},{"current":2695.747,"min":1200.0,"max":3600.0},{"current":2694.04,"min":1200.0,"max":3600.0},{"current":2695.581,"min":1200.0,"max":3600.0},{"current":2692.857,"min":1200.0,"max":3600.0},{"current":2695.525,"min":1200.0,"max":3600.0},{"current":2692.76,"min":1200.0,"max":3600.0},{"current":2691.295,"min":1200.0,"max":3600.0},{"current":2708.402,"min":1200.0,"max":3600.0},{"current":2697.368,"min":1200.0,"max":3600.0},{"current":2756.118,"min":1200.0,"max":3600.0},{"current":2774.318,"min":1200.0,"max":3600.0},{"current":2713.847,"min":1200.0,"max":3600.0},{"current":2697.719,"min":1200.0,"max":3600.0},{"current":2783.052,"min":1200.0,"max":3600.0},{"current":2791.834,"min":1200.0,"max":3600.0},{"current":2770.952,"min":1200.0,"max":3600.0}],"disk_write_speed":72.54549389748219,"process_ids":[2113736,2113939]} +{"timestamp":1678268929.140232,"rapl_power_draw_absolute":166.64637296781126,"rapl_estimated_attributable_power_draw":8.474264848866353,"cpu_time_seconds":{"2113736":{"user":1667.64,"system":324.13,"children_user":1.09,"children_system":1.38,"iowait":0.0},"2113939":{"user":26.89,"system":40.29,"children_user":11.5,"children_system":397.57,"iowait":41.92}},"average_relative_cpu_utilization":0.057706565547156155,"absolute_cpu_utilization":1.0037201230055939,"relative_mem_usage":0.017911150841845497,"absolute_mem_usage":3711857664.0,"absolute_mem_percent_usage":0.006862005149718717,"mem_info_per_process":{"2113736":{"rss":3647516672,"vms":27878981632,"shared":828198912,"text":2633728,"lib":0,"data":5882613760,"dirty":0,"uss":3247517696,"pss":3410366464,"swap":0},"2113939":{"rss":452304896,"vms":11101605888,"shared":23707648,"text":2633728,"lib":0,"data":2832252928,"dirty":0,"uss":165617664,"pss":301491200,"swap":0}},"nvidia_draw_absolute":484.74000000000007,"nvidia_estimated_attributable_power_draw":69.61,"average_gpu_estimated_utilization_absolute":0.29,"per_gpu_average_estimated_utilization_absolute":{"(0, 2012071)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013114)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(0, 2013759)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(1, 659539)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(2, 661155)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(3, 1325829)":{"sm":6.0,"mem":3.5,"enc":0.0,"dec":0.0},"(4, 2039509)":{"sm":16.5,"mem":9.0,"enc":0.0,"dec":0.0},"(5, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(6, 0)":{"sm":0.0,"mem":0.0,"enc":0.0,"dec":0.0},"(7, 2113736)":{"sm":29.0,"mem":20.4,"enc":0.0,"dec":0.0}},"average_gpu_estimated_utilization_relative":1.0,"per_gpu_performance_state":{"7":"P0"},"per_gpu_power_draw":{"7":69.61},"cpu_count_adjusted_average_load":[0.23475000000000001,0.23337500000000003,0.23075],"cpu_freq":[{"current":2694.828,"min":1200.0,"max":3600.0},{"current":2696.091,"min":1200.0,"max":3600.0},{"current":2701.92,"min":1200.0,"max":3600.0},{"current":2701.851,"min":1200.0,"max":3600.0},{"current":2689.912,"min":1200.0,"max":3600.0},{"current":2829.319,"min":1200.0,"max":3600.0},{"current":2701.201,"min":1200.0,"max":3600.0},{"current":2790.397,"min":1200.0,"max":3600.0},{"current":2632.597,"min":1200.0,"max":3600.0},{"current":2696.006,"min":1200.0,"max":3600.0},{"current":2852.061,"min":1200.0,"max":3600.0},{"current":2812.204,"min":1200.0,"max":3600.0},{"current":2693.021,"min":1200.0,"max":3600.0},{"current":2695.747,"min":1200.0,"max":3600.0},{"current":2697.99,"min":1200.0,"max":3600.0},{"current":2695.157,"min":1200.0,"max":3600.0},{"current":2739.224,"min":1200.0,"max":3600.0},{"current":2696.499,"min":1200.0,"max":3600.0},{"current":2696.682,"min":1200.0,"max":3600.0},{"current":2701.584,"min":1200.0,"max":3600.0},{"current":2759.451,"min":1200.0,"max":3600.0},{"current":2701.205,"min":1200.0,"max":3600.0},{"current":2696.066,"min":1200.0,"max":3600.0},{"current":2694.119,"min":1200.0,"max":3600.0},{"current":2698.567,"min":1200.0,"max":3600.0},{"current":2696.534,"min":1200.0,"max":3600.0},{"current":2696.94,"min":1200.0,"max":3600.0},{"current":2722.055,"min":1200.0,"max":3600.0},{"current":2696.759,"min":1200.0,"max":3600.0},{"current":2785.344,"min":1200.0,"max":3600.0},{"current":2783.83,"min":1200.0,"max":3600.0},{"current":2694.299,"min":1200.0,"max":3600.0},{"current":2699.02,"min":1200.0,"max":3600.0},{"current":2696.158,"min":1200.0,"max":3600.0},{"current":2696.22,"min":1200.0,"max":3600.0},{"current":2697.861,"min":1200.0,"max":3600.0},{"current":2748.039,"min":1200.0,"max":3600.0},{"current":2696.297,"min":1200.0,"max":3600.0},{"current":2625.56,"min":1200.0,"max":3600.0},{"current":2738.217,"min":1200.0,"max":3600.0},{"current":2714.772,"min":1200.0,"max":3600.0},{"current":2696.041,"min":1200.0,"max":3600.0},{"current":2741.578,"min":1200.0,"max":3600.0},{"current":2696.485,"min":1200.0,"max":3600.0},{"current":2819.306,"min":1200.0,"max":3600.0},{"current":2691.28,"min":1200.0,"max":3600.0},{"current":2778.641,"min":1200.0,"max":3600.0},{"current":2694.074,"min":1200.0,"max":3600.0},{"current":2775.552,"min":1200.0,"max":3600.0},{"current":2698.533,"min":1200.0,"max":3600.0},{"current":2694.102,"min":1200.0,"max":3600.0},{"current":2690.087,"min":1200.0,"max":3600.0},{"current":2795.297,"min":1200.0,"max":3600.0},{"current":2707.39,"min":1200.0,"max":3600.0},{"current":2833.957,"min":1200.0,"max":3600.0},{"current":2756.206,"min":1200.0,"max":3600.0},{"current":2695.597,"min":1200.0,"max":3600.0},{"current":2694.117,"min":1200.0,"max":3600.0},{"current":2694.067,"min":1200.0,"max":3600.0},{"current":2696.207,"min":1200.0,"max":3600.0},{"current":2787.858,"min":1200.0,"max":3600.0},{"current":2695.133,"min":1200.0,"max":3600.0},{"current":2693.993,"min":1200.0,"max":3600.0},{"current":2693.719,"min":1200.0,"max":3600.0},{"current":2694.586,"min":1200.0,"max":3600.0},{"current":2715.998,"min":1200.0,"max":3600.0},{"current":2695.739,"min":1200.0,"max":3600.0},{"current":2695.65,"min":1200.0,"max":3600.0},{"current":2697.302,"min":1200.0,"max":3600.0},{"current":2731.012,"min":1200.0,"max":3600.0},{"current":2764.261,"min":1200.0,"max":3600.0},{"current":2693.47,"min":1200.0,"max":3600.0},{"current":2697.657,"min":1200.0,"max":3600.0},{"current":2728.66,"min":1200.0,"max":3600.0},{"current":2745.648,"min":1200.0,"max":3600.0},{"current":2699.194,"min":1200.0,"max":3600.0},{"current":2693.348,"min":1200.0,"max":3600.0},{"current":2766.018,"min":1200.0,"max":3600.0},{"current":2771.368,"min":1200.0,"max":3600.0},{"current":2784.05,"min":1200.0,"max":3600.0}],"disk_write_speed":72.15741822212634,"process_ids":[2113736,2113939]} diff --git a/code/co2log/impacttracker/impact_tracker_log.log b/code/co2log/impacttracker/impact_tracker_log.log new file mode 100644 index 0000000..efa9d4e --- /dev/null +++ b/code/co2log/impacttracker/impact_tracker_log.log @@ -0,0 +1,20 @@ +2023-03-06 15:43:23,996 - experiment_impact_tracker.compute_tracker.ImpactTracker - ERROR - Encountered exception within power monitor thread! +2023-03-06 15:43:23,999 - experiment_impact_tracker.compute_tracker.ImpactTracker - ERROR - File "/home/ylan/miniconda3/envs/pytorch/lib/python3.9/site-packages/experiment_impact_tracker/compute_tracker.py", line 161, in launch_power_monitor + _sample_and_log_power(log_dir, initial_info, logger=logger) + File "/home/ylan/miniconda3/envs/pytorch/lib/python3.9/site-packages/experiment_impact_tracker/compute_tracker.py", line 108, in _sample_and_log_power + results = header["routing"]["function"]( + File "/home/ylan/miniconda3/envs/pytorch/lib/python3.9/site-packages/experiment_impact_tracker/gpu/nvidia.py", line 158, in get_nvidia_gpu_power + outs, errors = p.communicate() + File "/home/ylan/miniconda3/envs/pytorch/lib/python3.9/subprocess.py", line 1121, in communicate + stdout = self.stdout.read() + +2023-03-06 15:43:32,772 - experiment_impact_tracker.compute_tracker.ImpactTracker - ERROR - Encountered exception within power monitor thread! +2023-03-06 15:43:32,774 - experiment_impact_tracker.compute_tracker.ImpactTracker - ERROR - File "/home/ylan/miniconda3/envs/pytorch/lib/python3.9/site-packages/experiment_impact_tracker/compute_tracker.py", line 161, in launch_power_monitor + _sample_and_log_power(log_dir, initial_info, logger=logger) + File "/home/ylan/miniconda3/envs/pytorch/lib/python3.9/site-packages/experiment_impact_tracker/compute_tracker.py", line 108, in _sample_and_log_power + results = header["routing"]["function"]( + File "/home/ylan/miniconda3/envs/pytorch/lib/python3.9/site-packages/experiment_impact_tracker/disk/common.py", line 38, in measure_disk_speed_at_dir + writetofile(filename, filesize) + File "/home/ylan/miniconda3/envs/pytorch/lib/python3.9/site-packages/experiment_impact_tracker/disk/common.py", line 20, in writetofile + f.close() + diff --git a/code/co2log/impacttracker/info.pkl b/code/co2log/impacttracker/info.pkl new file mode 100644 index 0000000000000000000000000000000000000000..3cb2c81ad84dab1450dd5c28f1f6ab1794b67b29 GIT binary patch literal 611684 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 IC1$A}0QK`Id;kCd literal 0 HcmV?d00001 diff --git a/code/cufile.log b/code/cufile.log index d9aee1a..c011b22 100644 --- a/code/cufile.log +++ b/code/cufile.log @@ -4,3 +4,1126 @@ 22-12-2022 11:02:15:996 [pid=1912278 tid=1912278] NOTICE cufio-drv:625 running in compatible mode 22-12-2022 11:15:17:212 [pid=1915495 tid=1915495] NOTICE cufio-drv:625 running in compatible mode 02-01-2023 00:11:43:868 [pid=931838 tid=931838] NOTICE cufio-drv:625 running in compatible mode + 11-01-2023 00:50:10:932 [pid=3978859 tid=3978859] NOTICE cufio-drv:625 running in compatible mode + 11-01-2023 00:52:36:836 [pid=3979769 tid=3979769] NOTICE cufio-drv:625 running in compatible mode + 11-01-2023 01:06:06:120 [pid=3982586 tid=3982586] NOTICE cufio-drv:625 running in compatible mode + 17-01-2023 08:53:28:752 [pid=2164616 tid=2164616] NOTICE cufio-drv:625 running in compatible mode + 23-01-2023 10:57:57:156 [pid=1190495 tid=1190495] NOTICE cufio-drv:625 running in compatible mode + 26-01-2023 10:25:06:261 [pid=3015472 tid=3015472] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 10:25:06:261 [pid=3015472 tid=3015472] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 10:25:06:261 [pid=3015472 tid=3015472] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 10:25:06:261 [pid=3015472 tid=3015472] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 10:34:31:233 [pid=3017077 tid=3017077] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 10:34:31:234 [pid=3017077 tid=3017077] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 10:34:31:234 [pid=3017077 tid=3017077] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 10:34:31:234 [pid=3017077 tid=3017077] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 10:52:21:753 [pid=3021642 tid=3021642] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 10:52:21:753 [pid=3021642 tid=3021642] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 10:52:21:753 [pid=3021642 tid=3021642] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 10:52:21:753 [pid=3021642 tid=3021642] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 10:54:18:421 [pid=3022310 tid=3022310] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 10:54:18:421 [pid=3022310 tid=3022310] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 10:54:18:421 [pid=3022310 tid=3022310] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 10:54:18:421 [pid=3022310 tid=3022310] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:03:27:336 [pid=3023991 tid=3023991] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:03:27:336 [pid=3023991 tid=3023991] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:03:27:336 [pid=3023991 tid=3023991] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:03:27:336 [pid=3023991 tid=3023991] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:03:42:250 [pid=3024086 tid=3024086] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:03:42:251 [pid=3024086 tid=3024086] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:03:42:251 [pid=3024086 tid=3024086] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:03:42:251 [pid=3024086 tid=3024086] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:04:04:264 [pid=3024226 tid=3024226] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:04:04:264 [pid=3024226 tid=3024226] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:04:04:264 [pid=3024226 tid=3024226] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:04:04:264 [pid=3024226 tid=3024226] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:05:39:970 [pid=3024741 tid=3024741] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:05:39:970 [pid=3024741 tid=3024741] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:05:39:970 [pid=3024741 tid=3024741] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:05:39:970 [pid=3024741 tid=3024741] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:07:01:687 [pid=3025277 tid=3025277] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:07:01:688 [pid=3025277 tid=3025277] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:07:01:688 [pid=3025277 tid=3025277] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:07:01:688 [pid=3025277 tid=3025277] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:08:55:701 [pid=3025897 tid=3025897] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:08:55:702 [pid=3025897 tid=3025897] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:08:55:702 [pid=3025897 tid=3025897] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:08:55:702 [pid=3025897 tid=3025897] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:09:33:336 [pid=3026373 tid=3026373] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:09:33:336 [pid=3026373 tid=3026373] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:09:33:336 [pid=3026373 tid=3026373] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:09:33:336 [pid=3026373 tid=3026373] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:10:39:621 [pid=3026840 tid=3026840] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:10:39:621 [pid=3026840 tid=3026840] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:10:39:621 [pid=3026840 tid=3026840] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:10:39:621 [pid=3026840 tid=3026840] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:11:17:295 [pid=3027291 tid=3027291] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:11:17:295 [pid=3027291 tid=3027291] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:11:17:295 [pid=3027291 tid=3027291] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:11:17:295 [pid=3027291 tid=3027291] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:13:09:865 [pid=3027875 tid=3027875] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:13:09:865 [pid=3027875 tid=3027875] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:13:09:865 [pid=3027875 tid=3027875] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:13:09:865 [pid=3027875 tid=3027875] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:39:21:262 [pid=3032182 tid=3032182] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:39:21:262 [pid=3032182 tid=3032182] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:39:21:262 [pid=3032182 tid=3032182] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:39:21:262 [pid=3032182 tid=3032182] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:39:55:842 [pid=3032501 tid=3032501] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:39:55:842 [pid=3032501 tid=3032501] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:39:55:842 [pid=3032501 tid=3032501] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:39:55:842 [pid=3032501 tid=3032501] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:40:44:887 [pid=3032863 tid=3032863] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:40:44:887 [pid=3032863 tid=3032863] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:40:44:887 [pid=3032863 tid=3032863] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:40:44:887 [pid=3032863 tid=3032863] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:42:03:406 [pid=3033300 tid=3033300] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:42:03:406 [pid=3033300 tid=3033300] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:42:03:406 [pid=3033300 tid=3033300] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:42:03:406 [pid=3033300 tid=3033300] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:42:39:398 [pid=3033608 tid=3033608] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:42:39:398 [pid=3033608 tid=3033608] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:42:39:398 [pid=3033608 tid=3033608] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:42:39:398 [pid=3033608 tid=3033608] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:44:13:493 [pid=3034062 tid=3034062] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:44:13:493 [pid=3034062 tid=3034062] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:44:13:493 [pid=3034062 tid=3034062] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:44:13:493 [pid=3034062 tid=3034062] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:46:59:529 [pid=3034661 tid=3034661] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:46:59:529 [pid=3034661 tid=3034661] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:46:59:529 [pid=3034661 tid=3034661] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:46:59:529 [pid=3034661 tid=3034661] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 11:47:41:500 [pid=3034988 tid=3034988] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 11:47:41:500 [pid=3034988 tid=3034988] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 11:47:41:500 [pid=3034988 tid=3034988] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 11:47:41:500 [pid=3034988 tid=3034988] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:16:40:877 [pid=3046969 tid=3046969] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:16:40:877 [pid=3046969 tid=3046969] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:16:40:877 [pid=3046969 tid=3046969] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:16:40:877 [pid=3046969 tid=3046969] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:18:10:342 [pid=3047430 tid=3047430] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:18:10:342 [pid=3047430 tid=3047430] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:18:10:342 [pid=3047430 tid=3047430] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:18:10:342 [pid=3047430 tid=3047430] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:18:42:514 [pid=3047698 tid=3047698] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:18:42:514 [pid=3047698 tid=3047698] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:18:42:514 [pid=3047698 tid=3047698] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:18:42:514 [pid=3047698 tid=3047698] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:20:44:941 [pid=3048164 tid=3048164] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:20:44:941 [pid=3048164 tid=3048164] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:20:44:942 [pid=3048164 tid=3048164] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:20:44:942 [pid=3048164 tid=3048164] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:25:38:738 [pid=3049024 tid=3049024] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:25:38:738 [pid=3049024 tid=3049024] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:25:38:738 [pid=3049024 tid=3049024] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:25:38:738 [pid=3049024 tid=3049024] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:26:09:242 [pid=3049362 tid=3049362] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:26:09:242 [pid=3049362 tid=3049362] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:26:09:242 [pid=3049362 tid=3049362] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:26:09:242 [pid=3049362 tid=3049362] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:27:41:674 [pid=3049781 tid=3049781] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:27:41:674 [pid=3049781 tid=3049781] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:27:41:674 [pid=3049781 tid=3049781] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:27:41:674 [pid=3049781 tid=3049781] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:27:56:587 [pid=3050042 tid=3050042] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:27:56:587 [pid=3050042 tid=3050042] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:27:56:587 [pid=3050042 tid=3050042] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:27:56:587 [pid=3050042 tid=3050042] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:29:10:26 [pid=3050507 tid=3050507] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:29:10:26 [pid=3050507 tid=3050507] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:29:10:26 [pid=3050507 tid=3050507] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:29:10:26 [pid=3050507 tid=3050507] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:29:44:712 [pid=3050884 tid=3050884] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:29:44:712 [pid=3050884 tid=3050884] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:29:44:712 [pid=3050884 tid=3050884] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:29:44:712 [pid=3050884 tid=3050884] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:30:57:322 [pid=3051292 tid=3051292] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:30:57:322 [pid=3051292 tid=3051292] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:30:57:322 [pid=3051292 tid=3051292] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:30:57:322 [pid=3051292 tid=3051292] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:31:44:509 [pid=3051720 tid=3051720] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:31:44:510 [pid=3051720 tid=3051720] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:31:44:510 [pid=3051720 tid=3051720] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:31:44:510 [pid=3051720 tid=3051720] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:33:10:477 [pid=3052209 tid=3052209] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:33:10:477 [pid=3052209 tid=3052209] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:33:10:477 [pid=3052209 tid=3052209] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:33:10:477 [pid=3052209 tid=3052209] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:33:44:163 [pid=3052582 tid=3052582] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:33:44:163 [pid=3052582 tid=3052582] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:33:44:163 [pid=3052582 tid=3052582] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:33:44:163 [pid=3052582 tid=3052582] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:35:50:199 [pid=3053145 tid=3053145] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:35:50:199 [pid=3053145 tid=3053145] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:35:50:199 [pid=3053145 tid=3053145] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:35:50:199 [pid=3053145 tid=3053145] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:36:29:44 [pid=3053951 tid=3053951] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:36:29:44 [pid=3053951 tid=3053951] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:36:29:44 [pid=3053951 tid=3053951] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:36:29:44 [pid=3053951 tid=3053951] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:37:26:505 [pid=3054409 tid=3054409] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:37:26:505 [pid=3054409 tid=3054409] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:37:26:505 [pid=3054409 tid=3054409] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:37:26:505 [pid=3054409 tid=3054409] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:37:53:513 [pid=3054777 tid=3054777] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:37:53:513 [pid=3054777 tid=3054777] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:37:53:513 [pid=3054777 tid=3054777] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:37:53:513 [pid=3054777 tid=3054777] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:38:20:413 [pid=3055133 tid=3055133] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:38:20:414 [pid=3055133 tid=3055133] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:38:20:414 [pid=3055133 tid=3055133] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:38:20:414 [pid=3055133 tid=3055133] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:39:12:579 [pid=3055623 tid=3055623] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:39:12:579 [pid=3055623 tid=3055623] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:39:12:579 [pid=3055623 tid=3055623] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:39:12:579 [pid=3055623 tid=3055623] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:39:45:869 [pid=3056004 tid=3056004] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:39:45:869 [pid=3056004 tid=3056004] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:39:45:869 [pid=3056004 tid=3056004] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:39:45:869 [pid=3056004 tid=3056004] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:43:17:734 [pid=3056819 tid=3056819] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:43:17:734 [pid=3056819 tid=3056819] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:43:17:734 [pid=3056819 tid=3056819] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:43:17:734 [pid=3056819 tid=3056819] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:43:57:722 [pid=3057233 tid=3057233] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:43:57:722 [pid=3057233 tid=3057233] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:43:57:722 [pid=3057233 tid=3057233] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:43:57:722 [pid=3057233 tid=3057233] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:47:42:85 [pid=3057968 tid=3057968] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:47:42:85 [pid=3057968 tid=3057968] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:47:42:85 [pid=3057968 tid=3057968] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:47:42:85 [pid=3057968 tid=3057968] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:48:42:517 [pid=3058432 tid=3058432] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:48:42:517 [pid=3058432 tid=3058432] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:48:42:517 [pid=3058432 tid=3058432] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:48:42:517 [pid=3058432 tid=3058432] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:52:04:776 [pid=3059169 tid=3059169] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:52:04:776 [pid=3059169 tid=3059169] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:52:04:776 [pid=3059169 tid=3059169] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:52:04:776 [pid=3059169 tid=3059169] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:54:22:97 [pid=3059818 tid=3059818] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:54:22:98 [pid=3059818 tid=3059818] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:54:22:98 [pid=3059818 tid=3059818] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:54:22:98 [pid=3059818 tid=3059818] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:55:05:317 [pid=3061775 tid=3061775] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:55:05:318 [pid=3061775 tid=3061775] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:55:05:318 [pid=3061775 tid=3061775] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:55:05:318 [pid=3061775 tid=3061775] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:57:03:547 [pid=3062437 tid=3062437] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:57:03:547 [pid=3062437 tid=3062437] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:57:03:547 [pid=3062437 tid=3062437] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:57:03:547 [pid=3062437 tid=3062437] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:57:50:204 [pid=3062879 tid=3062879] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:57:50:204 [pid=3062879 tid=3062879] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:57:50:204 [pid=3062879 tid=3062879] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:57:50:204 [pid=3062879 tid=3062879] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:58:22:498 [pid=3063249 tid=3063249] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:58:22:499 [pid=3063249 tid=3063249] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:58:22:499 [pid=3063249 tid=3063249] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:58:22:499 [pid=3063249 tid=3063249] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 13:58:50:159 [pid=3063617 tid=3063617] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 13:58:50:160 [pid=3063617 tid=3063617] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 13:58:50:160 [pid=3063617 tid=3063617] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 13:58:50:160 [pid=3063617 tid=3063617] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:02:28:954 [pid=3065778 tid=3065778] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:02:28:954 [pid=3065778 tid=3065778] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:02:28:954 [pid=3065778 tid=3065778] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:02:28:954 [pid=3065778 tid=3065778] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:02:57:204 [pid=3066149 tid=3066149] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:02:57:204 [pid=3066149 tid=3066149] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:02:57:204 [pid=3066149 tid=3066149] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:02:57:204 [pid=3066149 tid=3066149] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:03:44:253 [pid=3066569 tid=3066569] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:03:44:254 [pid=3066569 tid=3066569] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:03:44:254 [pid=3066569 tid=3066569] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:03:44:254 [pid=3066569 tid=3066569] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:08:08:333 [pid=3067545 tid=3067545] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:08:08:333 [pid=3067545 tid=3067545] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:08:08:333 [pid=3067545 tid=3067545] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:08:08:333 [pid=3067545 tid=3067545] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:14:25:479 [pid=3068627 tid=3068627] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:14:25:479 [pid=3068627 tid=3068627] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:14:25:479 [pid=3068627 tid=3068627] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:14:25:479 [pid=3068627 tid=3068627] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:15:08:20 [pid=3069001 tid=3069001] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:15:08:20 [pid=3069001 tid=3069001] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:15:08:21 [pid=3069001 tid=3069001] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:15:08:21 [pid=3069001 tid=3069001] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:16:44:645 [pid=3069459 tid=3069459] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:16:44:645 [pid=3069459 tid=3069459] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:16:44:645 [pid=3069459 tid=3069459] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:16:44:645 [pid=3069459 tid=3069459] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:17:20:545 [pid=3069930 tid=3069930] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:17:20:545 [pid=3069930 tid=3069930] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:17:20:545 [pid=3069930 tid=3069930] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:17:20:545 [pid=3069930 tid=3069930] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:18:10:780 [pid=3070362 tid=3070362] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:18:10:780 [pid=3070362 tid=3070362] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:18:10:780 [pid=3070362 tid=3070362] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:18:10:780 [pid=3070362 tid=3070362] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:19:00:76 [pid=3070761 tid=3070761] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:19:00:76 [pid=3070761 tid=3070761] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:19:00:76 [pid=3070761 tid=3070761] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:19:00:76 [pid=3070761 tid=3070761] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:20:21:233 [pid=3071212 tid=3071212] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:20:21:233 [pid=3071212 tid=3071212] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:20:21:233 [pid=3071212 tid=3071212] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:20:21:233 [pid=3071212 tid=3071212] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:21:24:722 [pid=3071634 tid=3071634] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:21:24:722 [pid=3071634 tid=3071634] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:21:24:722 [pid=3071634 tid=3071634] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:21:24:722 [pid=3071634 tid=3071634] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:27:29:890 [pid=3073007 tid=3073007] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:27:29:890 [pid=3073007 tid=3073007] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:27:29:890 [pid=3073007 tid=3073007] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:27:29:891 [pid=3073007 tid=3073007] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:28:27:668 [pid=3073430 tid=3073430] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:28:27:668 [pid=3073430 tid=3073430] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:28:27:668 [pid=3073430 tid=3073430] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:28:27:668 [pid=3073430 tid=3073430] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:29:01:173 [pid=3073819 tid=3073819] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:29:01:173 [pid=3073819 tid=3073819] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:29:01:173 [pid=3073819 tid=3073819] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:29:01:173 [pid=3073819 tid=3073819] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:30:32:384 [pid=3074295 tid=3074295] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:30:32:384 [pid=3074295 tid=3074295] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:30:32:384 [pid=3074295 tid=3074295] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:30:32:384 [pid=3074295 tid=3074295] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:31:42:785 [pid=3074770 tid=3074770] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:31:42:785 [pid=3074770 tid=3074770] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:31:42:785 [pid=3074770 tid=3074770] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:31:42:785 [pid=3074770 tid=3074770] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:34:48:54 [pid=3075560 tid=3075560] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:34:48:54 [pid=3075560 tid=3075560] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:34:48:54 [pid=3075560 tid=3075560] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:34:48:54 [pid=3075560 tid=3075560] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:40:42:221 [pid=3077174 tid=3077174] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:40:42:221 [pid=3077174 tid=3077174] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:40:42:221 [pid=3077174 tid=3077174] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:40:42:221 [pid=3077174 tid=3077174] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:44:40:621 [pid=3077936 tid=3077936] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:44:40:621 [pid=3077936 tid=3077936] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:44:40:621 [pid=3077936 tid=3077936] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:44:40:621 [pid=3077936 tid=3077936] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:52:53:99 [pid=3079656 tid=3079656] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:52:53:99 [pid=3079656 tid=3079656] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:52:53:99 [pid=3079656 tid=3079656] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:52:53:99 [pid=3079656 tid=3079656] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:56:12:863 [pid=3080463 tid=3080463] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:56:12:863 [pid=3080463 tid=3080463] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:56:12:863 [pid=3080463 tid=3080463] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:56:12:863 [pid=3080463 tid=3080463] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 14:58:55:979 [pid=3081230 tid=3081230] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 14:58:55:979 [pid=3081230 tid=3081230] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 14:58:55:979 [pid=3081230 tid=3081230] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 14:58:55:979 [pid=3081230 tid=3081230] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 15:00:19:144 [pid=3081741 tid=3081741] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 15:00:19:144 [pid=3081741 tid=3081741] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 15:00:19:144 [pid=3081741 tid=3081741] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 15:00:19:144 [pid=3081741 tid=3081741] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 15:31:19:472 [pid=3088144 tid=3088144] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 15:31:19:472 [pid=3088144 tid=3088144] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 15:31:19:472 [pid=3088144 tid=3088144] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 15:31:19:472 [pid=3088144 tid=3088144] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 15:34:07:700 [pid=3088813 tid=3088813] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 15:34:07:700 [pid=3088813 tid=3088813] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 15:34:07:700 [pid=3088813 tid=3088813] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 15:34:07:700 [pid=3088813 tid=3088813] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 15:43:23:963 [pid=3091376 tid=3091376] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 15:43:23:963 [pid=3091376 tid=3091376] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 15:43:23:963 [pid=3091376 tid=3091376] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 15:43:23:963 [pid=3091376 tid=3091376] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 15:44:10:635 [pid=3091746 tid=3091746] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 15:44:10:635 [pid=3091746 tid=3091746] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 15:44:10:635 [pid=3091746 tid=3091746] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 15:44:10:635 [pid=3091746 tid=3091746] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 15:46:13:973 [pid=3092293 tid=3092293] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 15:46:13:973 [pid=3092293 tid=3092293] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 15:46:13:973 [pid=3092293 tid=3092293] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 15:46:13:973 [pid=3092293 tid=3092293] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 15:48:43:330 [pid=3092903 tid=3092903] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 15:48:43:330 [pid=3092903 tid=3092903] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 15:48:43:330 [pid=3092903 tid=3092903] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 15:48:43:330 [pid=3092903 tid=3092903] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 15:57:59:759 [pid=3094740 tid=3094740] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 15:57:59:759 [pid=3094740 tid=3094740] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 15:57:59:759 [pid=3094740 tid=3094740] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 15:57:59:759 [pid=3094740 tid=3094740] NOTICE cufio-drv:705 running in compatible mode + 26-01-2023 16:07:24:902 [pid=3096359 tid=3096359] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 26-01-2023 16:07:24:902 [pid=3096359 tid=3096359] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 26-01-2023 16:07:24:902 [pid=3096359 tid=3096359] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 26-01-2023 16:07:24:902 [pid=3096359 tid=3096359] NOTICE cufio-drv:705 running in compatible mode + 30-01-2023 17:08:06:80 [pid=3315791 tid=3315791] NOTICE cufio-drv:625 running in compatible mode + 30-01-2023 17:16:25:632 [pid=3317901 tid=3317901] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 10:47:13:520 [pid=2371840 tid=2371840] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 15:51:28:529 [pid=1204876 tid=1204876] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 09-02-2023 15:51:28:529 [pid=1204876 tid=1204876] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 09-02-2023 15:51:28:529 [pid=1204876 tid=1204876] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 09-02-2023 15:51:28:529 [pid=1204876 tid=1204876] NOTICE cufio-drv:705 running in compatible mode + 09-02-2023 15:53:56:288 [pid=2444555 tid=2444555] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 15:56:59:904 [pid=2445985 tid=2445985] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:05:06:20 [pid=2450552 tid=2450552] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:06:25:400 [pid=2451273 tid=2451273] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:08:16:828 [pid=1208752 tid=1208752] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 09-02-2023 16:08:16:828 [pid=1208752 tid=1208752] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 09-02-2023 16:08:16:828 [pid=1208752 tid=1208752] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 09-02-2023 16:08:16:828 [pid=1208752 tid=1208752] NOTICE cufio-drv:705 running in compatible mode + 09-02-2023 16:09:38:851 [pid=1209096 tid=1209096] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 09-02-2023 16:09:38:851 [pid=1209096 tid=1209096] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 09-02-2023 16:09:38:851 [pid=1209096 tid=1209096] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 09-02-2023 16:09:38:851 [pid=1209096 tid=1209096] NOTICE cufio-drv:705 running in compatible mode + 09-02-2023 16:10:18:308 [pid=2452627 tid=2452627] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:11:54:236 [pid=2453364 tid=2453364] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:15:40:636 [pid=2454723 tid=2454723] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:16:44:252 [pid=2455365 tid=2455365] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:20:44:860 [pid=2456479 tid=2456479] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:22:48:388 [pid=2457062 tid=2457062] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:25:13:948 [pid=2458369 tid=2458369] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:27:00:720 [pid=2459309 tid=2459309] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:30:25:260 [pid=2460624 tid=2460624] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:35:06:8 [pid=2462194 tid=2462194] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:40:10:924 [pid=2464026 tid=2464026] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:45:03:496 [pid=2465789 tid=2465789] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:47:49:168 [pid=2466960 tid=2466960] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:53:19:208 [pid=2468858 tid=2468858] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:56:57:688 [pid=2470360 tid=2470360] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 16:59:43:256 [pid=2471606 tid=2471606] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 17:02:52:616 [pid=2472885 tid=2472885] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 17:11:16:4 [pid=2475558 tid=2475558] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 17:20:59:368 [pid=2478592 tid=2478592] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 18:38:20:736 [pid=2499410 tid=2499410] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 18:46:20:120 [pid=2502009 tid=2502009] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 18:49:27:712 [pid=2503320 tid=2503320] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 18:51:55:72 [pid=2504394 tid=2504394] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 18:56:25:24 [pid=2506055 tid=2506055] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 18:58:32:112 [pid=2507053 tid=2507053] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:00:40:72 [pid=2508095 tid=2508095] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:05:56:36 [pid=2509892 tid=2509892] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:12:29:344 [pid=2512072 tid=2512072] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:42:57:700 [pid=2521147 tid=2521147] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:44:26:996 [pid=2521780 tid=2521780] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:46:20:232 [pid=2522592 tid=2522592] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:51:02:452 [pid=2524018 tid=2524018] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:54:37:508 [pid=2525102 tid=2525102] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:55:58:864 [pid=2525537 tid=2525537] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:57:22:880 [pid=2526058 tid=2526058] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 19:58:41:312 [pid=2526547 tid=2526547] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:01:45:68 [pid=2527504 tid=2527504] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:02:18:432 [pid=2527862 tid=2527862] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:05:35:996 [pid=2528921 tid=2528921] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:07:14:664 [pid=2529486 tid=2529486] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:09:10:560 [pid=2530132 tid=2530132] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:09:59:436 [pid=2530518 tid=2530518] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:12:44:348 [pid=2531312 tid=2531312] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:14:18:588 [pid=2531799 tid=2531799] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:16:46:120 [pid=2532592 tid=2532592] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:19:03:744 [pid=2533260 tid=2533260] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:20:18:864 [pid=2533784 tid=2533784] NOTICE cufio-drv:625 running in compatible mode + 09-02-2023 20:22:17:416 [pid=2534377 tid=2534377] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 09:11:07:656 [pid=2744067 tid=2744067] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 09:17:51:996 [pid=2746355 tid=2746355] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 09:19:48:760 [pid=2747040 tid=2747040] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 09:21:18:908 [pid=2747726 tid=2747726] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 09:21:43:992 [pid=2748112 tid=2748112] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 09:23:05:256 [pid=2748714 tid=2748714] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 09:26:30:772 [pid=2749908 tid=2749908] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 09:35:50:224 [pid=2752693 tid=2752693] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 09:43:05:124 [pid=2754940 tid=2754940] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 10:11:54:348 [pid=2763112 tid=2763112] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 10:13:02:712 [pid=2763666 tid=2763666] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 12:24:56:214 [pid=2797868 tid=2797868] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 12:32:56:505 [pid=2800660 tid=2800660] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 12:41:25:620 [pid=2802881 tid=2802881] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 12:44:12:198 [pid=2803668 tid=2803668] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 14:04:29:756 [pid=2820928 tid=2820928] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 14:07:55:546 [pid=2821865 tid=2821865] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 14:11:04:634 [pid=2822741 tid=2822741] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 14:14:31:605 [pid=2823758 tid=2823758] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 14:17:30:157 [pid=2824768 tid=2824768] NOTICE cufio-drv:625 running in compatible mode + 10-02-2023 14:19:55:756 [pid=2825492 tid=2825492] NOTICE cufio-drv:625 running in compatible mode + 13-02-2023 16:04:59:964 [pid=3727449 tid=3727449] NOTICE cufio-drv:625 running in compatible mode + 13-02-2023 16:07:03:820 [pid=3728188 tid=3728188] NOTICE cufio-drv:625 running in compatible mode + 13-02-2023 16:32:36:804 [pid=3733602 tid=3733602] NOTICE cufio-drv:625 running in compatible mode + 13-02-2023 16:35:16:372 [pid=3734292 tid=3734292] NOTICE cufio-drv:625 running in compatible mode + 13-02-2023 16:36:29:676 [pid=3734903 tid=3734903] NOTICE cufio-drv:625 running in compatible mode + 13-02-2023 16:38:40:656 [pid=3735557 tid=3735557] NOTICE cufio-drv:625 running in compatible mode + 13-02-2023 16:50:06:228 [pid=3738047 tid=3738047] NOTICE cufio-drv:625 running in compatible mode + 13-02-2023 16:51:08:848 [pid=3738476 tid=3738476] NOTICE cufio-drv:625 running in compatible mode + 14-02-2023 12:38:27:984 [pid=3979361 tid=3979361] NOTICE cufio-drv:625 running in compatible mode + 14-02-2023 14:02:26:408 [pid=3996623 tid=3996623] NOTICE cufio-drv:625 running in compatible mode + 14-02-2023 14:39:23:476 [pid=4004274 tid=4004274] NOTICE cufio-drv:625 running in compatible mode + 14-02-2023 23:03:04:628 [pid=4106788 tid=4106788] NOTICE cufio-drv:625 running in compatible mode + 14-02-2023 23:04:05:296 [pid=4107091 tid=4107091] NOTICE cufio-drv:625 running in compatible mode + 14-02-2023 23:04:43:188 [pid=4107333 tid=4107333] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 00:18:10:188 [pid=4123166 tid=4123166] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 00:24:43:736 [pid=4124638 tid=4124638] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 00:44:11:408 [pid=4128728 tid=4128728] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 00:47:00:616 [pid=4129453 tid=4129453] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 00:48:06:796 [pid=4129812 tid=4129812] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 00:48:30:232 [pid=4130063 tid=4130063] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 00:54:20:808 [pid=4131348 tid=4131348] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 01:09:21:724 [pid=4134470 tid=4134470] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 01:09:51:180 [pid=4134730 tid=4134730] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 09:41:23:360 [pid=46418 tid=46418] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 09:43:32:352 [pid=47096 tid=47096] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 09:46:47:640 [pid=48036 tid=48036] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 09:47:26:720 [pid=48407 tid=48407] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 09:47:53:908 [pid=48701 tid=48701] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:08:04:308 [pid=53054 tid=53054] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:09:44:808 [pid=53606 tid=53606] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:11:09:284 [pid=54086 tid=54086] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:11:55:548 [pid=54471 tid=54471] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:13:46:68 [pid=55091 tid=55091] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:14:50:696 [pid=55640 tid=55640] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:28:19:316 [pid=58748 tid=58748] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:30:13:116 [pid=59471 tid=59471] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:31:38:736 [pid=60112 tid=60112] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:35:03:208 [pid=61121 tid=61121] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:39:10:384 [pid=62340 tid=62340] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:40:45:532 [pid=62971 tid=62971] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:47:34:540 [pid=64693 tid=64693] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 10:57:47:276 [pid=67083 tid=67083] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 11:30:35:676 [pid=74856 tid=74856] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 11:45:56:84 [pid=78323 tid=78323] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 11:47:29:924 [pid=78831 tid=78831] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 11:48:58:180 [pid=79324 tid=79324] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 11:51:54:744 [pid=80171 tid=80171] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 13:54:02:892 [pid=106038 tid=106038] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 13:59:08:668 [pid=107469 tid=107469] NOTICE cufio-drv:625 running in compatible mode + 15-02-2023 15:59:22:784 [pid=132382 tid=132382] NOTICE cufio-drv:625 running in compatible mode + 17-02-2023 10:45:58:428 [pid=658841 tid=658841] NOTICE cufio-drv:625 running in compatible mode + 17-02-2023 10:48:05:416 [pid=659539 tid=659539] NOTICE cufio-drv:625 running in compatible mode + 17-02-2023 10:54:07:572 [pid=661155 tid=661155] NOTICE cufio-drv:625 running in compatible mode + 17-02-2023 16:36:35:288 [pid=732467 tid=732467] NOTICE cufio-drv:625 running in compatible mode + 17-02-2023 16:37:32:824 [pid=732881 tid=732881] NOTICE cufio-drv:625 running in compatible mode + 17-02-2023 16:51:15:532 [pid=735999 tid=735999] NOTICE cufio-drv:625 running in compatible mode + 17-02-2023 16:51:59:188 [pid=736292 tid=736292] NOTICE cufio-drv:625 running in compatible mode + 17-02-2023 16:53:32:616 [pid=736770 tid=736770] NOTICE cufio-drv:625 running in compatible mode + 19-02-2023 17:01:19:524 [pid=1325427 tid=1325427] NOTICE cufio-drv:625 running in compatible mode + 19-02-2023 17:02:50:596 [pid=1325829 tid=1325829] NOTICE cufio-drv:625 running in compatible mode + 19-02-2023 17:08:41:272 [pid=1327735 tid=1327735] NOTICE cufio-drv:625 running in compatible mode + 20-02-2023 11:31:01:798 [pid=2804841 tid=2804841] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 20-02-2023 11:31:01:798 [pid=2804841 tid=2804841] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 20-02-2023 11:31:01:798 [pid=2804841 tid=2804841] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 20-02-2023 11:31:01:798 [pid=2804841 tid=2804841] NOTICE cufio-drv:705 running in compatible mode + 20-02-2023 11:37:53:422 [pid=2805615 tid=2805615] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 20-02-2023 11:37:53:422 [pid=2805615 tid=2805615] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 20-02-2023 11:37:53:422 [pid=2805615 tid=2805615] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 20-02-2023 11:37:53:422 [pid=2805615 tid=2805615] NOTICE cufio-drv:705 running in compatible mode + 20-02-2023 11:39:17:812 [pid=2805812 tid=2805812] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 20-02-2023 11:39:17:812 [pid=2805812 tid=2805812] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 20-02-2023 11:39:17:812 [pid=2805812 tid=2805812] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 20-02-2023 11:39:17:812 [pid=2805812 tid=2805812] NOTICE cufio-drv:705 running in compatible mode + 20-02-2023 11:40:15:615 [pid=2805996 tid=2805996] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 20-02-2023 11:40:15:615 [pid=2805996 tid=2805996] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 20-02-2023 11:40:15:615 [pid=2805996 tid=2805996] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 20-02-2023 11:40:15:615 [pid=2805996 tid=2805996] NOTICE cufio-drv:705 running in compatible mode + 20-02-2023 11:46:24:588 [pid=2806927 tid=2806927] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 20-02-2023 11:46:24:588 [pid=2806927 tid=2806927] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 20-02-2023 11:46:24:588 [pid=2806927 tid=2806927] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 20-02-2023 11:46:24:588 [pid=2806927 tid=2806927] NOTICE cufio-drv:705 running in compatible mode + 20-02-2023 11:51:11:237 [pid=2807495 tid=2807495] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 20-02-2023 11:51:11:237 [pid=2807495 tid=2807495] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 20-02-2023 11:51:11:237 [pid=2807495 tid=2807495] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 20-02-2023 11:51:11:237 [pid=2807495 tid=2807495] NOTICE cufio-drv:705 running in compatible mode + 20-02-2023 11:52:19:821 [pid=2807719 tid=2807719] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 20-02-2023 11:52:19:821 [pid=2807719 tid=2807719] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 20-02-2023 11:52:19:821 [pid=2807719 tid=2807719] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 20-02-2023 11:52:19:821 [pid=2807719 tid=2807719] NOTICE cufio-drv:705 running in compatible mode + 20-02-2023 11:54:32:446 [pid=2808025 tid=2808025] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 20-02-2023 11:54:32:446 [pid=2808025 tid=2808025] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 20-02-2023 11:54:32:446 [pid=2808025 tid=2808025] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 20-02-2023 11:54:32:446 [pid=2808025 tid=2808025] NOTICE cufio-drv:705 running in compatible mode + 20-02-2023 11:57:42:432 [pid=1561139 tid=1561139] NOTICE cufio-drv:625 running in compatible mode + 20-02-2023 12:01:41:77 [pid=2808960 tid=2808960] ERROR 0:140 unable to load, liburcu-bp.so.6 + + 20-02-2023 12:01:41:77 [pid=2808960 tid=2808960] ERROR 0:140 unable to load, liburcu-bp.so.1 + + 20-02-2023 12:01:41:77 [pid=2808960 tid=2808960] WARN 0:172 failed to open /proc/driver/nvidia-fs/devcount error: No such file or directory + 20-02-2023 12:01:41:77 [pid=2808960 tid=2808960] NOTICE cufio-drv:705 running in compatible mode + 20-02-2023 12:02:10:660 [pid=1563455 tid=1563455] NOTICE cufio-drv:625 running in compatible mode + 20-02-2023 12:04:50:208 [pid=1564663 tid=1564663] NOTICE cufio-drv:625 running in compatible mode + 20-02-2023 12:06:42:88 [pid=1565660 tid=1565660] NOTICE cufio-drv:625 running in compatible mode + 21-02-2023 15:24:26:40 [pid=2039509 tid=2039509] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 12:39:39:200 [pid=2460898 tid=2460898] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 12:41:50:868 [pid=2461810 tid=2461810] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 12:53:10:16 [pid=2466453 tid=2466453] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 12:57:08:804 [pid=2467821 tid=2467821] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 13:51:41:868 [pid=2483292 tid=2483292] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 13:53:09:512 [pid=2483868 tid=2483868] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:01:37:444 [pid=2486405 tid=2486405] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:02:17:244 [pid=2486733 tid=2486733] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:02:55:972 [pid=2487043 tid=2487043] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:04:54:88 [pid=2487743 tid=2487743] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:06:00:268 [pid=2488191 tid=2488191] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:07:38:36 [pid=2488793 tid=2488793] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:19:10:672 [pid=2492175 tid=2492175] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:19:52:244 [pid=2492533 tid=2492533] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:20:33:92 [pid=2492817 tid=2492817] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:27:38:956 [pid=2495645 tid=2495645] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:29:28:160 [pid=2496810 tid=2496810] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:40:40:144 [pid=2500671 tid=2500671] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:42:34:24 [pid=2501925 tid=2501925] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 14:52:45:232 [pid=2505496 tid=2505496] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 14:44:16:853 [pid=871047 tid=871047] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 14:45:43:976 [pid=889080 tid=889080] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 14:47:40:636 [pid=910826 tid=910826] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 14:50:48:984 [pid=943775 tid=943775] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 14:52:33:668 [pid=961565 tid=961565] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 15:00:50:332 [pid=1050459 tid=1050459] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 15:08:12:572 [pid=1130111 tid=1130111] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 15:17:17:516 [pid=1227392 tid=1227392] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:14:55:444 [pid=1862554 tid=1862554] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:16:18:748 [pid=1877906 tid=1877906] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:17:45:248 [pid=1893653 tid=1893653] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:18:56:72 [pid=1906285 tid=1906285] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:22:05:696 [pid=1940292 tid=1940292] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:31:21:264 [pid=2042211 tid=2042211] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:32:15:76 [pid=2052857 tid=2052857] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:33:22:12 [pid=2064974 tid=2064974] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:36:37:508 [pid=2100906 tid=2100906] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:37:36:692 [pid=2110753 tid=2110753] NOTICE cufio-drv:625 running in compatible mode + 01-03-2023 16:38:56:632 [pid=2125925 tid=2125925] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:21:11:924 [pid=3932044 tid=3932044] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:22:04:440 [pid=3932546 tid=3932546] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:24:02:760 [pid=3933465 tid=3933465] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:25:50:432 [pid=3934171 tid=3934171] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:26:39:88 [pid=3934656 tid=3934656] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:29:21:436 [pid=3935699 tid=3935699] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:29:44:528 [pid=3936036 tid=3936036] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:30:29:120 [pid=3936521 tid=3936521] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:35:30:12 [pid=3938301 tid=3938301] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:39:13:988 [pid=3939708 tid=3939708] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 15:43:47:120 [pid=3941593 tid=3941593] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 16:32:02:796 [pid=3958268 tid=3958268] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 16:43:42:692 [pid=3962474 tid=3962474] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 16:46:49:656 [pid=3963773 tid=3963773] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 16:48:34:84 [pid=3964590 tid=3964590] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 16:49:17:708 [pid=3965001 tid=3965001] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 16:53:13:560 [pid=3966444 tid=3966444] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 16:55:07:996 [pid=3967545 tid=3967545] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 16:57:38:656 [pid=3968530 tid=3968530] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:02:38:212 [pid=3970560 tid=3970560] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:04:22:36 [pid=3971281 tid=3971281] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:13:16:348 [pid=3974506 tid=3974506] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:17:39:848 [pid=3976234 tid=3976234] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:18:30:708 [pid=3976883 tid=3976883] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:21:58:488 [pid=3978403 tid=3978403] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:31:05:428 [pid=3981827 tid=3981827] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:41:57:496 [pid=3986694 tid=3986694] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:45:41:432 [pid=3988342 tid=3988342] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:47:41:116 [pid=3989078 tid=3989078] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 17:48:20:972 [pid=3989469 tid=3989469] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:24:06:172 [pid=4001816 tid=4001816] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:28:18:560 [pid=4004277 tid=4004277] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:32:05:980 [pid=4006031 tid=4006031] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:32:41:500 [pid=4006439 tid=4006439] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:33:44:132 [pid=4007583 tid=4007583] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:36:22:684 [pid=4009011 tid=4009011] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:37:36:60 [pid=4009505 tid=4009505] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:43:13:816 [pid=4012006 tid=4012006] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:47:44:548 [pid=4013932 tid=4013932] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:50:14:560 [pid=4015266 tid=4015266] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:54:06:548 [pid=4016985 tid=4016985] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:55:25:868 [pid=4018002 tid=4018002] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 18:58:10:216 [pid=4019443 tid=4019443] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:13:48:924 [pid=4025438 tid=4025438] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:18:58:432 [pid=4027840 tid=4027840] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:20:34:384 [pid=4028574 tid=4028574] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:26:46:688 [pid=4031745 tid=4031745] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:27:01:564 [pid=4031906 tid=4031906] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:30:26:336 [pid=4033612 tid=4033612] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:44:12:956 [pid=4038723 tid=4038723] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:46:13:888 [pid=4039942 tid=4039942] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:48:06:356 [pid=4041141 tid=4041141] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:51:42:808 [pid=4042897 tid=4042897] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:52:48:528 [pid=4043432 tid=4043432] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 19:56:27:104 [pid=4045545 tid=4045545] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:00:02:56 [pid=4047129 tid=4047129] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:02:51:512 [pid=4048634 tid=4048634] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:09:40:892 [pid=4051046 tid=4051046] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:12:04:136 [pid=4052298 tid=4052298] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:15:00:784 [pid=4053581 tid=4053581] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:15:30:456 [pid=4054201 tid=4054201] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:16:59:544 [pid=4055130 tid=4055130] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:19:47:60 [pid=4056345 tid=4056345] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:21:12:440 [pid=4057256 tid=4057256] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:22:35:376 [pid=4058174 tid=4058174] NOTICE cufio-drv:625 running in compatible mode + 02-03-2023 20:23:24:708 [pid=4058870 tid=4058870] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 10:32:43:776 [pid=91689 tid=91689] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 10:37:51:76 [pid=93712 tid=93712] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 10:40:21:512 [pid=94717 tid=94717] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 10:44:09:548 [pid=96216 tid=96216] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 10:46:48:792 [pid=97323 tid=97323] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 10:59:36:552 [pid=101087 tid=101087] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 11:02:15:868 [pid=102214 tid=102214] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 11:03:18:232 [pid=102770 tid=102770] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 12:05:34:52 [pid=127160 tid=127160] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 12:56:32:148 [pid=146893 tid=146893] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 14:23:35:476 [pid=171302 tid=171302] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 14:26:28:104 [pid=172548 tid=172548] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 14:29:15:792 [pid=173729 tid=173729] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 14:37:18:100 [pid=176601 tid=176601] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 14:45:14:320 [pid=179463 tid=179463] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 15:08:30:120 [pid=186107 tid=186107] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 15:21:18:188 [pid=189983 tid=189983] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 15:24:26:616 [pid=191281 tid=191281] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 15:34:14:872 [pid=194309 tid=194309] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 15:40:23:480 [pid=196557 tid=196557] NOTICE cufio-drv:625 running in compatible mode + 03-03-2023 15:43:05:72 [pid=197695 tid=197695] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 10:35:08:568 [pid=1252144 tid=1252144] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 10:36:45:996 [pid=1252728 tid=1252728] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 10:52:52:56 [pid=1257143 tid=1257143] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 10:53:31:412 [pid=1257509 tid=1257509] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 10:54:31:44 [pid=1257855 tid=1257855] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 10:55:47:692 [pid=1258324 tid=1258324] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 10:57:25:116 [pid=1258868 tid=1258868] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:00:36:168 [pid=1259883 tid=1259883] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:02:12:24 [pid=1260439 tid=1260439] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:04:20:164 [pid=1261174 tid=1261174] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:05:03:740 [pid=1261570 tid=1261570] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:06:02:628 [pid=1262026 tid=1262026] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:06:38:436 [pid=1262338 tid=1262338] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:11:35:640 [pid=1263874 tid=1263874] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:12:26:444 [pid=1264243 tid=1264243] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:12:50:156 [pid=1264532 tid=1264532] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:13:10:556 [pid=1264795 tid=1264795] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:14:35:164 [pid=1265346 tid=1265346] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:15:32:12 [pid=1265733 tid=1265733] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:24:12:696 [pid=1268238 tid=1268238] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:25:48:476 [pid=1269039 tid=1269039] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:27:39:632 [pid=1270328 tid=1270328] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:28:13:612 [pid=1270653 tid=1270653] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:30:27:904 [pid=1271433 tid=1271433] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:32:39:248 [pid=1272149 tid=1272149] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:33:43:148 [pid=1272616 tid=1272616] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:43:33:8 [pid=1275435 tid=1275435] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:45:00:556 [pid=1275921 tid=1275921] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:45:34:4 [pid=1276264 tid=1276264] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:46:44:308 [pid=1276724 tid=1276724] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:47:52:768 [pid=1277226 tid=1277226] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:48:27:548 [pid=1277536 tid=1277536] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:49:17:936 [pid=1277931 tid=1277931] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:50:32:272 [pid=1278424 tid=1278424] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:51:38:108 [pid=1278945 tid=1278945] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:55:05:656 [pid=1279960 tid=1279960] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 11:56:03:340 [pid=1280408 tid=1280408] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 12:02:28:876 [pid=1283084 tid=1283084] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 12:08:03:944 [pid=1285241 tid=1285241] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 12:08:57:352 [pid=1285750 tid=1285750] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 12:19:18:432 [pid=1289093 tid=1289093] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 12:20:39:800 [pid=1289594 tid=1289594] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 12:22:53:176 [pid=1290389 tid=1290389] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 12:23:52:856 [pid=1290825 tid=1290825] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 12:28:05:812 [pid=1292719 tid=1292719] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 13:33:59:112 [pid=1310638 tid=1310638] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 13:34:33:156 [pid=1310974 tid=1310974] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 13:36:47:536 [pid=1311757 tid=1311757] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 13:40:05:364 [pid=1312922 tid=1312922] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 13:47:36:72 [pid=1315707 tid=1315707] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:13:22:852 [pid=1347987 tid=1347987] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:22:30:504 [pid=1352337 tid=1352337] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:24:36:240 [pid=1353475 tid=1353475] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:25:52:920 [pid=1354245 tid=1354245] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:39:33:224 [pid=1363402 tid=1363402] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:41:41:568 [pid=1365003 tid=1365003] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:42:27:332 [pid=1365619 tid=1365619] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:43:32:600 [pid=1366487 tid=1366487] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:43:37:700 [pid=1366644 tid=1366644] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:43:47:260 [pid=1366857 tid=1366857] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:46:19:80 [pid=1368241 tid=1368241] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:47:16:696 [pid=1368827 tid=1368827] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:48:40:72 [pid=1369759 tid=1369759] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:52:33:988 [pid=1371666 tid=1371666] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:53:16:376 [pid=1372205 tid=1372205] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:56:40:784 [pid=1373977 tid=1373977] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:58:06:28 [pid=1374824 tid=1374824] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 15:58:56:300 [pid=1375380 tid=1375380] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 16:00:43:668 [pid=1376424 tid=1376424] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 16:02:24:556 [pid=1377421 tid=1377421] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 16:04:33:468 [pid=1378619 tid=1378619] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 16:12:37:264 [pid=1384589 tid=1384589] NOTICE cufio-drv:625 running in compatible mode + 06-03-2023 16:15:55:240 [pid=1387119 tid=1387119] NOTICE cufio-drv:625 running in compatible mode + 07-03-2023 09:51:20:968 [pid=1692812 tid=1692812] NOTICE cufio-drv:625 running in compatible mode + 07-03-2023 09:53:33:324 [pid=1693857 tid=1693857] NOTICE cufio-drv:625 running in compatible mode + 08-03-2023 10:13:33:340 [pid=2112663 tid=2112663] NOTICE cufio-drv:625 running in compatible mode + 08-03-2023 10:15:47:640 [pid=2113736 tid=2113736] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:11:09:904 [pid=923594 tid=923594] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:13:32:916 [pid=925256 tid=925256] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:30:10:424 [pid=933020 tid=933020] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:32:08:908 [pid=934855 tid=934855] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:34:35:832 [pid=936297 tid=936297] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:36:39:132 [pid=937464 tid=937464] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:38:51:596 [pid=938728 tid=938728] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:54:18:120 [pid=945733 tid=945733] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:55:13:912 [pid=946464 tid=946464] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:58:31:756 [pid=948322 tid=948322] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 11:59:05:336 [pid=948890 tid=948890] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:01:37:604 [pid=950381 tid=950381] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:03:49:452 [pid=951567 tid=951567] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:04:41:308 [pid=952302 tid=952302] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:06:06:60 [pid=953185 tid=953185] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:06:39:332 [pid=953697 tid=953697] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:07:18:604 [pid=954240 tid=954240] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:09:55:488 [pid=955746 tid=955746] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:11:24:532 [pid=957222 tid=957222] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:16:57:596 [pid=960762 tid=960762] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:19:36:372 [pid=962362 tid=962362] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:22:34:856 [pid=964368 tid=964368] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:23:49:188 [pid=965312 tid=965312] NOTICE cufio-drv:625 running in compatible mode + 13-03-2023 12:25:01:100 [pid=966142 tid=966142] NOTICE cufio-drv:625 running in compatible mode +����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 20-03-2023 15:54:29:5 [pid=4049585 tid=4049585] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 16:06:50:432 [pid=733071 tid=733071] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 16:42:35:648 [pid=3299343 tid=3299343] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 16:46:47:252 [pid=3611283 tid=3611283] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 17:02:06:256 [pid=596787 tid=596787] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 17:19:59:832 [pid=1926409 tid=1926409] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 17:55:55:48 [pid=211141 tid=211141] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 17:59:55:372 [pid=479990 tid=479990] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 18:26:43:372 [pid=2340209 tid=2340209] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 21:31:05:388 [pid=2910430 tid=2910430] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 21:48:16:56 [pid=4175730 tid=4175730] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 21:54:37:820 [pid=451871 tid=451871] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:17:36:336 [pid=2154174 tid=2154174] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:24:35:940 [pid=2691975 tid=2691975] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:27:54:524 [pid=2933436 tid=2933436] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:29:20:544 [pid=3044481 tid=3044481] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:33:44:248 [pid=3390030 tid=3390030] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:37:19:416 [pid=3668618 tid=3668618] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:39:11:944 [pid=3815178 tid=3815178] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:44:00:524 [pid=4191882 tid=4191882] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:45:31:340 [pid=114943 tid=114943] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:47:18:532 [pid=255528 tid=255528] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:49:00:588 [pid=387619 tid=387619] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:55:26:896 [pid=886640 tid=886640] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 22:58:19:900 [pid=1111332 tid=1111332] NOTICE cufio-drv:625 running in compatible mode + 20-03-2023 23:02:50:464 [pid=1459074 tid=1459074] NOTICE cufio-drv:625 running in compatible mode + 21-03-2023 17:08:22:477 [pid=1237906 tid=1237906] NOTICE cufio-drv:625 running in compatible mode + 21-03-2023 21:07:11:920 [pid=1358109 tid=1358109] NOTICE cufio-drv:625 running in compatible mode + 21-03-2023 21:08:35:268 [pid=1359265 tid=1359265] NOTICE cufio-drv:625 running in compatible mode + 21-03-2023 21:12:48:124 [pid=1362219 tid=1362219] NOTICE cufio-drv:625 running in compatible mode + 21-03-2023 21:13:37:336 [pid=1362839 tid=1362839] NOTICE cufio-drv:625 running in compatible mode + 21-03-2023 21:15:03:28 [pid=1363747 tid=1363747] NOTICE cufio-drv:625 running in compatible mode + 21-03-2023 21:22:45:304 [pid=1367417 tid=1367417] NOTICE cufio-drv:625 running in compatible mode + 21-03-2023 21:46:40:952 [pid=1378911 tid=1378911] NOTICE cufio-drv:625 running in compatible mode + 21-03-2023 21:57:32:896 [pid=1383958 tid=1383958] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 09:24:02:248 [pid=1672240 tid=1672240] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 09:29:13:116 [pid=1674670 tid=1674670] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 09:31:45:164 [pid=1675922 tid=1675922] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 09:39:35:192 [pid=1679264 tid=1679264] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 10:50:27:908 [pid=1709055 tid=1709055] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 13:01:32:336 [pid=1765386 tid=1765386] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 13:02:22:944 [pid=1765993 tid=1765993] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 13:06:58:224 [pid=1768285 tid=1768285] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 13:15:56:388 [pid=1772024 tid=1772024] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 13:18:39:264 [pid=1773372 tid=1773372] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 13:41:53:984 [pid=1783240 tid=1783240] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 13:42:50:432 [pid=1783837 tid=1783837] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 14:08:24:420 [pid=1795072 tid=1795072] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 14:25:27:72 [pid=1802543 tid=1802543] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 15:49:57:292 [pid=1839086 tid=1839086] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 15:52:55:684 [pid=1840446 tid=1840446] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 16:05:05:436 [pid=1845635 tid=1845635] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 16:11:34:700 [pid=1848452 tid=1848452] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 16:13:48:516 [pid=1849766 tid=1849766] NOTICE cufio-drv:625 running in compatible mode + 22-03-2023 16:46:37:956 [pid=1863800 tid=1863800] NOTICE cufio-drv:625 running in compatible mode + 23-03-2023 11:07:16:372 [pid=2324309 tid=2324309] NOTICE cufio-drv:625 running in compatible mode + 23-03-2023 11:08:04:844 [pid=2324932 tid=2324932] NOTICE cufio-drv:625 running in compatible mode + 23-03-2023 11:09:06:396 [pid=2325605 tid=2325605] NOTICE cufio-drv:625 running in compatible mode + 23-03-2023 11:38:32:704 [pid=2340224 tid=2340224] NOTICE cufio-drv:625 running in compatible mode + 23-03-2023 11:39:41:388 [pid=2340913 tid=2340913] NOTICE cufio-drv:625 running in compatible mode + 23-03-2023 15:50:36:932 [pid=2463967 tid=2463967] NOTICE cufio-drv:625 running in compatible mode + 23-03-2023 15:52:17:140 [pid=2464999 tid=2464999] NOTICE cufio-drv:625 running in compatible mode + 23-03-2023 15:54:28:480 [pid=2466218 tid=2466218] NOTICE cufio-drv:625 running in compatible mode + 23-03-2023 15:57:50:556 [pid=2467952 tid=2467952] NOTICE cufio-drv:625 running in compatible mode + 28-03-2023 11:27:07:693 [pid=1272671 tid=1272671] NOTICE cufio-drv:625 running in compatible mode + 28-03-2023 15:37:09:408 [pid=1355719 tid=1355719] NOTICE cufio-drv:625 running in compatible mode + 29-03-2023 10:15:52:100 [pid=1730519 tid=1730519] NOTICE cufio-drv:625 running in compatible mode + 29-03-2023 10:19:32:316 [pid=1732221 tid=1732221] NOTICE cufio-drv:625 running in compatible mode + 29-03-2023 10:36:24:948 [pid=1738569 tid=1738569] NOTICE cufio-drv:625 running in compatible mode + 29-03-2023 10:36:59:892 [pid=1739076 tid=1739076] NOTICE cufio-drv:625 running in compatible mode + 29-03-2023 11:20:03:700 [pid=1755858 tid=1755858] NOTICE cufio-drv:625 running in compatible mode + 29-03-2023 11:29:03:628 [pid=1759326 tid=1759326] NOTICE cufio-drv:625 running in compatible mode + 29-03-2023 12:00:25:848 [pid=1775232 tid=1775232] NOTICE cufio-drv:625 running in compatible mode + 29-03-2023 12:05:23:932 [pid=1777334 tid=1777334] NOTICE cufio-drv:625 running in compatible mode + 29-03-2023 15:22:11:320 [pid=1851670 tid=1851670] NOTICE cufio-drv:625 running in compatible mode + 30-03-2023 15:05:24:92 [pid=2346260 tid=2346260] NOTICE cufio-drv:625 running in compatible mode + 30-03-2023 15:06:39:272 [pid=2347370 tid=2347370] NOTICE cufio-drv:625 running in compatible mode + 30-03-2023 15:07:36:268 [pid=2348245 tid=2348245] NOTICE cufio-drv:625 running in compatible mode + 30-03-2023 15:09:13:476 [pid=2349337 tid=2349337] NOTICE cufio-drv:625 running in compatible mode + 30-03-2023 15:09:55:836 [pid=2350085 tid=2350085] NOTICE cufio-drv:625 running in compatible mode + 30-03-2023 15:10:36:420 [pid=2350779 tid=2350779] NOTICE cufio-drv:625 running in compatible mode + 30-03-2023 16:47:55:828 [pid=2384438 tid=2384438] NOTICE cufio-drv:625 running in compatible mode + 30-03-2023 16:49:01:508 [pid=2385318 tid=2385318] NOTICE cufio-drv:625 running in compatible mode + 30-03-2023 16:49:52:600 [pid=2386104 tid=2386104] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 09:54:50:573 [pid=363414 tid=363414] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 09:59:57:324 [pid=366711 tid=366711] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:00:42:4 [pid=367556 tid=367556] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:01:46:956 [pid=368551 tid=368551] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:04:15:564 [pid=370126 tid=370126] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:05:00:992 [pid=370968 tid=370968] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:11:03:776 [pid=374262 tid=374262] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:12:30:0 [pid=375212 tid=375212] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:14:29:532 [pid=376426 tid=376426] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:18:17:576 [pid=378306 tid=378306] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:21:38:540 [pid=380682 tid=380682] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:22:42:316 [pid=381605 tid=381605] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:23:44:712 [pid=382545 tid=382545] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:29:28:648 [pid=385784 tid=385784] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:30:20:832 [pid=386611 tid=386611] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:30:53:204 [pid=387281 tid=387281] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:31:47:288 [pid=388183 tid=388183] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:33:30:348 [pid=389436 tid=389436] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:34:41:216 [pid=390449 tid=390449] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:36:00:928 [pid=391557 tid=391557] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 10:38:12:664 [pid=392992 tid=392992] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 16:00:14:993 [pid=1180770 tid=1180770] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 16:06:59:272 [pid=1763557 tid=1763557] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 16:10:23:804 [pid=2053443 tid=2053443] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 16:11:17:484 [pid=2136521 tid=2136521] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 16:14:58:696 [pid=2451605 tid=2451605] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 16:16:02:224 [pid=2538365 tid=2538365] NOTICE cufio-drv:625 running in compatible mode + 03-04-2023 16:25:54:392 [pid=3423549 tid=3423549] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 14:19:33:513 [pid=3306681 tid=3306681] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 14:32:41:44 [pid=157404 tid=157404] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 14:42:00:612 [pid=960962 tid=960962] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 14:43:18:344 [pid=1079132 tid=1079132] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 14:47:13:268 [pid=1423343 tid=1423343] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 14:49:16:684 [pid=1590836 tid=1590836] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 14:50:14:116 [pid=1669741 tid=1669741] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 14:52:16:540 [pid=1844295 tid=1844295] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 14:53:37:808 [pid=1954483 tid=1954483] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 15:11:13:800 [pid=3473143 tid=3473143] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 16:41:28:693 [pid=3188053 tid=3188053] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 16:43:13:464 [pid=3355579 tid=3355579] NOTICE cufio-drv:625 running in compatible mode + 04-04-2023 18:37:24:796 [pid=1085386 tid=1085386] NOTICE cufio-drv:625 running in compatible mode + 06-04-2023 10:31:36:452 [pid=3144129 tid=3144129] NOTICE cufio-drv:625 running in compatible mode + 06-04-2023 10:36:36:556 [pid=3612935 tid=3612935] NOTICE cufio-drv:625 running in compatible mode + 06-04-2023 11:16:47:856 [pid=2831625 tid=2831625] NOTICE cufio-drv:625 running in compatible mode + 06-04-2023 11:18:09:524 [pid=2946975 tid=2946975] NOTICE cufio-drv:625 running in compatible mode + 11-04-2023 09:33:17:376 [pid=3670033 tid=3670033] NOTICE cufio-drv:625 running in compatible mode + 11-04-2023 09:41:45:908 [pid=3674471 tid=3674471] NOTICE cufio-drv:625 running in compatible mode + 11-04-2023 09:45:18:992 [pid=3676473 tid=3676473] NOTICE cufio-drv:625 running in compatible mode + 11-04-2023 13:37:57:688 [pid=3850132 tid=3850132] NOTICE cufio-drv:625 running in compatible mode + 11-04-2023 13:46:22:368 [pid=3857547 tid=3857547] NOTICE cufio-drv:625 running in compatible mode + 11-04-2023 13:48:04:692 [pid=3859042 tid=3859042] NOTICE cufio-drv:625 running in compatible mode + 11-04-2023 13:48:45:880 [pid=3859795 tid=3859795] NOTICE cufio-drv:625 running in compatible mode + 13-04-2023 12:23:20:680 [pid=443106 tid=443106] NOTICE cufio-drv:625 running in compatible mode + 13-04-2023 12:32:50:592 [pid=447830 tid=447830] NOTICE cufio-drv:625 running in compatible mode + 13-04-2023 12:36:02:136 [pid=449566 tid=449566] NOTICE cufio-drv:625 running in compatible mode + 13-04-2023 12:38:06:204 [pid=450769 tid=450769] NOTICE cufio-drv:625 running in compatible mode + 13-04-2023 12:42:04:152 [pid=452641 tid=452641] NOTICE cufio-drv:625 running in compatible mode + 13-04-2023 13:42:04:604 [pid=481902 tid=481902] NOTICE cufio-drv:625 running in compatible mode + 18-04-2023 10:28:03:64 [pid=1329670 tid=1329670] NOTICE cufio-drv:625 running in compatible mode + 18-04-2023 10:29:09:148 [pid=1330147 tid=1330147] NOTICE cufio-drv:625 running in compatible mode + 18-04-2023 10:34:56:980 [pid=1331718 tid=1331718] NOTICE cufio-drv:625 running in compatible mode + 18-04-2023 10:37:29:376 [pid=1332544 tid=1332544] NOTICE cufio-drv:625 running in compatible mode + 18-04-2023 10:40:05:124 [pid=1333524 tid=1333524] NOTICE cufio-drv:625 running in compatible mode + 18-04-2023 10:42:56:139 [pid=1334474 tid=1334474] NOTICE cufio-drv:625 running in compatible mode + 18-04-2023 16:38:54:816 [pid=1407269 tid=1407269] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 09:39:57:384 [pid=1613334 tid=1613334] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 10:04:53:976 [pid=1618730 tid=1618730] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 10:06:31:724 [pid=1619361 tid=1619361] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 10:10:58:116 [pid=1620883 tid=1620883] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 10:13:31:795 [pid=1621738 tid=1621738] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 10:16:15:883 [pid=1622647 tid=1622647] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 10:18:46:343 [pid=1623511 tid=1623511] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 10:21:11:72 [pid=1624323 tid=1624323] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 10:23:45:31 [pid=1625174 tid=1625174] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 10:34:46:440 [pid=1627805 tid=1627805] NOTICE cufio-drv:625 running in compatible mode + 19-04-2023 10:41:08:3 [pid=1629434 tid=1629434] NOTICE cufio-drv:625 running in compatible mode + 20-04-2023 17:59:31:528 [pid=2178312 tid=2178312] NOTICE cufio-drv:625 running in compatible mode diff --git a/code/datasets/__init__.py b/code/datasets/__init__.py index 4f19064..10ac41c 100644 --- a/code/datasets/__init__.py +++ b/code/datasets/__init__.py @@ -1,4 +1,5 @@ # from .custom_jpg_dataloader import JPGMILDataloader from .jpg_dataloader import JPGMILDataloader +from .feature_dataloader import FeatureBagLoader from .data_interface import MILDataModule from .fast_tensor_dl import FastTensorDataLoader diff --git a/code/datasets/__pycache__/__init__.cpython-39.pyc b/code/datasets/__pycache__/__init__.cpython-39.pyc index 72bc845bf4c597bb8c39e8bd4a53b0601a654ebc..295f1815d67c30eabb235a28310f4489baceeef4 100644 GIT binary patch delta 205 zcmX@a)Wpo2$ji&cz`(%p-tSWK`-!}=j3yJcH3S(_SaR5M*`wGQ8B$n-88q1@M#%68 zxTPkRloq8rC8qmK%rU6vxW$)MkRG3sSdy5NpO}(bRK&!<z;H__4WbNLf|-GVA&L*A zGCnh}B(*3lF*&t}1uU4BSX>fclA2eXUlgB`Q^d-^z_5~`h=YLvLi}>m&&bbB4KB$q fGSsikNzBtP&o9a@E=WwC_}7+;je&uIhY<t;^&vaR delta 152 zcmZo-KE%YE$ji&cz`($8>G0O%eG_?Q88s$qYe=#LGib8DWMp7q&}6(N;1%HR>*?c? zSdy4CvBw~oEs8IzAU!?>#LrJmNi8a3Vqjpn#Rn3I&&(@HElNvFPAy_)U|@*iOG_*+ ui7!dbE6y*9Psu4_VPIfb$xy_`zyKkBIqGNR=cZ29W%T9%$?-7qFaiM3v?(C~ diff --git a/code/datasets/__pycache__/classic_jpg_dataloader.cpython-39.pyc b/code/datasets/__pycache__/classic_jpg_dataloader.cpython-39.pyc index 56a80385988c3216122973acc207f2a9ffeb76e6..ba069cbf046231815836ffd726592c7a8d6e6ec9 100644 GIT binary patch delta 2997 zcmaE0_}WN2k(ZZ?fq{Wxe}hEI26G06#~=<e=3ro8aA06yD4sJ>`)+*-LkfS6Qm%58 zG9yC@LkeS#O0H^@DwM63s~)A!$l%V9B9J23!jK}E%9o|l%p9eeB9tQB!VsmEs+}T| z%`}0jXhsS{3P+A;u2_^9RIg5y4%j^1DBTo>6ww^LT>U70u$)+qL9StxAtOVo*n)ba zg$!B7DZG*lQ6?$ksV1`-QY7XwN0~y|l5?4(%u=MH%u_W}O;gQMq*G*4%~NDk<a*hn zEK)gAEmGuD6jBsZlzLgBEK`{lSfw&$Sue0z$S{GiXh({29#e|SLdGbtXqN2)yM+u< z_Nl5_4k@ZBYQ2n6jwuZFQBJ9j3!E1+xG==pMY*IprSO_FL^-88rMjlNL1da4n;BEo zB^a_nhCWJlS>O&<%@gI3BAe<F?>T{~P+$UM;iFXb1zxF+S>9PbDN+lWQXS*HQy8Lr zQ*{^UE@X)EOBGMGY-V&}h_#6FPxVdF$Y!0uR20ML&M<+guqo9)hB+!ADlmpQDkv&A zDkL>DH6SajnURqp)fem_-w8~G9#EsgQ$tfUQ^QmJBp8~R7#UI+gBdinCKoWR6W3(C zB^;I+;+C3NQd*SiT2WGzm|T)yG+B;$f(%14H&P-HV_;wa@tGMI7>e^IUuG_;XGvkL z<t`CiAheJnOE`s1lA)HTM6iY-i?f+AOC*I|nxTdvUbIB4h9OHdg`=6NU#6C~M0|ln z4evt68ishuaE25H76ulEW@bi)JOM+7;v)tOj9?haz{mjB#|hSV4xz7>uZFLNA&Xs- zp_aeChTnxDc1a9Vtw60{jlcq_6wVZ`g-o>qC4w~q&5T*nwL)O$a5OX42uL%eGu8^% z2-PrTNiL9C$WX>m^rc4Fg&{VnR-{H`fh;)wO=>{SXQ>ggVW?qXVaO6Fk*g7GW=v-+ zkuOoG5m}&^!o83Y6uBY{<_t{r4DkXrA`6tjaVt?PTEmdVx<I)`v__~#FpYU3BO}8E z#=@!zjD;qJUr_uiWXLdqv3LWDZ&enkmZ)T@rSPQirttMLm8fK?r|_o;^fIP1fkR89 z1gv6#W{FCcR*GPXP%mSBiAt6>gju4pKxZLCI`cxt5|u376u}hXbfy%MUJy?&MKnbW z%+gO0PmxHG>}5)40UK#hVz|JlhP#G4jj6;i%Q(wqAyW-QylIKy0@V`31!fBwN({5i z(-~5v7BQwXq)0DfOp)njf;z_{g&|m;K~vW6r4a)IgWE06%)I2(f|AVqyi9FI28Ndp z7#J8P&tg-YT*js{c{f|oWKDJ(Ze<1rhFh$~nd!NSn`_v)7+H%rLCS7(=vlGk7o_Ih zV#zAb&%4Evlb@J!OQ<*}GbJ^?Ah9GfHLoN-B{R9?7JE@@K~7?F>MfSylGNN=EZM1* z#go@?=uej6w49v4`Cs0Efq|jO5Jc#M2$0)~^gt|Q5Me&Kj!Tw>B_ls~@=UIP$?v%m zxilFV7-T>xx@vM1w}vM(3lkrs5ECDx7Be3s7b6!F4<ipF7oz|pA0r1N7c&>58WRtr zjVKEv3nLRF(?1ptuJ0WDEQ}zvZ2wqTKs3)!4lXgd$(OlX#BD*Ag1lJd1Y&_oP)&}a z_{n)Zj*<l+5in5*3Kfp@)ROp=#FE4nlTYwWGy+LzG8S1dFfeE`-D1)+xW$;clCdZr zRTGy@PG)gQa(-@s-NDJ-yk-VqZA@Tgx7aiDQZkcMi;F;lMYSNEV4Ju=HsvHHrREeL znEa9V1e*#21H((^$@}^Ah1@{)u|f1RCncsAHBaK#Py!nOCcp*=mgL8$Wmcr7#205) zrN$>ErXQK?#Xl{)9b`o-h-d>5t_ZV=x<Ov#OexAQh%ZVkNiAvyDd+(ay&wW?Hkbfg zzyk`0c#!J+(vq8#%>_dAia>@j6@lDWqzlpl_77MKm;mczkB`qu&5MtJIC-al72~tX zUj)(^S4>_nD9O%M!?BRDmSb|GpcK;rzRAl473-lwH4F=QA(Ay5HB2=uHLNvkY0PQN z!3-%3!3>&Aez#aliV`#PH2I6nLH2@T<Q7L7q_`|D0(tTlXL)gEd|qO1YH<_~h>A~2 zEJ@BtExyG8O}xbrH-nR8708rmhI$5uB0mr_3`E3%!iOa}zo1f+6B7EYnRzLx6-8wr z3Fh+R%%W0|x(X0c2@+#0DJlnXz`h3);2_|Rk55l6$t+3DjgNl<O4e$i5}cV0l$Jp$ z7(_D(FmW;QaWRXra)G!k0&HR&lV1xdiVA@Y6b5ByH@6}YP>3@YHBD9&)~W~Pk|MCn z8$oJ7zAowqu_l6uNg!f2$W^@Y@yR)f#l^{~IXUt1kdy~@TpmaX$c06M3=9m?AeRX+ zFfed1^3^l&a!7En2#9iUa4>^qlbJwnhGG^51_rjtr-T=$T7rzQ0@=czoS#>gT2yk2 zr8u!HRg(oA61Uis^K)}k^Gb?R7#J9$xbjO&3Q9`?5=%0WoB?vdEe?>b_{`jNQAP%a zVo=kDfsqfK&5M>!J}Y9)wt#_wp-N-2qKM>Vbx{FE&&i4+qLY0^g(qi-${6W^il`z` zo++9Patw1>W{I07D^j781ac_2<N>D`p~)LXZ9Q)BdipxLyZX6?7<$Kt8EP`#VlPk4 zOwTAOE@}a(2L*c-ms4W8LP%zAs+EFf#4Xmm(%gc|TTFQcMc`Zo3YJ@wRmF70Zt<1m z7bR!tC6<=trxzur6tRI^GC4y`N9vXsSgI_uI5R&_ucRn3uQ)BgD7UyMeDXRmH%7b3 zU&ZtSdEnxyMa4y+h=>wG)|Q)}lA2R|iw#P1faUb^@@_HZ<=tX;Ni0b$PAvh)RnbzA z<L68^7nieM4sry4a%pi%er|kGYH?m_iK#)+3XlSL+<_zK7AH7^7v<-dK!VL^@&s|$ z`db_@O}99}Hpi!x++s>Dxy6y3k(rZHl$v*o6~Y1+1MVQ}xC#=B5_3~aQj3ajal+ZR zc#BdCOEZg7i{nATbBoO<GcPr<=oV92@-6Pnym(mly~UV(i?z5U5tNiNqe@b9!37m0 z)3JbZ@-1#~R)%EmqDqjBtOZ4xc_l@l!tNGxYF-Lb>H?>9ND{Nj%}*)KNwotvmI@|U zN@#d9f~pc8W}$k9Y7RC~#lpeJ0TN^3W8z`qVPRns;Spe#V&q}xVP;|EVdP+xV&q}u aV-(_GVdh}uVd7$BV-#TI;^JZCU;+Tu`3G76 delta 2773 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 UVqxTB;sEp6K<S-}hmnH`0Oqp4ng9R* diff --git a/code/datasets/__pycache__/data_interface.cpython-39.pyc b/code/datasets/__pycache__/data_interface.cpython-39.pyc index 798fdf96f92b70a082697e2b35225649b461b9e4..4b75185ffe785a930b52a45603beef6de633c028 100644 GIT binary patch delta 3366 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 PpS(=Pk(F0SUxX6?*r41n delta 3332 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 diff --git a/code/datasets/__pycache__/feature_dataloader.cpython-39.pyc b/code/datasets/__pycache__/feature_dataloader.cpython-39.pyc index 60ef98c89f08368cb1252c836eccbf99d987cfbf..3cfbb24377e353d44c206aa9b69b511bedcf57a7 100644 GIT binary patch delta 3599 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 UF!HeQFtad;G4e49G4Tli03Y{W(EtDd literal 11196 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%0AhdwQ2&<`-k>FA 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 Taxt<n^MFie5n$xw;a~&+ty^cZ diff --git a/code/datasets/__pycache__/jpg_dataloader.cpython-39.pyc b/code/datasets/__pycache__/jpg_dataloader.cpython-39.pyc index 32985c0a0392e944a17373474d4eb59dea3f7a71..d0ae46302a1148a8c051d964b078136442e69810 100644 GIT binary patch delta 5074 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 delta 4196 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 diff --git a/code/datasets/classic_jpg_dataloader.py b/code/datasets/classic_jpg_dataloader.py index 8c98e52..1e12756 100644 --- a/code/datasets/classic_jpg_dataloader.py +++ b/code/datasets/classic_jpg_dataloader.py @@ -19,10 +19,13 @@ import json from imgaug import augmenters as iaa from torchsampler import ImbalancedDatasetSampler from .utils import myTransforms +from transformers import ViTFeatureExtractor +import torchvision.models as models +import torch.nn as nn class JPGBagLoader(data_utils.Dataset): - def __init__(self, file_path, label_path, mode, n_classes, data_cache_size=100, max_bag_size=1000, cache=False, mixup=False, aug=False, model='inception'): + def __init__(self, file_path, label_path, mode, n_classes, data_cache_size=100, max_bag_size=1000, cache=False, mixup=False, aug=False, model=''): super().__init__() self.data_info = [] @@ -43,10 +46,15 @@ class JPGBagLoader(data_utils.Dataset): self.labels = [] if model == 'inception': size = 299 - elif model == 'vit': - size = 384 + # elif model == 'vit': + # size = 384 else: size = 224 - + + home = Path.cwd().parts[1] + self.slide_patient_dict_path = Path(self.label_path).parent / 'slide_patient_dict_an.json' + # self.slide_patient_dict_path = f'/{home}/ylan/data/DeepGraft/training_tables/slide_patient_dict_an.json' + with open(self.slide_patient_dict_path, 'r') as f: + self.slide_patient_dict = json.load(f) # read labels and slide_path from csv with open(self.label_path, 'r') as f: @@ -55,18 +63,18 @@ class JPGBagLoader(data_utils.Dataset): # print(len(temp_slide_label_dict)) for (x,y) in temp_slide_label_dict: x = x.replace('FEATURES_RETCCL_2048', 'BLOCKS') - # print(x) x_name = Path(x).stem x_path_list = [Path(self.file_path)/x] - for x_path in x_path_list: - if x_path.exists(): - # print(len(list(x_path.glob('*')))) + if x_name in self.slide_patient_dict.keys(): + for x_path in x_path_list: + if x_path.exists(): + # print(len(list(x_path.glob('*')))) - self.slideLabelDict[x_name] = y - self.labels += [int(y)]*len(list(x_path.glob('*'))) - # self.labels.append(int(y)) - for patch in x_path.iterdir(): - self.files.append((patch, x_name, y)) + self.slideLabelDict[x_name] = y + self.labels += [int(y)]*len(list(x_path.glob('*'))) + # self.labels.append(int(y)) + for patch in x_path.iterdir(): + self.files.append((patch, x_name, y)) # with open(self.label_path, 'r') as f: # temp_slide_label_dict = json.load(f)[mode] @@ -83,11 +91,8 @@ class JPGBagLoader(data_utils.Dataset): # self.files.append(x_complete_path) # else: self.empty_slides.append(x_complete_path) - home = Path.cwd().parts[1] - self.slide_patient_dict_path = Path(self.label_path).parent / 'slide_patient_dict_an.json' - # self.slide_patient_dict_path = f'/{home}/ylan/data/DeepGraft/training_tables/slide_patient_dict_an.json' - with open(self.slide_patient_dict_path, 'r') as f: - self.slide_patient_dict = json.load(f) + + self.color_transforms = myTransforms.Compose([ @@ -102,9 +107,9 @@ class JPGBagLoader(data_utils.Dataset): myTransforms.HEDJitter(theta=0.005), ]) - self.color_transforms = myTransforms.Compose([ - myTransforms.Grayscale(num_output_channels=3) - ]) + # self.color_transforms = myTransforms.Compose([ + # myTransforms.Grayscale(num_output_channels=3) + # ]) self.train_transforms = myTransforms.Compose([ myTransforms.RandomChoice([myTransforms.RandomHorizontalFlip(p=0.5), myTransforms.RandomVerticalFlip(p=0.5), @@ -115,7 +120,7 @@ class JPGBagLoader(data_utils.Dataset): myTransforms.RandomElastic(alpha=2, sigma=0.06), ]) - self.resize_transforms = transforms.Resize((299,299), transforms.InterpolationMode.BICUBIC) + self.resize_transforms = transforms.Resize((size,size), transforms.InterpolationMode.BICUBIC) # sometimes = lambda aug: iaa.Sometimes(0.5, aug, name="Random1") # sometimes2 = lambda aug: iaa.Sometimes(0.2, aug, name="Random2") @@ -142,6 +147,9 @@ class JPGBagLoader(data_utils.Dataset): # # ], name="MyOneOf") # ], name="MyAug") + # if self.model == 'vit': + # model_name_or_path = 'models/ckpt/vit-base-patch16-224-in21k/' + # self.val_transforms = ViTFeatureExtractor.from_pretrained(model_name_or_path) self.val_transforms = transforms.Compose([ # transforms.ToTensor(), @@ -236,7 +244,10 @@ class JPGBagLoader(data_utils.Dataset): # t = self.files[index] # label = self.labels[index] img, label, (wsi_name, tile_name, patient) = self.get_data(t) - save_img(img, f'{tile_name}_original') + # save_img(img, f'{tile_name}_original') + # if self.model == 'vit': + # img = self.val_transforms(img, return_tesnors='pt') + # else: img = self.resize_transforms(img) img = self.color_transforms(img) img = self.train_transforms(img) @@ -254,6 +265,9 @@ class JPGBagLoader(data_utils.Dataset): # seq_img_d = self.train_transforms.to_deterministic() # seq_img_resize = self.resize_transforms.to_deterministic() # img = img.numpy().astype(np.uint8) + # if self.model == 'vit': + # img = self.val_transforms(img, return_tesnors='pt') + # else: img = self.resize_transforms(img) # img = np.moveaxis(img, 0, 2) img = self.val_transforms(img) @@ -282,13 +296,13 @@ if __name__ == '__main__': # data_root = f'/{home}/ylan/DeepGraft/dataset/hdf5/256_256um_split/' # label_path = f'/{home}/ylan/DeepGraft_project/code/split_PAS_bin.json' # label_path = f'/{home}/ylan/DeepGraft/training_tables/split_debug.json' - label_path = f'/{home}/ylan/data/DeepGraft/training_tables/dg_limit_5_split_PAS_HE_Jones_norm_rest_test.json' + label_path = f'/{home}/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest.json' # output_dir = f'/{data_root}/debug/augments' # os.makedirs(output_dir, exist_ok=True) n_classes = 2 - dataset = JPGBagLoader(data_root, label_path=label_path, mode='train', n_classes=n_classes, cache=False) + dataset = JPGBagLoader(data_root, label_path=label_path, mode='train', model='vit', n_classes=n_classes, cache=False) # dataset = JPGBagLoader(data_root, label_path=label_path, mode='train', n_classes=n_classes, cache=False) # print(dataset.get_labels(0)) @@ -300,20 +314,37 @@ if __name__ == '__main__': # b = int(len(dataset) - a) # train_ds, val_ds = torch.utils.data.random_split(dataset, [a, b]) # dl = FastTensorDataLoader(dataset, batch_size=1, shuffle=False) - dl = DataLoader(dataset, batch_size=5, num_workers=8, pin_memory=True) + dl = DataLoader(dataset, batch_size=100, num_workers=8, pin_memory=True) # print(len(dl)) # dl = DataLoader(dataset, batch_size=1, sampler=ImbalancedDatasetSampler(dataset), num_workers=5) device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") scaler = torch.cuda.amp.GradScaler() - model_ft = resnet50_baseline(pretrained=True) - for param in model_ft.parameters(): - param.requires_grad = False - model_ft.to(device) + # model_ft = resnet50_baseline(pretrained=True) + # for param in model_ft.parameters(): + # param.requires_grad = False + # model_ft.to(device) + + model_ft = models.resnet50(weights='IMAGENET1K_V1') + + + ct = 0 + for child in model_ft.children(): + ct += 1 + if ct < len(list(model_ft.children())) - 3: + for parameter in child.parameters(): + parameter.requires_grad=False + model_ft.fc = nn.Linear(model_ft.fc.in_features, 2) + + # print(model_ft) + + # print(list(model_ft.children())[:7]) + # for parameter in child.parameters(): + # print(parameter.requires_grad) c = 0 - label_count = [0] *n_classes - # print(len(dl)) + # label_count = [0] *n_classes + # # print(len(dl)) start = time.time() for item in tqdm(dl): diff --git a/code/datasets/data_interface.py b/code/datasets/data_interface.py index 065e844..41dd2ce 100644 --- a/code/datasets/data_interface.py +++ b/code/datasets/data_interface.py @@ -124,7 +124,7 @@ import torch class MILDataModule(pl.LightningDataModule): - def __init__(self, data_root: str, label_path: str, model_name: str, batch_size: int=1, num_workers: int=8, n_classes=2, cache: bool=True, use_features=False, train_classic=False, mixup=False, aug=False, *args, **kwargs): + def __init__(self, data_root: str, label_path: str, model_name: str, batch_size: int=1, num_workers: int=8, n_classes=2, cache: bool=True, use_features=False, train_classic=False, mixup=False, aug=False, fine_tune=False, *args, **kwargs): super().__init__() self.data_root = data_root self.label_path = label_path @@ -141,9 +141,12 @@ class MILDataModule(pl.LightningDataModule): self.mixup = mixup self.aug = aug self.train_classic = train_classic + self.fine_tune = fine_tune self.max_bag_size = 1000 self.model_name = model_name + self.use_features = use_features + self.class_weight = [] self.cache = cache @@ -157,16 +160,24 @@ class MILDataModule(pl.LightningDataModule): self.base_dataloader = FeatureBagLoader # self.cache = True + + def setup(self, stage: Optional[str] = None) -> None: home = Path.cwd().parts[1] - + # print('batch size: ', self.batch_size) + # print('valid_data') + self.valid_data = self.base_dataloader(self.data_root, label_path=self.label_path, mode='val', n_classes=self.n_classes, cache=self.cache, model=self.model_name) if stage in (None, 'fit'): - self.train_data = self.base_dataloader(self.data_root, label_path=self.label_path, mode='train', n_classes=self.n_classes, cache=self.cache, mixup=self.mixup, aug=self.aug, model=self.model_name) - self.valid_data = self.base_dataloader(self.data_root, label_path=self.label_path, mode='val', n_classes=self.n_classes, cache=self.cache, model=self.model_name) + # print('self.fine_tune', self.fine_tune) + if self.fine_tune: + self.train_data = self.base_dataloader(self.data_root, label_path=self.label_path, mode='fine_tune', n_classes=self.n_classes, cache=self.cache, mixup=self.mixup, aug=self.aug, model=self.model_name) + else: + self.train_data = self.base_dataloader(self.data_root, label_path=self.label_path, mode='train', n_classes=self.n_classes, cache=self.cache, mixup=self.mixup, aug=self.aug, model=self.model_name) + # self.valid_data = self.base_dataloader(self.data_root, label_path=self.label_path, mode='val', n_classes=self.n_classes, cache=self.cache, model=self.model_name) # dataset = JPGMILDataloader(self.data_root, label_path=self.label_path, mode='train', n_classes=self.n_classes) print('Train Data: ', len(self.train_data)) - print('Val Data: ', len(self.valid_data)) + # print('Val Data: ', len(self.valid_data)) # a = int(len(dataset)* 0.8) # b = int(len(dataset) - a) # self.train_data, self.valid_data = random_split(dataset, [a, b]) @@ -176,8 +187,8 @@ class MILDataModule(pl.LightningDataModule): if stage in (None, 'test'): + self.test_data = self.base_dataloader(self.data_root, label_path=self.label_path, mode='test', n_classes=self.n_classes, cache=False, model=self.model_name, mixup=False, aug=False) - print(len(self.test_data)) return super().setup(stage=stage) @@ -186,17 +197,22 @@ class MILDataModule(pl.LightningDataModule): def train_dataloader(self) -> DataLoader: # return DataLoader(self.train_data, batch_size = self.batch_size, num_workers=self.num_workers) #batch_transforms=self.transform, pseudo_batch_dim=True, # return DataLoader(self.train_data, batch_size = self.batch_size, sampler = WeightedRandomSampler(self.weights, len(self.weights)), num_workers=self.num_workers) #batch_transforms=self.transform, pseudo_batch_dim=True, - if self.train_classic: + if self.train_classic or not self.use_features: return DataLoader(self.train_data, batch_size = self.batch_size, num_workers=self.num_workers) #batch_transforms=self.transform, pseudo_batch_dim=True, else: return DataLoader(self.train_data, batch_size = self.batch_size, sampler=ImbalancedDatasetSampler(self.train_data), num_workers=self.num_workers) #batch_transforms=self.transform, pseudo_batch_dim=True, - # return DataLoader(self.train_data, batch_size = self.batch_size, sampler=ImbalancedDatasetSampler(self.train_data), num_workers=self.num_workers, collate_fn=self.custom_collate) #batch_transforms=self.transform, pseudo_batch_dim=True, + # return DataLoader(self.train_data, batch_size = self.batch_size, num_workers=self.num_workers) #batch_transforms=self.transform, pseudo_batch_dim=True, #sampler=ImbalancedDatasetSampler(self.train_data) def val_dataloader(self) -> DataLoader: - return DataLoader(self.valid_data, batch_size = self.batch_size, num_workers=self.num_workers) + if self.train_classic: + return DataLoader(self.valid_data, batch_size = self.batch_size, num_workers=self.num_workers) + else: + return DataLoader(self.valid_data, batch_size = 1, num_workers=self.num_workers) def test_dataloader(self) -> DataLoader: - return DataLoader(self.test_data, batch_size = 1, num_workers=self.num_workers) + if self.train_classic: + return DataLoader(self.test_data, batch_size = self.batch_size, num_workers=self.num_workers) + else: return DataLoader(self.test_data, batch_size = 1, num_workers=self.num_workers) def get_weights(self, dataset): @@ -214,36 +230,6 @@ class MILDataModule(pl.LightningDataModule): return torch.DoubleTensor(weights) - def custom_collate(self, batch): - # print(len(batch)) - # print(len(batch)) - for i in batch: - - bag, label, (wsi_name, patient) = i - print(bag.shape) - - # print(bag.shape) - - # bag_size = bag.shape[0] - # bag_idxs = torch.randperm(bag_size)[:self.max_bag_size] - # # bag_idxs = torch.randperm(bag_size)[:int(self.max_bag_size*(1-self.drop_rate))] - # out_bag = bag[bag_idxs, :] - # if self.mixup: - # out_bag = self.get_mixup_bag(out_bag) - # # batch_coords = - # if out_bag.shape[0] < self.max_bag_size: - # out_bag = torch.cat((out_bag, torch.zeros(self.max_bag_size-out_bag.shape[0], out_bag.shape[1]))) - - # # shuffle again - # out_bag_idxs = torch.randperm(out_bag.shape[0]) - # out_bag = out_bag[out_bag_idxs] - # batch_coords = batch_coords[bag_idxs] - - - # return out_bag, label, (wsi_name, batch_coords, patient) - return batch - - def get_mixup_bag(self, bag): bag_size = bag.shape[0] @@ -276,8 +262,6 @@ class MILDataModule(pl.LightningDataModule): return mixup_bag - - class DataModule(pl.LightningDataModule): def __init__(self, data_root: str, label_path: str, batch_size: int=1, num_workers: int=8, n_classes=2, cache: bool=True, backbone=None, *args, **kwargs): diff --git a/code/datasets/feature_dataloader.py b/code/datasets/feature_dataloader.py index 21b8081..d6387ef 100644 --- a/code/datasets/feature_dataloader.py +++ b/code/datasets/feature_dataloader.py @@ -23,7 +23,7 @@ import h5py class FeatureBagLoader(data.Dataset): - def __init__(self, file_path, label_path, mode, model, n_classes, cache=False, mixup=False, aug=False, data_cache_size=5000, max_bag_size=1000): + def __init__(self, file_path, label_path, mode, n_classes, model='None',cache=False, mixup=False, aug=False, mix_res=False, data_cache_size=5000, max_bag_size=1000): super().__init__() self.data_info = [] @@ -45,34 +45,65 @@ class FeatureBagLoader(data.Dataset): self.cache = cache self.mixup = mixup self.aug = aug - + # self.file_path_mix = self.file_path.replace('256', '1024') self.missing = [] + self.use_1024 = False + + # print('Using FeatureBagLoader: ', self.mode) home = Path.cwd().parts[1] - self.slide_patient_dict_path = f'/{home}/ylan/data/DeepGraft/training_tables/slide_patient_dict_an.json' + + self.slide_patient_dict_path = f'/{home}/ylan/data/DeepGraft/training_tables/slide_patient_dict_an_ext.json' with open(self.slide_patient_dict_path, 'r') as f: self.slide_patient_dict = json.load(f) # read labels and slide_path from csv + with open(self.label_path, 'r') as f: json_dict = json.load(f) - temp_slide_label_dict = json_dict[self.mode] - # print(len(temp_slide_label_dict)) + if self.mode == 'fine_tune': + temp_slide_label_dict = json_dict['train'] + json_dict['test_mixin'] + else: temp_slide_label_dict = json_dict[self.mode] + # print('temp_slide_label_dict:', len(temp_slide_label_dict)) for (x,y) in temp_slide_label_dict: - x = x.replace('FEATURES_RETCCL_2048', 'FEATURES_RETCCL_2048_HED') + # test_path = Path(self.file_path) + # if Path(self.file_path) / + # if self.mode != 'test': + # x = x.replace('FEATURES_RETCCL_2048', 'TEST') + # else: + # x = x.replace('FEATURES_RETCCL_2048', 'FEATURES_RESNET50_1024_HED') + # x = x.replace('FEATURES_RETCCL_2048', 'FEATURES_RETCCL_2048_HED') + x = x.replace('FEATURES_RETCCL_2048', 'FEATURES_CTRANSPATH_768') + # else: + # x = x.replace('Aachen_Biopsy_Slides', 'Aachen_Biopsy_Slides_extended') x_name = Path(x).stem + # print(x) + # print(x_name) if x_name in self.slide_patient_dict.keys(): x_path_list = [Path(self.file_path)/x] # x_name = x.stem # x_path_list = [Path(self.file_path)/ x for (x,y) in temp_slide_label_dict] + # print(x) if self.aug: for i in range(10): aug_path = Path(self.file_path)/f'{x}_aug{i}' + if self.use_1024: + aug_path = Path(f'{aug_path}-1024') + if aug_path.exists(): + # aug_path = Path(self.file_path)/f'{x}_aug{i}' + x_path_list.append(aug_path) + else: + aug_path = Path(self.file_path)/f'{x}_aug0' + if self.use_1024: + aug_path = Path(f'{aug_path}-1024') + if aug_path.exists(): x_path_list.append(aug_path) - + # print('x_path_list: ', len(x_path_list)) for x_path in x_path_list: - + # print(x_path) + # print(x_path) + # x_path = Path(f'{x_path}.pt') if x_path.exists(): self.slideLabelDict[x_name] = y self.labels.append(int(y)) @@ -157,273 +188,35 @@ class FeatureBagLoader(data.Dataset): batch_names=[] #add function for name_batch read out wsi_name = Path(file_path).stem - if wsi_name.split('_')[-1][:3] == 'aug': - wsi_name = '_'.join(wsi_name.split('_')[:-1]) - # if wsi_name in self.slideLabelDict: - # label = self.slideLabelDict[wsi_name] - patient = self.slide_patient_dict[wsi_name] - - if Path(file_path).suffix == '.zarr': - z = zarr.open(file_path, 'r') - np_bag = np.array(z['data'][:]) - coords = np.array(z['coords'][:]) - else: - with h5py.File(file_path, 'r') as hdf5_file: - np_bag = hdf5_file['features'][:] - coords = hdf5_file['coords'][:] - - # np_bag = torch.load(file_path) - # z = zarr.open(file_path, 'r') - # np_bag = np.array(z['data'][:]) - # np_bag = np.array(zarr.open(file_path, 'r')).astype(np.uint8) - # label = torch.as_tensor(label) - # label = int(label) - wsi_bag = torch.from_numpy(np_bag) - batch_coords = torch.from_numpy(coords) - - return wsi_bag, (wsi_name, batch_coords, patient) - - def get_labels(self, indices): - # for i in indices: - # print(self.labels[i]) - return [self.labels[i] for i in indices] - - - def to_fixed_size_bag(self, bag, names, bag_size: int = 512): - - #duplicate bag instances unitl - - bag_idxs = torch.randperm(bag.shape[0])[:bag_size] - bag_samples = bag[bag_idxs] - name_samples = [names[i] for i in bag_idxs] - # bag_sample_names = [bag_names[i] for i in bag_idxs] - # q, r = divmod(bag_size, bag_samples.shape[0]) - # if q > 0: - # bag_samples = torch.cat([bag_samples]*q, 0) - - # self_padded = torch.cat([bag_samples, bag_samples[:r,:, :, :]]) - - # zero-pad if we don't have enough samples - # zero_padded = torch.cat((bag_samples, - # torch.zeros(bag_size-bag_samples.shape[0], bag_samples.shape[1], bag_samples.shape[2], bag_samples.shape[3]))) - - return bag_samples, name_samples, min(bag_size, len(bag)) - - def data_dropout(self, bag, batch_names, drop_rate): - # bag_size = self.max_bag_size - bag_size = bag.shape[0] - bag_idxs = torch.randperm(self.max_bag_size)[:int(bag_size*(1-drop_rate))] - bag_samples = bag[bag_idxs] - name_samples = [batch_names[i] for i in bag_idxs] - - return bag_samples, name_samples - - def get_mixup_bag(self, bag): - - bag_size = bag.shape[0] - - a = torch.rand([bag_size]) - b = 0.6 - rand_x = torch.randint(0, bag_size, [bag_size,]) - rand_y = torch.randint(0, bag_size, [bag_size,]) - - bag_x = bag[rand_x, :] - bag_y = bag[rand_y, :] - - - temp_bag = (bag_x.t()*a).t() + (bag_y.t()*(1.0-a)).t() - # print('temp_bag: ', temp_bag.shape) - - if bag_size < self.max_bag_size: - diff = self.max_bag_size - bag_size - bag_idxs = torch.randperm(bag_size)[:diff] - - # print('bag: ', bag.shape) - # print('bag_idxs: ', bag_idxs.shape) - mixup_bag = torch.cat((bag, temp_bag[bag_idxs, :])) - # print('mixup_bag: ', mixup_bag.shape) - else: - random_sample_list = torch.rand(bag_size) - mixup_bag = [bag[i] if random_sample_list[i] else temp_bag[i] > b for i in range(bag_size)] #make pytorch native?! - mixup_bag = torch.stack(mixup_bag) - # print('else') - # print(mixup_bag.shape) - - return mixup_bag - - def __len__(self): - return len(self.files) - - def __getitem__(self, index): - - if self.cache: - label = self.labels[index] - bag = self.feature_bags[index] - - - - # label = Variable(Tensor(label)) - # label = torch.as_tensor(label) - # label = torch.nn.functional.one_hot(label, num_classes=self.n_classes) - wsi_name = self.wsi_names[index] - batch_coords = self.coords[index] - patient = self.patients[index] - - - #random dropout - #shuffle - - # feats = Variable(Tensor(feats)) - # return wsi, label, (wsi_name, batch_coords, patient) - else: - t = self.files[index] - label = self.labels[index] - bag, (wsi_name, batch_coords, patient) = self.get_data(t) - # print(bag.shape) - # label = torch.as_tensor(label) - # label = torch.nn.functional.one_hot(label, num_classes=self.n_classes) - # self.labels.append(label) - # self.feature_bags.append(batch) - # self.wsi_names.append(wsi_name) - # self.name_batches.append(name_batch) - # self.patients.append(patient) - if self.mode == 'train': - bag_size = bag.shape[0] - - bag_idxs = torch.randperm(bag_size)[:self.max_bag_size] - # bag_idxs = torch.randperm(bag_size)[:int(self.max_bag_size*(1-self.drop_rate))] - out_bag = bag[bag_idxs, :] - if self.mixup: - out_bag = self.get_mixup_bag(out_bag) - # batch_coords = - if out_bag.shape[0] < self.max_bag_size: - out_bag = torch.cat((out_bag, torch.zeros(self.max_bag_size-out_bag.shape[0], out_bag.shape[1]))) - - # shuffle again - out_bag_idxs = torch.randperm(out_bag.shape[0]) - out_bag = out_bag[out_bag_idxs] - - - # batch_coords only useful for test - batch_coords = batch_coords[bag_idxs] - # out_bag = bag - - # mixup? Linear combination of 2 vectors - # add noise - - + # base_file = file_path.with_suffix('') + # if wsi_name.split('_')[-1][:3] == 'aug': + parts = wsi_name.rsplit('_', 1) + if parts[1][:3] == 'aug': + if parts[1].split('-')[0] == '1024': + wsi_name = parts[0] else: - bag_size = bag.shape[0] - bag_idxs = torch.randperm(bag_size)[:self.max_bag_size] - out_bag = bag[bag_idxs, :] - if out_bag.shape[0] < self.max_bag_size: - out_bag = torch.cat((out_bag, torch.zeros(self.max_bag_size-out_bag.shape[0], out_bag.shape[1]))) - - - return out_bag, label, (wsi_name, patient) - # return out_bag, label, (wsi_name, batch_coords, patient) - -class FeatureBagLoader_Mixed(data.Dataset): - def __init__(self, file_path, label_path, mode, n_classes, cache=False, mixup=False, aug=False, data_cache_size=5000, max_bag_size=1000): - super().__init__() - - self.data_info = [] - self.data_cache = {} - self.slideLabelDict = {} - self.files = [] - self.labels = [] - self.data_cache_size = data_cache_size - self.mode = mode - self.file_path = file_path - # self.csv_path = csv_path - self.label_path = label_path - self.n_classes = n_classes - self.max_bag_size = max_bag_size - self.drop_rate = 0.2 - # self.min_bag_size = 120 - self.empty_slides = [] - self.corrupt_slides = [] - self.cache = cache - self.mixup = mixup - self.aug = aug - - self.missing = [] - - home = Path.cwd().parts[1] - self.slide_patient_dict_path = f'/{home}/ylan/DeepGraft/training_tables/slide_patient_dict_an.json' - with open(self.slide_patient_dict_path, 'r') as f: - self.slide_patient_dict = json.load(f) - - # read labels and slide_path from csv - with open(self.label_path, 'r') as f: - json_dict = json.load(f) - temp_slide_label_dict = json_dict[self.mode] - # print(len(temp_slide_label_dict)) - for (x,y) in temp_slide_label_dict: - - x_name = Path(x).stem - x_path_list = [Path(self.file_path)/x] - # x_name = x.stem - # x_path_list = [Path(self.file_path)/ x for (x,y) in temp_slide_label_dict] - if self.aug: - for i in range(5): - aug_path = Path(self.file_path)/f'{x}_aug{i}' - x_path_list.append(aug_path) - - for x_path in x_path_list: - - if x_path.exists(): - self.slideLabelDict[x_name] = y - self.labels.append(int(y)) - self.files.append(x_path) - for patch_path in x_path.iterdir(): - self.files.append((patch_path, x_name, y)) - - - self.feature_bags = [] - - self.wsi_names = [] - self.coords = [] - self.patients = [] - - if self.cache: - for t in tqdm(self.files): - # zarr_t = str(t) + '.zarr' - batch, (wsi_name, batch_coords, patient) = self.get_data(t) - - # print(label) - # self.labels.append(label) - self.feature_bags.append(batch) - self.wsi_names.append(wsi_name) - self.coords.append(batch_coords) - self.patients.append(patient) - # else: - # for t in tqdm(self.files): - # self.labels = - - # def create_bag(self): - - - - def get_data(self, file_path): - - batch_names=[] #add function for name_batch read out - - wsi_name = Path(file_path).stem - if wsi_name.split('_')[-1][:3] == 'aug': - wsi_name = '_'.join(wsi_name.split('_')[:-1]) + wsi_name = '_'.join(parts[:-1]) + # wsi_name = '_'.join(wsi_name.split('_')[:-1]) + + # base_file = Path('_'.join(str(base_file).split('_')[:-1])) # if wsi_name in self.slideLabelDict: # label = self.slideLabelDict[wsi_name] patient = self.slide_patient_dict[wsi_name] - - if Path(file_path).suffix == '.zarr': - z = zarr.open(file_path, 'r') - np_bag = np.array(z['data'][:]) - coords = np.array(z['coords'][:]) - else: - with h5py.File(file_path, 'r') as hdf5_file: - np_bag = hdf5_file['features'][:] - coords = hdf5_file['coords'][:] + # print(file_path) + with h5py.File(file_path, 'r') as hdf5_file: + np_bag = hdf5_file['features'][:] + coords = hdf5_file['coords'][:] + #info@arno-flachskampf.de + + # if Path(file_path).suffix == '.zarr': + # z = zarr.open(file_path, 'r') + # np_bag = np.array(z['data'][:]) + # coords = np.array(z['coords'][:]) + # else: + # with h5py.File(file_path, 'r') as hdf5_file: + # print(hdf5_file.keys()) + # np_bag = hdf5_file['features'][:] + # coords = hdf5_file['coords'][:] # np_bag = torch.load(file_path) # z = zarr.open(file_path, 'r') @@ -436,29 +229,19 @@ class FeatureBagLoader_Mixed(data.Dataset): return wsi_bag, (wsi_name, batch_coords, patient) - def get_labels(self, indices): - # for i in indices: - # print(self.labels[i]) - return [self.labels[i] for i in indices] + # def get_labels(self, indices): + # # for i in indices: + # # print(self.labels[i]) + # return [self.labels[i] for i in indices] + def get_labels(self): + return self.labels def to_fixed_size_bag(self, bag, names, bag_size: int = 512): - #duplicate bag instances unitl - bag_idxs = torch.randperm(bag.shape[0])[:bag_size] bag_samples = bag[bag_idxs] name_samples = [names[i] for i in bag_idxs] - # bag_sample_names = [bag_names[i] for i in bag_idxs] - # q, r = divmod(bag_size, bag_samples.shape[0]) - # if q > 0: - # bag_samples = torch.cat([bag_samples]*q, 0) - - # self_padded = torch.cat([bag_samples, bag_samples[:r,:, :, :]]) - - # zero-pad if we don't have enough samples - # zero_padded = torch.cat((bag_samples, - # torch.zeros(bag_size-bag_samples.shape[0], bag_samples.shape[1], bag_samples.shape[2], bag_samples.shape[3]))) return bag_samples, name_samples, min(bag_size, len(bag)) @@ -485,22 +268,16 @@ class FeatureBagLoader_Mixed(data.Dataset): temp_bag = (bag_x.t()*a).t() + (bag_y.t()*(1.0-a)).t() - # print('temp_bag: ', temp_bag.shape) if bag_size < self.max_bag_size: diff = self.max_bag_size - bag_size bag_idxs = torch.randperm(bag_size)[:diff] - # print('bag: ', bag.shape) - # print('bag_idxs: ', bag_idxs.shape) mixup_bag = torch.cat((bag, temp_bag[bag_idxs, :])) - # print('mixup_bag: ', mixup_bag.shape) else: random_sample_list = torch.rand(bag_size) mixup_bag = [bag[i] if random_sample_list[i] else temp_bag[i] > b for i in range(bag_size)] #make pytorch native?! mixup_bag = torch.stack(mixup_bag) - # print('else') - # print(mixup_bag.shape) return mixup_bag @@ -513,34 +290,15 @@ class FeatureBagLoader_Mixed(data.Dataset): label = self.labels[index] bag = self.feature_bags[index] - - - # label = Variable(Tensor(label)) - # label = torch.as_tensor(label) - # label = torch.nn.functional.one_hot(label, num_classes=self.n_classes) wsi_name = self.wsi_names[index] batch_coords = self.coords[index] patient = self.patients[index] - - - #random dropout - #shuffle - - # feats = Variable(Tensor(feats)) - # return wsi, label, (wsi_name, batch_coords, patient) else: t = self.files[index] label = self.labels[index] bag, (wsi_name, batch_coords, patient) = self.get_data(t) - # print(bag.shape) - # label = torch.as_tensor(label) - # label = torch.nn.functional.one_hot(label, num_classes=self.n_classes) - # self.labels.append(label) - # self.feature_bags.append(batch) - # self.wsi_names.append(wsi_name) - # self.name_batches.append(name_batch) - # self.patients.append(patient) - if self.mode == 'train': + + if self.mode == 'train' or self.mode == 'fine_tune': bag_size = bag.shape[0] bag_idxs = torch.randperm(bag_size)[:self.max_bag_size] @@ -559,24 +317,25 @@ class FeatureBagLoader_Mixed(data.Dataset): # batch_coords only useful for test batch_coords = batch_coords[bag_idxs] - # out_bag = bag - - # mixup? Linear combination of 2 vectors - # add noise - + return out_bag, label, (wsi_name, patient) - # elif self.mode == 'val': - # bag_size = bag.shape[0] - # bag_idxs = torch.randperm(bag_size)[:self.max_bag_size] - # out_bag = bag[bag_idxs, :] - # if out_bag.shape[0] < self.max_bag_size: - # out_bag = torch.cat((out_bag, torch.zeros(self.max_bag_size-out_bag.shape[0], out_bag.shape[1]))) - else: + else: # bag_size = bag.shape[0] + # bag_idxs = torch.randperm(bag_size)[:self.max_bag_size] + # batch_coords = batch_coords[bag_idxs, :] + # out_bag = bag[bag_idxs, :] + # print(out_bag.shape) + # if out_bag.shape[0] < self.max_bag_size: + # out_bag = torch.cat((out_bag, torch.zeros(self.max_bag_size-out_bag.shape[0], out_bag.shape[1]))) + # out_batch_coords = out_bag = bag + # print('feature_dataloader: ', out_bag.shape) + + return out_bag, label, (wsi_name, batch_coords, patient) + # return out_bag, label, (wsi_name, batch_coords, patient) + - return out_bag, label, (wsi_name, patient) if __name__ == '__main__': @@ -585,42 +344,41 @@ if __name__ == '__main__': import os import time # from fast_tensor_dl import FastTensorDataLoader - # from custom_resnet50 import resnet50_baseline - + from custom_resnet50 import resnet50_baseline - home = Path.cwd().parts[1] train_csv = f'/{home}/ylan/DeepGraft_project/code/debug_train.csv' - data_root = f'/{home}/ylan/data/DeepGraft/224_128uM_annotated' + data_root = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated' # data_root = f'/{home}/ylan/DeepGraft/dataset/hdf5/256_256um_split/' # label_path = f'/{home}/ylan/DeepGraft_project/code/split_PAS_bin.json' # label_path = f'/{home}/ylan/DeepGraft/training_tables/split_debug.json' - label_path = f'/{home}/ylan/DeepGraft/training_tables/dg_limit_5_split_PAS_HE_Jones_norm_rest_test.json' - output_dir = f'/{data_root}/debug/augments' - os.makedirs(output_dir, exist_ok=True) - + label_path = f'/{home}/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_rest_rej_ext.json' + # output_dir = f'/{data_root}/debug/augments' + # os.makedirs(output_dir, exist_ok=True) n_classes = 2 train_dataset = FeatureBagLoader(data_root, label_path=label_path, mode='train', cache=False, mixup=True, aug=True, n_classes=n_classes) - val_dataset = FeatureBagLoader(data_root, label_path=label_path, mode='val', cache=False, mixup=False, aug=False, n_classes=n_classes) + print('train_dataset: ', len(train_dataset)) - test_dataset = FeatureBagLoader(data_root, label_path=label_path, mode='test', cache=False, n_classes=n_classes) + train_dl = DataLoader(train_dataset, batch_size=100, sampler=ImbalancedDatasetSampler(train_dataset)) # - # print(dataset.get_labels(0)) - # a = int(len(dataset)* 0.8) - # b = int(len(dataset) - a) - # train_data, valid_data = random_split(dataset, [a, b]) + print('train_dl: ', len(train_dl)) - train_dl = DataLoader(train_dataset, batch_size=1, sampler=ImbalancedDatasetSampler(train_dataset), num_workers=5) - valid_dl = DataLoader(val_dataset, batch_size=1, num_workers=5) - test_dl = DataLoader(test_dataset) + # train_dataset = FeatureBagLoader(data_root, label_path=label_path, mode='train', cache=False, n_classes=n_classes, model='None', aug=True, mixup=True) + # test_dataset = FeatureBagLoader(data_root, label_path=label_path, mode='test', cache=False, n_classes=n_classes, model='None', aug=True, mixup=True) + # test_dl = DataLoader(test_dataset, batch_size=1) + # print('test_dl: ', len(test_dl)) - print('train_dl: ', len(train_dl)) - print('valid_dl: ', len(valid_dl)) - print('test_dl: ', len(test_dl)) + # # print(dataset.get_labels(0)) + # # a = int(len(dataset)* 0.8) + # # b = int(len(dataset) - a) + # # train_data, valid_data = random_split(dataset, [a, b]) + # val_dataset = FeatureBagLoader(data_root, label_path=label_path, mode='val', cache=False, mixup=False, aug=False, n_classes=n_classes, model='None') + # valid_dl = DataLoader(val_dataset, batch_size=1) + # print('valid_dl: ', len(valid_dl)) - # device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # scaler = torch.cuda.amp.GradScaler() # model_ft = resnet50_baseline(pretrained=True) @@ -632,31 +390,20 @@ if __name__ == '__main__': # print(dataset.get_labels(np.arange(len(dataset)))) - c = 0 - label_count = [0] *n_classes - epochs = 1 - # print(len(dl)) - # start = time.time() - for i in range(epochs): - start = time.time() - for item in tqdm(valid_dl): - - # if c >= 10: - # break - bag, label, (name, batch_coords, patient) = item - print(bag.shape) - # print(bag.shape, label) - # print(len(batch_names)) - # print(label) - # print(batch_coords) - # print(name) - # bag = bag.float().to(device) - # print(bag.shape) - # label = label.to(device) - # with torch.cuda.amp.autocast(): - # output = model(bag) - # c += 1 - end = time.time() - print('Bag Time: ', end-start) + # c = 0 + # label_count = [0] *n_classes + # epochs = 1 + # # print(len(dl)) + # # start = time.time() + # for i in range(epochs): + # start = time.time() + # for item in tqdm(valid_dl): + # if c >= 50: + # break + # # print(item) + # bag, label, (name, patient) = item + # c += 1 + # end = time.time() + # print('Bag Time: ', end-start) \ No newline at end of file diff --git a/code/datasets/jpg_dataloader.py b/code/datasets/jpg_dataloader.py index c983d55..c45e8ce 100644 --- a/code/datasets/jpg_dataloader.py +++ b/code/datasets/jpg_dataloader.py @@ -1,5 +1,4 @@ # import pandas as pd - import numpy as np import torch from torch import Tensor @@ -19,10 +18,12 @@ import json from imgaug import augmenters as iaa from torchsampler import ImbalancedDatasetSampler from .utils import myTransforms - +import re +from monai.networks.nets import milmodel +import torch.nn as nn class JPGMILDataloader(data_utils.Dataset): - def __init__(self, file_path, label_path, mode, model, n_classes, data_cache_size=100, max_bag_size=1000, cache=False, mixup=False, aug=False): + def __init__(self, file_path, label_path, mode, n_classes, model=None, data_cache_size=100, max_bag_size=1000, cache=False, mixup=False, aug=False, patients=None, slides=None): super().__init__() self.data_info = [] @@ -41,31 +42,69 @@ class JPGMILDataloader(data_utils.Dataset): self.corrupt_slides = [] self.cache = False self.labels = [] + self.slides_to_process = [] # self.features = [] # self.labels = [] # self.wsi_names = [] # self.name_batches = [] # self.patients = [] + home = Path.cwd().parts[1] + + self.slide_patient_dict_path = f'/{home}/ylan/data/DeepGraft/training_tables/slide_patient_dict.json' + # self.slide_patient_dict_path = Path(self.label_path).parent / 'slide_patient_dict_an.json' + with open(self.slide_patient_dict_path, 'r') as f: + self.slide_patient_dict = json.load(f) + + # if patients: + # self.slides_to_process = [self.slide_patient_dict[p] for p in patients] + # elif slides: + # self.slides_to_process = slides + # else + # read labels and slide_path from csv with open(self.label_path, 'r') as f: json_dict = json.load(f) temp_slide_label_dict = json_dict[self.mode] + # print(len(temp_slide_label_dict)) + for (x,y) in temp_slide_label_dict: - x = x.replace('FEATURES_RETCCL_2048', 'BLOCKS') + if self.mode == 'test': + x = x.replace('FEATURES_RETCCL_2048', 'TEST') + else: + x = x.replace('FEATURES_RETCCL_2048', 'BLOCKS') # print(x) x_name = Path(x).stem - x_path_list = [Path(self.file_path)/x] - for x_path in x_path_list: - if x_path.exists(): - # print(len(list(x_path.glob('*')))) - self.slideLabelDict[x_name] = y - self.labels += [int(y)]*len(list(x_path.glob('*'))) - # self.labels.append(int(y)) - self.files.append(x_path) - + if x_name in self.slide_patient_dict.keys(): + if patients: + if self.slide_patient_dict[x_name] in patients: + x_path_list = [Path(self.file_path)/x] + for x_path in x_path_list: + if x_path.exists(): + # print(len(list(x_path.glob('*')))) + self.slideLabelDict[x_name] = y + self.labels += [int(y)]*len(list(x_path.glob('*'))) + # self.labels.append(int(y)) + self.files.append(x_path) + elif slides: + if x_name in slides: + x_path_list = [Path(self.file_path)/x] + for x_path in x_path_list: + if x_path.exists(): + self.slideLabelDict[x_name] = y + self.labels += [int(y)]*len(list(x_path.glob('*'))) + self.files.append(x_path) + else: + x_path_list = [Path(self.file_path)/x] + for x_path in x_path_list: + if x_path.exists(): + # print(len(list(x_path.glob('*')))) + self.slideLabelDict[x_name] = y + self.labels += [int(y)]*len(list(x_path.glob('*'))) + # self.labels.append(int(y)) + self.files.append(x_path) # with open(self.label_path, 'r') as f: # temp_slide_label_dict = json.load(f)[mode] # print(len(temp_slide_label_dict)) @@ -81,11 +120,7 @@ class JPGMILDataloader(data_utils.Dataset): # self.files.append(x_complete_path) # else: self.empty_slides.append(x_complete_path) - home = Path.cwd().parts[1] - # self.slide_patient_dict_path = f'/{home}/ylan/DeepGraft/training_tables/slide_patient_dict.json' - self.slide_patient_dict_path = Path(self.label_path).parent / 'slide_patient_dict_an.json' - with open(self.slide_patient_dict_path, 'r') as f: - self.slide_patient_dict = json.load(f) + # def get_transforms_2(): @@ -107,31 +142,6 @@ class JPGMILDataloader(data_utils.Dataset): myTransforms.RandomElastic(alpha=2, sigma=0.06), ]) - - - # sometimes = lambda aug: iaa.Sometimes(0.5, aug, name="Random1") - # sometimes2 = lambda aug: iaa.Sometimes(0.2, aug, name="Random2") - # sometimes3 = lambda aug: iaa.Sometimes(0.9, aug, name="Random3") - # sometimes4 = lambda aug: iaa.Sometimes(0.9, aug, name="Random4") - # sometimes5 = lambda aug: iaa.Sometimes(0.9, aug, name="Random5") - - # self.resize_transforms = iaa.Sequential([ - # myTransforms.Resize(size=(299,299)), - # ], name='resizeAug') - - # self.train_transforms = iaa.Sequential([ - # iaa.AddToHueAndSaturation(value=(-30, 30), name="MyHSV"), #13 - # sometimes2(iaa.GammaContrast(gamma=(0.85, 1.15), name="MyGamma")), - # iaa.Fliplr(0.5, name="MyFlipLR"), - # iaa.Flipud(0.5, name="MyFlipUD"), - # sometimes(iaa.Rot90(k=1, keep_size=True, name="MyRot90")), - # # iaa.OneOf([ - # # sometimes3(iaa.PiecewiseAffine(scale=(0.015, 0.02), cval=0, name="MyPiece")), - # # sometimes4(iaa.ElasticTransformation(alpha=(100, 200), sigma=20, cval=0, name="MyElastic")), - # # sometimes5(iaa.Affine(scale={"x": (0.95, 1.05), "y": (0.95, 1.05)}, rotate=(-45, 45), shear=(-4, 4), cval=0, name="MyAffine")) - # # ], name="MyOneOf") - - # ], name="MyAug") self.val_transforms = transforms.Compose([ # transforms.ToTensor(), @@ -139,7 +149,6 @@ class JPGMILDataloader(data_utils.Dataset): mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225], ), - # RangeNormalization(), ]) @@ -199,37 +208,15 @@ class JPGMILDataloader(data_utils.Dataset): # self.test_bags_list, self.test_labels_list = self._create_bags() def get_data(self, file_path): - - color_transforms = myTransforms.Compose([ - myTransforms.ColorJitter( - brightness = (0.65, 1.35), - contrast = (0.5, 1.5), - # saturation=(0, 2), - # hue=0.3, - ), - # myTransforms.RandomChoice([myTransforms.ColorJitter(saturation=(0, 2), hue=0.3), - # myTransforms.HEDJitter(theta=0.05)]), - myTransforms.HEDJitter(theta=0.005), - - ]) - train_transforms = myTransforms.Compose([ - myTransforms.RandomChoice([myTransforms.RandomHorizontalFlip(p=0.5), - myTransforms.RandomVerticalFlip(p=0.5), - myTransforms.AutoRandomRotation()]), - - myTransforms.RandomGaussBlur(radius=[0.5, 1.5]), - myTransforms.RandomAffineCV2(alpha=0.1), - myTransforms.RandomElastic(alpha=2, sigma=0.06), - ]) wsi_batch=[] - name_batch=[] + coords_batch=[] for tile_path in Path(file_path).iterdir(): img = Image.open(tile_path) if self.mode == 'train': - - img = self.color_transforms(img) + + # img = self.color_transforms(img) img = self.train_transforms(img) img = self.val_transforms(img) # img = np.asarray(Image.open(tile_path)).astype(np.uint8) @@ -237,52 +224,51 @@ class JPGMILDataloader(data_utils.Dataset): # print(img.shape) # img = torch.from_numpy(img) wsi_batch.append(img) - name_batch.append(tile_path.stem) + pos = re.findall(r'\((.*?)\)', tile_path.stem) + x, y = pos[-1].split('-') + coords = [int(x),int(y)] + + # name_batch.append(tile_path.stem) + coords_batch.append(coords) + + coords_batch = np.stack(coords_batch) + # print(coords_batch.shape) + coords_batch = torch.from_numpy(coords_batch) wsi_batch = torch.stack(wsi_batch) # if wsi_batch.size(0) > self.max_bag_size: wsi_name = Path(file_path).stem - try: - label = self.slideLabelDict[wsi_name] - except KeyError: - print(f'{wsi_name} is not included in label file {self.label_path}') + # try: + # label = self.slideLabelDict[wsi_name] + # except KeyError: + # print(f'{wsi_name} is not included in label file {self.label_path}') - try: - patient = self.slide_patient_dict[wsi_name] - except KeyError: - print(f'{wsi_name} is not included in label file {self.slide_patient_dict_path}') + # try: + patient = self.slide_patient_dict[wsi_name] + # except KeyError: + # print(f'{wsi_name} is not included in label file {self.slide_patient_dict_path}') - return wsi_batch, label, (wsi_name, name_batch, patient) + return wsi_batch, (wsi_name, coords_batch, patient) def get_labels(self, indices): return [self.labels[i] for i in indices] - def to_fixed_size_bag(self, bag, bag_size: int = 512): + def to_fixed_size_bag(self, bag, names, bag_size: int = 512): #duplicate bag instances unitl bag_idxs = torch.randperm(bag.shape[0])[:bag_size] bag_samples = bag[bag_idxs] - # name_samples = [names[i] for i in bag_idxs] - - # bag_sample_names = [bag_names[i] for i in bag_idxs] - # q, r = divmod(bag_size, bag_samples.shape[0]) - # if q > 0: - # bag_samples = torch.cat([bag_samples]*q, 0) - - # self_padded = torch.cat([bag_samples, bag_samples[:r,:, :, :]]) - - # zero-pad if we don't have enough samples + name_samples = [names[i] for i in bag_idxs] zero_padded = torch.cat((bag_samples, torch.zeros(bag_size-bag_samples.shape[0], bag_samples.shape[1], bag_samples.shape[2], bag_samples.shape[3]))) - - return zero_padded, min(bag_size, len(bag)) + return zero_padded, name_samples, min(bag_size, len(bag)) def data_dropout(self, bag, drop_rate): bag_size = bag.shape[0] @@ -297,71 +283,73 @@ class JPGMILDataloader(data_utils.Dataset): def __getitem__(self, index): - if self.cache: + # if self.cache: + # label = self.labels[index] + # wsi = self.features[index] + # label = int(label) + # wsi_name = self.wsi_names[index] + # name_batch = self.name_batches[index] + # patient = self.patients[index] + # return wsi, label, (wsi_name, name_batch, patient) + # else: + t = self.files[index] + # label = self.labels[index] + if self.mode=='train': + + batch, (wsi_name, batch_coords, patient) = self.get_data(t) label = self.labels[index] - wsi = self.features[index] - label = int(label) - wsi_name = self.wsi_names[index] - name_batch = self.name_batches[index] - patient = self.patients[index] - # feats = Variable(Tensor(feats)) - return wsi, label, (wsi_name, name_batch, patient) - else: - t = self.files[index] - # label = self.labels[index] - if self.mode=='train': - - batch, label, (wsi_name, name_batch, patient) = self.get_data(t) - batch, _ = self.to_fixed_size_bag(batch, self.max_bag_size) - batch = self.data_dropout(batch, drop_rate=0.1) - # print(batch.shape) - # # label = Variable(Tensor(label)) - - # # wsi = Variable(Tensor(wsi_batch)) - # out_batch = [] - - # # seq_img_d = self.train_transforms.to_deterministic() - # # seq_img_resize = self.resize_transforms.to_deterministic() - # for img in batch: - # # img = img.numpy().astype(np.uint8) - # # print(img.shape) - # img = self.resize_transforms(img) - # # print(img) - # # print(img.shape) - # # img = torch.moveaxis(img, 0, 2) # with HEDJitter wants [W,H,3], ColorJitter wants [3,W,H] - # # print(img.shape) - # img = self.color_transforms(img) - # print(img.shape) - # img = self.train_transforms(img) - - # # img = seq_img_d.augment_image(img) - # img = self.val_transforms(img.copy()) - # out_batch.append(img) - # out_batch = torch.stack(out_batch) - out_batch = batch + out_batch, batch_coords, _ = self.to_fixed_size_bag(batch, batch_coords, self.max_bag_size) + + # print('_getitem_: ', out_batch.shape) + # bag_idxs = + # batch = self.data_dropout(batch, drop_rate=0.1) + # print(batch.shape) + # # label = Variable(Tensor(label)) + + # # wsi = Variable(Tensor(wsi_batch)) + # out_batch = [] + + # # seq_img_d = self.train_transforms.to_deterministic() + # # seq_img_resize = self.resize_transforms.to_deterministic() + # for img in batch: + # # img = img.numpy().astype(np.uint8) + # # print(img.shape) + # img = self.resize_transforms(img) + # # print(img) + # # print(img.shape) + # # img = torch.moveaxis(img, 0, 2) # with HEDJitter wants [W,H,3], ColorJitter wants [3,W,H] + # # print(img.shape) + # img = self.color_transforms(img) + # print(img.shape) + # img = self.train_transforms(img) - # ft = ft.view(-1, 512) - - else: - batch, label, (wsi_name, name_batch, patient) = self.get_data(t) - batch, _ = self.to_fixed_size_bag(batch, self.max_bag_size) - # label = Variable(Tensor(label)) - # out_batch = [] - # # seq_img_d = self.train_transforms.to_deterministic() - # # seq_img_resize = self.resize_transforms.to_deterministic() - # for img in batch: - # # img = img.numpy().astype(np.uint8) - # # img = seq_img_resize(images=img) - # img = self.resize_transforms(img) - # img = np.moveaxis(img, 0, 2) - # # img = img.numpy().astype(np.uint8) - # # print(img.shape) - # img = self.val_transforms(img) - # out_batch.append(img) - # out_batch = torch.stack(out_batch) - out_batch = batch - - return out_batch, label, (wsi_name , patient) + # # img = seq_img_d.augment_image(img) + # img = self.val_transforms(img.copy()) + # out_batch.append(img) + # out_batch = torch.stack(out_batch) + + # ft = ft.view(-1, 512) + + else: + batch, (wsi_name, batch_coords, patient) = self.get_data(t) + label = self.labels[index] + out_batch = batch + + # return out_batch, label, (wsi_name, patient) + return out_batch, label, (wsi_name, batch_coords, patient) + +class View(nn.Module): + def __init__(self, shape): + super().__init__() + self.shape = shape + + def forward(self, input): + ''' + Reshapes the input according to the shape saved in the view data structure. + ''' + out = input.view(*self.shape) + return out + if __name__ == '__main__': @@ -379,13 +367,13 @@ if __name__ == '__main__': # data_root = f'/{home}/ylan/DeepGraft/dataset/hdf5/256_256um_split/' # label_path = f'/{home}/ylan/DeepGraft_project/code/split_PAS_bin.json' # label_path = f'/{home}/ylan/DeepGraft/training_tables/split_debug.json' - label_path = f'/{home}/ylan/DeepGraft/training_tables/dg_limit_5_split_PAS_HE_Jones_norm_rest_test.json' + label_path = f'/{home}/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest_val_1.json' # output_dir = f'/{data_root}/debug/augments' # os.makedirs(output_dir, exist_ok=True) n_classes = 2 - dataset = JPGBagLoader(data_root, label_path=label_path, mode='train', n_classes=n_classes, cache=False) + dataset = JPGMILDataloader(data_root, label_path=label_path, mode='train', n_classes=n_classes, cache=False) # dataset = JPGBagLoader(data_root, label_path=label_path, mode='train', n_classes=n_classes, cache=False) # print(dataset.get_labels(0)) @@ -397,38 +385,56 @@ if __name__ == '__main__': # b = int(len(dataset) - a) # train_ds, val_ds = torch.utils.data.random_split(dataset, [a, b]) # dl = FastTensorDataLoader(dataset, batch_size=1, shuffle=False) - dl = DataLoader(dataset, batch_size=2, num_workers=8, pin_memory=True) + dl = DataLoader(dataset, batch_size=1, num_workers=4, pin_memory=True) # print(len(dl)) # dl = DataLoader(dataset, batch_size=1, sampler=ImbalancedDatasetSampler(dataset), num_workers=5) device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") scaler = torch.cuda.amp.GradScaler() - model_ft = resnet50_baseline(pretrained=True) - for param in model_ft.parameters(): - param.requires_grad = False + # model_ft = resnet50_baseline(pretrained=True) + # for param in model_ft.parameters(): + # param.requires_grad = False + # model_ft.to(device) + model_ft = nn.Sequential( + nn.Conv2d(3, 20, kernel_size=5), + nn.ReLU(), + nn.MaxPool2d(2, stride=2), + nn.Conv2d(20, 50, kernel_size=5), + nn.ReLU(), + nn.MaxPool2d(2, stride=2), + View((-1, 53*53*50)), + nn.Linear(53*53*50, 1024), + nn.ReLU(), + ) model_ft.to(device) + + # model = milmodel.MILModel(num_classes=2, pretrained=True, mil_mode='att_trans').to(device) - c = 0 - label_count = [0] *n_classes - # print(len(dl)) + # c = 0 + # label_count = [0] *n_classes + # # print(len(dl)) start = time.time() for item in tqdm(dl): # if c >= 10: # break + bag, label, (name, batch_names, patient) = item - print(bag.shape) + bag = bag.to(device) + # print(bag.shape) # print(name) # print(batch_names) # print(patient) # print(len(batch_names)) - print(label.shape) + # print(label.shape) # bag = bag.squeeze(0).float().to(device) # label = label.to(device) - # with torch.cuda.amp.autocast(): - # output = model_ft(bag) - c += 1 + with torch.cuda.amp.autocast(): + output = model_ft(bag.squeeze()) + # output = model_ft(bag) + print(output.shape) + # c += 1 end = time.time() print('Bag Time: ', end-start) \ No newline at end of file diff --git a/code/datasets/utils/__init__.py b/code/datasets/utils/__init__.py index e69de29..bf06077 100644 --- a/code/datasets/utils/__init__.py +++ b/code/datasets/utils/__init__.py @@ -0,0 +1 @@ +from .myTransforms import * \ No newline at end of file diff --git a/code/datasets/utils/__pycache__/__init__.cpython-39.pyc b/code/datasets/utils/__pycache__/__init__.cpython-39.pyc index 19391f5fd1eeca742d1e73b5108a9cf52b2c4e60..22c1051eeebd1ed15f170e036766a0d098e325fb 100644 GIT binary patch delta 104 zcmZ3)xSug0k(ZZ?fq{Wx$DOaq(hLj?k3k${%*4RJ;K0DZP|U-?z>va_!kEJl!jQrg v%%I8ql97RdL6h+oqn4j0<1L=t%8;VOyyCR{qTJ$@3`Hyq3=Bmq6P@D$zLFHS delta 75 zcmdnbxQNj?k(ZZ?fq{YH=z*=tAo?+gK*o#=3=9qo3=G9A3=9k@48aVVjD9N_ia^3p IVq!u(0JixG<p2Nx diff --git a/code/datasets/utils/merge_hdf5.py b/code/datasets/utils/merge_hdf5.py new file mode 100644 index 0000000..d6f0d8a --- /dev/null +++ b/code/datasets/utils/merge_hdf5.py @@ -0,0 +1,90 @@ +from pathlib import Path +import os +import torch +import h5py +import numpy as np +from tqdm import tqdm + +''' +Merge HDF5 files for different uM resolutions. +Used for mixed resolution MIL training. +''' + + +def Save_hdf5(output_dir, asset_dict, mode='a'): + + file = h5py.File(output_dir, mode) + + for key, val in asset_dict.items(): + data_shape = val.shape + + if key not in file: + data_type = val.dtype + chunk_shape = (1, ) + data_shape[1:] + maxshape = (None, ) + data_shape[1:] + dset = file.create_dataset(key, shape = data_shape, maxshape = maxshape, chunks = chunk_shape, dtype = data_type) + dset[:] = val + else: + dset = file[key] + dset.resize(len(dset) + data_shape[0], axis = 0) + dset[-data_shape[0]:] = val + + file.close() + return output_dir + +home = Path.cwd().parts[1] +# data_root = Path(f'/{home}/ylan/data/DeepGraft/224_256uM_annotated') +res1 = 256 +res2 = 1024 + + +cohorts = ['DEEPGRAFT_RU', 'DEEPGRAFT_RA'] +cohorts = ['DEEPGRAFT_RA'] +res1_root = Path(f'/{home}/ylan/data/DeepGraft/224_{res1}uM_annotated') +res2_root = Path(f'/{home}/ylan/data/DeepGraft/224_{res2}uM_annotated') +out_path = Path(f'/{home}/ylan/data/DeepGraft/224_{res1}_{res2}_mixed_annotated') +# cohorts = ['debug'] + +for c in cohorts: + + res1_files = [i for i in (res1_root/c/'FEATURES_RETCCL_2048_HED').iterdir() if i.suffix != '.pt'] + c_out_path = out_path / c + c_out_path.mkdir(parents=True, exist_ok=True) + # print(len(pt_files)) + + for r1 in tqdm(res1_files): + + file_name = r1.stem + # print(file_name) + r2 = res2_root / c / 'FEATURES_RETCCL_2048_HED' / f'{file_name}-1024' + merged_out = c_out_path / file_name + + with h5py.File(r1, 'r') as hdf5_file: + r1_np_bag = hdf5_file['features'][:] + r1_coords = hdf5_file['coords'][:] + with h5py.File(r2, 'r') as hdf5_file: + r2_np_bag = hdf5_file['features'][:] + r2_coords = hdf5_file['coords'][:] + + # print(r1_np_bag.shape) + # print(r1_coords.shape) + # print(r2_np_bag.shape) + # print(r2_coords.shape) + + # print(np.concatenate((r1_np_bag, r2_np_bag), axis=0)) + merged_np_bag = np.concatenate((r1_np_bag, r2_np_bag), axis=0) + merged_coords = np.concatenate((r1_coords, r2_coords), axis=0) + # hdf5_path = pt.with_suffix('') + if not merged_out.exists(): + # coord_hdf5_path = Path('_'.join(str(hdf5_path).split('_')[:-1])) + # with h5py.File(coord_hdf5_path, 'r') as hdf5_file: + # # np_bag = hdf5_file['features'][:] + # coords = hdf5_file['coords'][:] + # torch_bag = torch.load(pt) + + asset_dict = {'features': merged_np_bag, 'coords': merged_coords} + Save_hdf5(merged_out, asset_dict, mode='w') + + with h5py.File(merged_out, 'r') as hdf5_file: + np_bag = hdf5_file['features'][:] + coords = hdf5_file['coords'][:] diff --git a/code/datasets/utils/move_to_hdf5.py b/code/datasets/utils/move_to_hdf5.py new file mode 100644 index 0000000..0571ea1 --- /dev/null +++ b/code/datasets/utils/move_to_hdf5.py @@ -0,0 +1,54 @@ +from pathlib import Path +import os +import torch +import h5py +import numpy as np +from tqdm import tqdm + +def Save_hdf5(output_dir, asset_dict, mode='a'): + + file = h5py.File(output_dir, mode) + + for key, val in asset_dict.items(): + data_shape = val.shape + + if key not in file: + data_type = val.dtype + chunk_shape = (1, ) + data_shape[1:] + maxshape = (None, ) + data_shape[1:] + dset = file.create_dataset(key, shape = data_shape, maxshape = maxshape, chunks = chunk_shape, dtype = data_type) + dset[:] = val + else: + dset = file[key] + dset.resize(len(dset) + data_shape[0], axis = 0) + dset[-data_shape[0]:] = val + + file.close() + return output_dir + +home = Path.cwd().parts[1] +data_root = Path(f'/{home}/ylan/data/DeepGraft/224_256uM_annotated') + +cohorts = ['DEEPGRAFT_RU', 'DEEPGRAFT_RA'] +# cohorts = ['debug'] + +for c in cohorts: + pt_files = [i for i in (data_root/c/'FEATURES_RETCCL_2048_HED').iterdir() if i.suffix == '.pt' and 'aug' in str(i)] + # print(len(pt_files)) + + for pt in tqdm(pt_files): + + hdf5_path = pt.with_suffix('') + if not hdf5_path.exists(): + coord_hdf5_path = Path('_'.join(str(hdf5_path).split('_')[:-1])) + with h5py.File(coord_hdf5_path, 'r') as hdf5_file: + # np_bag = hdf5_file['features'][:] + coords = hdf5_file['coords'][:] + torch_bag = torch.load(pt) + + asset_dict = {'features': torch_bag.numpy(), 'coords': coords} + Save_hdf5(hdf5_path, asset_dict, mode='w') + + with h5py.File(hdf5_path, 'r') as hdf5_file: + np_bag = hdf5_file['features'][:] + coords = hdf5_file['coords'][:] diff --git a/code/fine_tune.py b/code/fine_tune.py new file mode 100644 index 0000000..651dba7 --- /dev/null +++ b/code/fine_tune.py @@ -0,0 +1,370 @@ +import argparse +from pathlib import Path +import numpy as np +import glob + +from sklearn.model_selection import KFold + +from datasets.data_interface import MILDataModule, CrossVal_MILDataModule +# from datasets.data_interface import DataInterface, MILDataModule, CrossVal_MILDataModule +from models.model_interface import ModelInterface +from models.model_interface_classic import ModelInterface_Classic +# from models.model_interface_dtfd import ModelInterface_DTFD +import models.vision_transformer as vits +from utils.utils import * + +# pytorch_lightning +import pytorch_lightning as pl +from pytorch_lightning import Trainer +from pytorch_lightning.strategies import DDPStrategy +import torch +from train_loop import KFoldLoop +from pytorch_lightning.plugins.training_type import DDPPlugin +from datasets import FeatureBagLoader +import pprint + + +try: + import apex + from apex.parallel import DistributedDataParallel + print('Apex available.') +except ModuleNotFoundError: + # Error handling + pass + +def unwrap_lightning_module(wrapped_model): + from apex.parallel import DistributedDataParallel + from pytorch_lightning.overrides.base import ( + _LightningModuleWrapperBase, + _LightningPrecisionModuleWrapperBase, + ) + + model = wrapped_model + if isinstance(model, DistributedDataParallel): + model = unwrap_lightning_module(model.module) + if isinstance( + model, (_LightningModuleWrapperBase, _LightningPrecisionModuleWrapperBase) + ): + model = unwrap_lightning_module(model.module) + return model + + +class ApexDDPPlugin(DDPPlugin): + def _setup_model(self, model): + from apex.parallel import DistributedDataParallel + + return DistributedDataParallel(model, delay_allreduce=False) + + @property + def lightning_module(self): + return unwrap_lightning_module(self._model) + + + +#--->Setting parameters +def make_parse(): + parser = argparse.ArgumentParser() + parser.add_argument('--stage', default='train', type=str) + parser.add_argument('--config', default='DeepGraft/TransMIL.yaml',type=str) + parser.add_argument('--version', default=2,type=int) + parser.add_argument('--epoch', default='0',type=str) + + parser.add_argument('--gpus', nargs='+', default = [0], type=int) + parser.add_argument('--loss', default = 'CrossEntropyLoss', type=str) + parser.add_argument('--fold', default = 0) + parser.add_argument('--bag_size', default = 1024, type=int) + # parser.add_argument('--batch_size', default = 1, type=int) + parser.add_argument('--resume_training', action='store_true') + parser.add_argument('--label_file', type=str) + parser.add_argument('--fine_tune', action='store_true') + + + args = parser.parse_args() + return args + +#---->main +def main(cfg): + + torch.set_num_threads(8) + torch.set_float32_matmul_precision('high') + + #---->Initialize seed + pl.seed_everything(cfg.General.seed) + + #---->load loggers + cfg.load_loggers = load_loggers(cfg) + # print(cfg.load_loggers) + save_path = Path(cfg.load_loggers[0].log_dir) + + #---->load callbacks + cfg.callbacks = load_callbacks(cfg, save_path) + + #---->Define Data + # DataInterface_dict = {'train_batch_size': cfg.Data.train_dataloader.batch_size, + # 'train_num_workers': cfg.Data.train_dataloader.num_workers, + # 'test_batch_size': cfg.Data.test_dataloader.batch_size, + # 'test_num_workers': cfg.Data.test_dataloader.num_workers, + # 'dataset_name': cfg.Data.dataset_name, + # 'dataset_cfg': cfg.Data,} + # dm = DataInterface(**DataInterface_dict) + home = Path.cwd().parts[1] + + train_classic = False + if cfg.Model.name in ['inception', 'resnet18', 'resnet50', 'vit', 'efficientnet']: + train_classic = True + use_features = False + + if cfg.Model.backbone == 'features': + use_features = True + # elif cfg.Model.backbone == 'simple': + # use_features = False + else: use_features = False + + + + DataInterface_dict = { + 'data_root': cfg.Data.data_dir, + 'label_path': cfg.Data.label_file, + 'batch_size': cfg.Data.train_dataloader.batch_size, + 'num_workers': cfg.Data.train_dataloader.num_workers, + 'n_classes': cfg.Model.n_classes, + 'bag_size': cfg.Data.bag_size, + 'use_features': use_features, + 'mixup': cfg.Data.mixup, + 'aug': cfg.Data.aug, + 'cache': cfg.Data.cache, + 'train_classic': train_classic, + 'model_name': cfg.Model.name, + 'fine_tune': cfg.fine_tune, + } + + # if cfg.Data.cross_val: + # dm = CrossVal_MILDataModule(**DataInterface_dict) + dm = MILDataModule(**DataInterface_dict) + + #---->Define Model + + ModelInterface_dict = {'model': cfg.Model, + 'loss': cfg.Loss, + 'optimizer': cfg.Optimizer, + 'data': cfg.Data, + 'log': cfg.log_path, + 'backbone': cfg.Model.backbone, + 'task': cfg.task, + 'in_features': cfg.Model.in_features, + 'out_features': cfg.Model.out_features, + } + + if train_classic: + model = ModelInterface_Classic(**ModelInterface_dict) + # elif cfg.Model.name == 'DTFDMIL': + # model = ModelInterface_DTFD(**ModelInterface_dict) + else: + model = ModelInterface(**ModelInterface_dict) + + #---->Instantiate Trainer + # plugins = [] + # if apex: + # plugins.append(ApexDDPPlugin()) + + if len(cfg.General.gpus) > 1: + trainer = Trainer( + logger=cfg.load_loggers, + callbacks=cfg.callbacks, + max_epochs= cfg.General.epochs, + min_epochs = 500, + accelerator='gpu', + # plugins=plugins, + devices=cfg.General.gpus, + strategy=DDPStrategy(find_unused_parameters=False), + replace_sampler_ddp=False, + amp_backend='native', + precision=cfg.General.precision, + # accumulate_grad_batches=cfg.General.grad_acc, + gradient_clip_val=0.0, + # fast_dev_run = True, + # limit_train_batches=1, + + # deterministic=True, + check_val_every_n_epoch=1, + ) + else: + trainer = Trainer( + # default_root_dir=cfg.log_path / f'test_epoch_{cfg.epoch}' / 'checkpoint', + num_sanity_val_steps=-1, + logger=cfg.load_loggers, + callbacks=cfg.callbacks, + max_epochs= 20, + # min_epochs = 10, + + # gpus=cfg.General.gpus, + accelerator='gpu', + devices=cfg.General.gpus, + # amp_backend='native', + # amp_level=cfg.General.amp_level, + precision=cfg.General.precision, + accumulate_grad_batches=cfg.General.grad_acc, + gradient_clip_val=0.0, + log_every_n_steps=10, + # fast_dev_run = True, + # limit_train_batches=1, + + # deterministic=True, + # num_sanity_val_steps=0, + check_val_every_n_epoch=1, + ) + # print(cfg.log_path) + # print(trainer.loggers[0].log_dir) + # print(trainer.loggers[1].log_dir) + #----> Copy Code + + # home = Path.cwd()[0] + data_root = cfg.Data.data_dir, + label_path = cfg.Data.label_file, + batch_size = cfg.Data.train_dataloader.batch_size, + n_classes = cfg.Model.n_classes, + # 'bag_size': cfg.Data.bag_size, + # 'use_features': use_features, + mixup = cfg.Data.mixup, + aug = cfg.Data.aug, + cache = cfg.Data.cache, + # 'train_classic': train_classic, + model_name = cfg.Model.name, + # 'fine_tune': True, + + if cfg.General.server == 'train': + # data_root = + # train_data = FeatureBagLoader(data_root, label_path=label_path[0], mode='fine_tune', n_classes=n_classes, cache=cache, mixup=mixup, aug=aug, model=model_name) + # test_data = FeatureBagLoader(data_root, label_path=label_path[0], mode='test', n_classes=n_classes, cache=False, model=model_name, mixup=False, aug=False) + # ckpt = 'test/fine_tune/DeepGraft/TransMIL/norm_rest/epoch=10-val_loss=0.5929-val_auc=0.8765-val_patient_auc= 0.8953.ckpt' + # last_ckpt = Path(cfg.log_path) / 'lightning_logs' / f'version_{cfg.version}' / 'checkpoints'/ 'last.ckpt' + # trainer.fit(model = model, ckpt_path=ckpt) #, datamodule = dm + + + ckptdir_path = Path(cfg.log_path) / 'lightning_logs' / f'version_{cfg.version}'/'checkpoints' + + model_paths = list(ckptdir_path.glob('*.ckpt')) + + if cfg.epoch == 'last': + model_paths = [str(model_path) for model_path in model_paths if f'last' in str(model_path)] + elif int(cfg.epoch) < 10: + cfg.epoch = f'0{cfg.epoch}' + + else: + model_paths = [str(model_path) for model_path in model_paths if f'epoch={cfg.epoch}' in str(model_path)] + # model_paths = [f'{log_path}/epoch=279-val_loss=0.4009.ckpt'] + # print(model_paths) + + # for path in model_paths: + path = model_paths[0] + # print(path) + # print(path) + # train_dl = DataLoader(train_data, batch_size = batch_size, num_workers=8) + + model = model.load_from_checkpoint(checkpoint_path=path, cfg=cfg) + trainer.fit(model=model, datamodule=dm) + + ft_ckptdir_path = cfg.log_path / 'lightning_logs' / f'version_{cfg.version}'/ f'ft_epoch_{cfg.epoch}'/ 'checkpoints' + ft_model_paths = list(ft_ckptdir_path.glob('*.ckpt')) + ft_model_paths = [str(model_path) for model_path in ft_model_paths] # if 'last' in str(model_path) + # print(ft_model_paths) + for path in ft_model_paths: + print(path) + checkpoint = torch.load(path) + model_weights = checkpoint['state_dict'] + model.load_state_dict(model_weights) + + trainer.validate(model=model, datamodule=dm) + trainer.test(model=model, datamodule=dm) + # print(cfg.Model) + # ft_model = ModelInterface(**ModelInterface_dict) + # ft_model = model.load_from_checkpoint(checkpoint_path=path, cfg=cfg) + # trainer.val(model=ft_model, datamodule=dm) + # path = '/home/ylan/workspace/TransMIL-DeepGraft/logs/DeepGraft/TransMIL/norm_rest/_features_CrossEntropyLoss/lightning_logs/version_745/ft_epoch_27/checkpoints/last.ckpt' + # path = '/home/ylan/workspace/TransMIL-DeepGraft/logs/DeepGraft/TransMIL/norm_rest/_features_CrossEntropyLoss/lightning_logs/version_745/checkpoints/last.ckpt' + # path = '/home/ylan/workspace/TransMIL-DeepGraft/logs/DeepGraft/TransMIL/norm_rest/_features_CrossEntropyLoss/lightning_logs/version_745/ft_epoch_27/checkpoints/last.ckpt' + + # pprint.pprint(load_dict) + # print(model) + # for k in load_dict.keys(): + # print(k) + # p + # print(load_dict[k].keys()) + # model.load_state_dict(torch.load(path)) + # model = model.load_from_checkpoint(checkpoint_path=path, cfg=cfg) + + + # for key in list(model_weights): + # model_weights[key.replace('model.', '')] = model_weights.pop(key) + + + # if cfg.General.server == 'val': + # trainer.validate(model=model, datamodule=dm) + # elif cfg.General.server == 'test': + # trainer.test(model=model, datamodule=dm) + + +def check_home(cfg): + # replace home directory + + home = Path.cwd().parts[1] + + x = cfg.General.log_path + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.General.log_path = '/' + str(new_path) + + x = cfg.Data.data_dir + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.data_dir = '/' + str(new_path) + + x = cfg.Data.label_file + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.label_file = '/' + str(new_path) + + return cfg + + +if __name__ == '__main__': + + args = make_parse() + + cfg = read_yaml(args.config) + + #---->update + cfg.config = args.config + cfg.General.gpus = args.gpus + cfg.General.server = args.stage + cfg.Data.fold = args.fold + cfg.Loss.base_loss = args.loss + cfg.Data.bag_size = args.bag_size + cfg.version = args.version + cfg.fine_tune = args.fine_tune + if args.label_file: + cfg.Data.label_file = '/home/ylan/DeepGraft/training_tables/' + args.label_file + + cfg = check_home(cfg) + + config_path = '/'.join(Path(cfg.config).parts[1:]) + log_path = Path(cfg.General.log_path) / str(Path(config_path).parent) + # print(log_path) + Path(cfg.General.log_path).mkdir(exist_ok=True, parents=True) + log_name = f'_{cfg.Model.backbone}' + f'_{cfg.Loss.base_loss}' + task = '_'.join(Path(cfg.config).name[:-5].split('_')[2:]) + cfg.task = task + # task = Path(cfg.config).name[:-5].split('_')[2:][0] + cfg.log_path = log_path / f'{cfg.Model.name}' / task / log_name + cfg.log_name = log_name + + cfg.epoch = args.epoch + + print(cfg) + # ---->main + + + + + main(cfg) + \ No newline at end of file diff --git a/code/models/AttMIL.py b/code/models/AttMIL.py index 89ff5d5..06ef4aa 100644 --- a/code/models/AttMIL.py +++ b/code/models/AttMIL.py @@ -8,18 +8,29 @@ import torch.nn as nn import torch.nn.functional as F import torchvision.models as models -import pytorch_lightning as pl -from pl_bolts.optimizers.lr_scheduler import LinearWarmupCosineAnnealingLR +try: + import apex + apex_available=True +except ModuleNotFoundError: + # Error handling + apex_available = False + pass class AttMIL(nn.Module): #gated attention - def __init__(self, n_classes, features=1024): + def __init__(self, n_classes, in_features=2048, out_features=512): super(AttMIL, self).__init__() - self.L = features + self.L = out_features self.D = 128 self.K = 1 self.n_classes = n_classes + if apex_available: + norm_layer = apex.normalization.FusedLayerNorm + else: + norm_layer = nn.LayerNorm + + # resnet50 = models.resnet50(pretrained=True) # modules = list(resnet50.children())[:-3] @@ -42,11 +53,21 @@ class AttMIL(nn.Module): #gated attention # # nn.Linear(50 * 4 * 4, self.L), # # nn.ReLU(), # ) + if in_features == 2048: + self._fc1 = nn.Sequential( + nn.Linear(in_features, int(in_features/2)), nn.GELU(), nn.Dropout(p=0.6), norm_layer(int(in_features/2)), + nn.Linear(int(in_features/2), out_features), nn.GELU(), + ) + elif in_features == 1024: + self._fc1 = nn.Sequential( + # nn.Linear(in_features, int(in_features/2)), nn.GELU(), nn.Dropout(p=0.2), norm_layer(out_features), + nn.Linear(in_features, out_features), nn.GELU(), nn.Dropout(p=0.6), norm_layer(out_features) + ) - # self.feature_extractor_part2 = nn.Sequential( - # nn.Linear(50 * 4 * 4, self.L), - # nn.ReLU(), - # ) + self.feature_extractor_part2 = nn.Sequential( + nn.Linear(in_features, self.L), + nn.ReLU(), + ) self.attention_V = nn.Sequential( nn.Linear(self.L, self.D), @@ -66,15 +87,25 @@ class AttMIL(nn.Module): #gated attention def forward(self, x): # H = kwargs['data'].float().squeeze(0) - H = x.float().squeeze(0) + # H = x.float().squeeze(0).squeeze(0) + # H = x.float().squeeze() + # print(H.shape) + # H = self.feature_extractor_part2(H) + # print(H.shape) + # print(x.shape) + x = x.squeeze() + H = self._fc1(x) A_V = self.attention_V(H) # NxD A_U = self.attention_U(H) # NxD A = self.attention_weights(A_V * A_U) # element wise multiplication # NxK - out_A = A + # out_A = A + if len(A.shape) < 2: + A = A.unsqueeze(0) + # print(A.shape) A = torch.transpose(A, 1, 0) # KxN A = F.softmax(A, dim=1) # softmax over N M = torch.mm(A, H) # KxL logits = self.classifier(M) - return logits, A + return logits diff --git a/code/models/MonaiMILModel.py b/code/models/MonaiMILModel.py new file mode 100644 index 0000000..27a9218 --- /dev/null +++ b/code/models/MonaiMILModel.py @@ -0,0 +1,233 @@ +from typing import Dict, Optional, Union, cast + +import torch +import torch.nn as nn + +from monai.utils.module import optional_import + +models, _ = optional_import("torchvision.models") + + +class MonaiMILModel(nn.Module): + """ + Multiple Instance Learning (MIL) model, with a backbone classification model. + Currently, it only works for 2D images, a typical use case is for classification of the + digital pathology whole slide images. The expected shape of input data is `[B, N, C, H, W]`, + where `B` is the batch_size of PyTorch Dataloader and `N` is the number of instances + extracted from every original image in the batch. A tutorial example is available at: + https://github.com/Project-MONAI/tutorials/tree/master/pathology/multiple_instance_learning. + + Args: + num_classes: number of output classes. + mil_mode: MIL algorithm, available values (Defaults to ``"att"``): + + - ``"mean"`` - average features from all instances, equivalent to pure CNN (non MIL). + - ``"max"`` - retain only the instance with the max probability for loss calculation. + - ``"att"`` - attention based MIL https://arxiv.org/abs/1802.04712. + - ``"att_trans"`` - transformer MIL https://arxiv.org/abs/2111.01556. + - ``"att_trans_pyramid"`` - transformer pyramid MIL https://arxiv.org/abs/2111.01556. + + pretrained: init backbone with pretrained weights, defaults to ``True``. + backbone: Backbone classifier CNN (either ``None``, a ``nn.Module`` that returns features, + or a string name of a torchvision model). + Defaults to ``None``, in which case ResNet50 is used. + backbone_num_features: Number of output features of the backbone CNN + Defaults to ``None`` (necessary only when using a custom backbone) + trans_blocks: number of the blocks in `TransformEncoder` layer. + trans_dropout: dropout rate in `TransformEncoder` layer. + + """ + + def __init__( + self, + num_classes: int, + mil_mode: str = "att", + pretrained: bool = True, + backbone: Optional[Union[str, nn.Module]] = None, + backbone_num_features: Optional[int] = None, + trans_blocks: int = 4, + trans_dropout: float = 0.0, + ) -> None: + + super().__init__() + + if num_classes <= 0: + raise ValueError("Number of classes must be positive: " + str(num_classes)) + + if mil_mode.lower() not in ["mean", "max", "att", "att_trans", "att_trans_pyramid"]: + raise ValueError("Unsupported mil_mode: " + str(mil_mode)) + + self.mil_mode = mil_mode.lower() + self.attention = nn.Sequential() + self.transformer = None # type: Optional[nn.Module] + + if backbone is None: + + net = models.resnet50(pretrained=pretrained) + nfc = net.fc.in_features # save the number of final features + net.fc = torch.nn.Identity() # remove final linear layer + + self.extra_outputs: Dict[str, torch.Tensor] = {} + + if mil_mode == "att_trans_pyramid": + # register hooks to capture outputs of intermediate layers + def forward_hook(layer_name): + def hook(module, input, output): + self.extra_outputs[layer_name] = output + + return hook + + net.layer1.register_forward_hook(forward_hook("layer1")) + net.layer2.register_forward_hook(forward_hook("layer2")) + net.layer3.register_forward_hook(forward_hook("layer3")) + net.layer4.register_forward_hook(forward_hook("layer4")) + + elif isinstance(backbone, str): + + # assume torchvision model string is provided + torch_model = getattr(models, backbone, None) + if torch_model is None: + raise ValueError("Unknown torch vision model" + str(backbone)) + net = torch_model(pretrained=pretrained) + + if getattr(net, "fc", None) is not None: + nfc = net.fc.in_features # save the number of final features + net.fc = torch.nn.Identity() # remove final linear layer + else: + raise ValueError( + "Unable to detect FC layer for the torchvision model " + str(backbone), + ". Please initialize the backbone model manually.", + ) + + elif isinstance(backbone, nn.Module): + # use a custom backbone + net = backbone + nfc = backbone_num_features + + if backbone_num_features is None: + raise ValueError("Number of endencoder features must be provided for a custom backbone model") + + else: + raise ValueError("Unsupported backbone") + + if backbone is not None and mil_mode not in ["mean", "max", "att", "att_trans"]: + raise ValueError("Custom backbone is not supported for the mode:" + str(mil_mode)) + + if self.mil_mode in ["mean", "max"]: + pass + elif self.mil_mode == "att": + self.attention = nn.Sequential(nn.Linear(nfc, 2048), nn.Tanh(), nn.Linear(2048, 1)) + + elif self.mil_mode == "att_trans": + transformer = nn.TransformerEncoderLayer(d_model=nfc, nhead=8, dropout=trans_dropout) + self.transformer = nn.TransformerEncoder(transformer, num_layers=trans_blocks) + self.attention = nn.Sequential(nn.Linear(nfc, 2048), nn.Tanh(), nn.Linear(2048, 1)) + + elif self.mil_mode == "att_trans_pyramid": + + transformer_list = nn.ModuleList( + [ + nn.TransformerEncoder( + nn.TransformerEncoderLayer(d_model=256, nhead=8, dropout=trans_dropout), num_layers=trans_blocks + ), + nn.Sequential( + nn.Linear(768, 256), + nn.TransformerEncoder( + nn.TransformerEncoderLayer(d_model=256, nhead=8, dropout=trans_dropout), + num_layers=trans_blocks, + ), + ), + nn.Sequential( + nn.Linear(1280, 256), + nn.TransformerEncoder( + nn.TransformerEncoderLayer(d_model=256, nhead=8, dropout=trans_dropout), + num_layers=trans_blocks, + ), + ), + nn.TransformerEncoder( + nn.TransformerEncoderLayer(d_model=2304, nhead=8, dropout=trans_dropout), + num_layers=trans_blocks, + ), + ] + ) + self.transformer = transformer_list + nfc = nfc + 256 + self.attention = nn.Sequential(nn.Linear(nfc, 2048), nn.Tanh(), nn.Linear(2048, 1)) + + else: + raise ValueError("Unsupported mil_mode: " + str(mil_mode)) + + self.myfc = nn.Linear(nfc, num_classes) + self.net = net + + def calc_head(self, x: torch.Tensor) -> torch.Tensor: + + sh = x.shape + + if self.mil_mode == "mean": + x = self.myfc(x) + x = torch.mean(x, dim=1) + + elif self.mil_mode == "max": + x = self.myfc(x) + x, _ = torch.max(x, dim=1) + + elif self.mil_mode == "att": + + a = self.attention(x) + a = torch.softmax(a, dim=1) + x = torch.sum(x * a, dim=1) + + x = self.myfc(x) + + elif self.mil_mode == "att_trans" and self.transformer is not None: + + x = x.permute(1, 0, 2) + x = self.transformer(x) + x = x.permute(1, 0, 2) + + a = self.attention(x) + a = torch.softmax(a, dim=1) + x = torch.sum(x * a, dim=1) + + x = self.myfc(x) + + elif self.mil_mode == "att_trans_pyramid" and self.transformer is not None: + + l1 = torch.mean(self.extra_outputs["layer1"], dim=(2, 3)).reshape(sh[0], sh[1], -1).permute(1, 0, 2) + l2 = torch.mean(self.extra_outputs["layer2"], dim=(2, 3)).reshape(sh[0], sh[1], -1).permute(1, 0, 2) + l3 = torch.mean(self.extra_outputs["layer3"], dim=(2, 3)).reshape(sh[0], sh[1], -1).permute(1, 0, 2) + l4 = torch.mean(self.extra_outputs["layer4"], dim=(2, 3)).reshape(sh[0], sh[1], -1).permute(1, 0, 2) + + transformer_list = cast(nn.ModuleList, self.transformer) + + x = transformer_list[0](l1) + x = transformer_list[1](torch.cat((x, l2), dim=2)) + x = transformer_list[2](torch.cat((x, l3), dim=2)) + x = transformer_list[3](torch.cat((x, l4), dim=2)) + + x = x.permute(1, 0, 2) + + a = self.attention(x) + a = torch.softmax(a, dim=1) + x = torch.sum(x * a, dim=1) + + x = self.myfc(x) + + else: + raise ValueError("Wrong model mode" + str(self.mil_mode)) + + return x + + def forward(self, x: torch.Tensor, no_head: bool = False) -> torch.Tensor: + + sh = x.shape + x = x.reshape(sh[0] * sh[1], sh[2], sh[3], sh[4]) + + x = self.net(x) + x = x.reshape(sh[0], sh[1], -1) + + if not no_head: + x = self.calc_head(x) + + return x \ No newline at end of file diff --git a/code/models/ResNet.py b/code/models/ResNet.py index f8fe706..8ef6ff4 100644 --- a/code/models/ResNet.py +++ b/code/models/ResNet.py @@ -394,4 +394,6 @@ def wide_resnet101_2(pretrained=False, progress=True, **kwargs): """ kwargs['width_per_group'] = 64 * 2 return _resnet('wide_resnet101_2', Bottleneck, [3, 4, 23, 3], - pretrained, progress, **kwargs) \ No newline at end of file + pretrained, progress, **kwargs) + + diff --git a/code/models/TransMIL.py b/code/models/TransMIL.py index d75eb5f..87625d9 100755 --- a/code/models/TransMIL.py +++ b/code/models/TransMIL.py @@ -32,12 +32,12 @@ class TransLayer(nn.Module): ) def forward(self, x): - out= self.attn(self.norm(x)) - # out, attn = self.attn(self.norm(x)) + # out= self.attn(self.norm(x)) + out, attn = self.attn(self.norm(x), return_attn=True) x = x + out # x = x + self.attn(self.norm(x)) - return x + return x, attn class PPEG(nn.Module): @@ -89,6 +89,11 @@ class TransMIL(nn.Module): # nn.Linear(in_features, int(in_features/2)), nn.GELU(), nn.Dropout(p=0.2), norm_layer(out_features), nn.Linear(in_features, out_features), nn.GELU(), nn.Dropout(p=0.6), norm_layer(out_features) ) + elif in_features == 768: + self._fc1 = nn.Sequential( + nn.Linear(in_features, int(in_features)), nn.GELU(), nn.Dropout(p=0.6), norm_layer(in_features), + nn.Linear(in_features, out_features), nn.GELU(), nn.Dropout(p=0.6), norm_layer(out_features) + ) # out_features = 256 # self._fc1 = nn.Sequential( # nn.Linear(in_features, out_features), nn.GELU(), nn.Dropout(p=0.2), norm_layer(out_features) @@ -120,15 +125,15 @@ class TransMIL(nn.Module): def forward(self, x): #, **kwargs # x = self.model_ft(x).unsqueeze(0) + # print(x.shape) + # x = x.unsqueeze(0) # needed for feature extractorVisualization!!! + # print(x.shape) if x.dim() > 3: x = x.squeeze(0) + # elif x.dim() == 3: + # x = x.unsqueeze(0) h = x.float() #[B, n, 1024] h = self._fc1(h) #[B, n, 512] - # h = self.drop(h) - # h = self._fc1_1(h) #[B, n, 512] - # h = self._fc1_2(h) #[B, n, 512] - # h = self._fc2(h) #[B, n, 512] - # h = self._fc3(h) #[B, n, 512] # print('Feature Representation: ', h.shape) #---->duplicate pad H = h.shape[1] @@ -138,7 +143,6 @@ class TransMIL(nn.Module): # print(h.shape) h = torch.cat([h, h[:,:add_length,:]],dim = 1) #[B, N, 512] - #---->cls_token B = h.shape[0] cls_tokens = self.cls_token.expand(B, -1, -1).cuda() @@ -146,8 +150,8 @@ class TransMIL(nn.Module): #---->Translayer x1 - h = self.layer1(h) #[B, N, 512] - # h, attn1 = self.layer1(h) #[B, N, 512] + # h = self.layer1(h) #[B, N, 512] + h, attn1 = self.layer1(h) #[B, N, 512] # print('After first TransLayer: ', h.shape) @@ -156,13 +160,15 @@ class TransMIL(nn.Module): # print('After PPEG: ', h.shape) #---->Translayer x2 - h = self.layer2(h) #[B, N, 512] - # h, attn2 = self.layer2(h) #[B, N, 512] + # h = self.layer2(h) #[B, N, 512] + h, attn2 = self.layer2(h) #[B, N, 512] + # print('TransMIL attn2: ', attn2.shape) # attn2.shape = [1,8,512,512] # print('After second TransLayer: ', h.shape) #[1, 1025, 512] 1025 = cls_token + 1024 #---->cls_token h = self.norm(h)[:,0] + # print(h.shape) #---->predict logits = self._fc(h) #[B, n_classes] @@ -173,6 +179,7 @@ class TransMIL(nn.Module): # return logits, attn2 if __name__ == "__main__": + data = torch.randn((1, 6000, 1024)).cuda() model = TransMIL(n_classes=2).cuda() print(model.eval()) diff --git a/code/models/TransformerMIL.py b/code/models/TransformerMIL.py index c5b5951..467a754 100644 --- a/code/models/TransformerMIL.py +++ b/code/models/TransformerMIL.py @@ -57,7 +57,12 @@ class TransformerMIL(nn.Module): super(TransformerMIL, self).__init__() # in_features = 2048 # out_features = 512 - # self.pos_layer = PPEG(dim=out_features) + self.pos_layer_0 = PPEG(dim=out_features) + self.pos_layer_1 = PPEG(dim=out_features) + self.pos_layer_2 = PPEG(dim=out_features) + self.pos_layer_3 = PPEG(dim=out_features) + self.pos_layer_4 = PPEG(dim=out_features) + self.pos_layer_5 = PPEG(dim=out_features) if apex_available: norm_layer = apex.normalization.FusedLayerNorm else: @@ -76,7 +81,18 @@ class TransformerMIL(nn.Module): self.cls_token = nn.Parameter(torch.randn(1, 1, out_features)) self.n_classes = n_classes self.layer1 = TransLayer(dim=out_features) - # self.layer2 = TransLayer(dim=out_features) + self.layer2 = TransLayer(dim=out_features) + self.layer3 = TransLayer(dim=out_features) + self.layer4 = TransLayer(dim=out_features) + self.layer5 = TransLayer(dim=out_features) + self.layer6 = TransLayer(dim=out_features) + self.layer7 = TransLayer(dim=out_features) + self.layer8 = TransLayer(dim=out_features) + self.layer9 = TransLayer(dim=out_features) + self.layer10 = TransLayer(dim=out_features) + self.layer11 = TransLayer(dim=out_features) + self.layer12 = TransLayer(dim=out_features) + # self.layer4 = TransLayer(dim=out_features) self.norm = nn.LayerNorm(out_features) self._fc2 = nn.Linear(out_features, self.n_classes) @@ -101,9 +117,23 @@ class TransformerMIL(nn.Module): #---->Translayer x1 - h, attn1 = self.layer1(h) #[B, N, 512] - - + h, _ = self.layer1(h) #[B, N, 512] + h = self.pos_layer_0(h, _H, _W) #[B, N, 512] + h, _ = self.layer2(h) #[B, N, 512] + h = self.pos_layer_1(h, _H, _W) #[B, N, 512] + h, _ = self.layer4(h) #[B, N, 512] + h = self.pos_layer_2(h, _H, _W) #[B, N, 512] + h, _ = self.layer5(h) #[B, N, 512] + h = self.pos_layer_3(h, _H, _W) #[B, N, 512] + h, _ = self.layer6(h) #[B, N, 512] + h = self.pos_layer_4(h, _H, _W) #[B, N, 512] + h, _ = self.layer7(h) #[B, N, 512] + h = self.pos_layer_5(h, _H, _W) #[B, N, 512] + h, _ = self.layer8(h) #[B, N, 512] + h, _ = self.layer9(h) #[B, N, 512] + # h, _ = self.layer10(h) #[B, N, 512] + # h, _ = self.layer11(h) #[B, N, 512] + # h, _ = self.layer12(h) #[B, N, 512] # print('After first TransLayer: ', h.shape) diff --git a/code/models/__init__.py b/code/models/__init__.py index 795017e..1a1971f 100755 --- a/code/models/__init__.py +++ b/code/models/__init__.py @@ -1,3 +1,6 @@ from .model_interface import ModelInterface # import ResNet as ResNet from .TransMIL import TransMIL +from .AttMIL import AttMIL +from .MonaiMILModel import MonaiMILModel +from .model_clam import CLAM_MB diff --git a/code/models/__pycache__/AttMIL.cpython-39.pyc b/code/models/__pycache__/AttMIL.cpython-39.pyc index 5d379a46200a876d652766c8d970eef8af36a4a0..54d7904e97ac678bd2c4de503dde9d54a1dde9ac 100644 GIT binary patch delta 1443 zcmbQivxi?hk(ZZ?fq{Wx;u*yhEnWtO#~=<e=3ro8aA06yD4sD<JJz8}AcY}?F^4aT zFNGzFKb#>?jD;appt6CH0R&T6qxd5k@|X-5+!<2XQrKG<QrJ^DvILu%ql8izgBdhA zCT>w@4slDKC@4}7vZPpzfq@~FA&N1DA&M!5y`3SAF@-sWrG+z!IfXTat%V_qrJaF= zA&M2G_ZFLDNr|tg&r1dl28NdmObiUkEFeRmn3aKnft!JWff?l35Jm=u5{44S8ir=3 z1xyPW7#V7qYZ&60Qy6O);#pFdY8WPWGji1znUrv3ab|JVvgEOqaA)z<veYo8FlRFr zO)KGEz+1w-fUkzBgujL<g+-d7nQ<Xg3HJhlg$yO!S%M(v^)lA5AY_{vLFy6w8fKXK zg={qp@j`h<HB2e&*-S+z;AYn|Arv7STEpDTxR3>;39gi>h9L`LpzuP5g-kUJ@gi_J zhAie9hAbAab)ryNF|4xUP+19(Q)?KKvsh{vvRJ{!Nup_B6=A4h$YNW_v=9_zQYj3e zDDZpPz`(%pl97Rdp$HV-FPRt^7}AZw;IX|X<1NO5Oa>MP22JT(ti`1TsYOLBlckxI zocR(9QY+#U%Mvql5|eULZ?S;*w|MjNi*gflGOH3xGV}9p@wt^2r>6KMR;CvD<rn4N zV#>?A#R=z5c3={<V9v}dxy9n{>Jxg4-K8kMAiuQa7E63uvf(Y3pj4mGDDkw^#FEmY z)cDkjlA^@qlKi6hg2bW{qsbvmp2n=VSc+3~(uxEa7#MDGXXeF26&K&)$uBKI@VG$E ziq8SLWAbJue@h+)1_n`3qH+SIG)6u~HV9;5VdP?BljLAzVKiWr_{YJ*!N|g-@Q;m^ zg^`Dm?H?QKWNBs-IZ*xq1(h?%geC?Ch8o5N3=0`*8EY68FxE`YWLB>)VXa}!Vrynh zVa#SI@~L56z@Eaikg=Avgku3`4QmQ>3e!U7TGkS-EN(E5rI!gT$5X>v!?cj8maT?i z0dEc4LdIJ58unlYO;*1mPEZ7aV+mxvCgUyUl+0XBzFX|Yg{7&fRjEZXAO-RuLXkm^ zfuTqV6ei3$sd=|pi!%}nQg3mV=0Vj?W@b^YS7u;f(Bvpm0V!jwxW(uZ#q1a#1|mXl zF*@F2^u5KFlb@bhQe313G89Z`gA}u;<rkGF7Ntahye|O?Kn@N@E->U{;$!4u;$!4v z<YDAus^Wv>Zat_5O(t*(D`ErLJb5vTnky(CimX9~^2Wy}=Oh*vC#UA*#K$99sR6Pa zWN#6uWDo(_31V<C@;QS=G=(SgvFeK$f(+p($uCOI(96p!0!8kv$$_kj^~MYg3{gU0 ziL%V%%=|pP-29Z(oZ?$-5V}YRWPu<^yRdJ5N@-52Uw(;OeraBcYf({t(JeNJAlNP> rXCZ=v!zLH3%?=bf#h_T=VB}!rVdP-~k&^}3Sa_Hi!9q+djBLyR)Am{? delta 995 zcmdnPKZ8d*k(ZZ?fq{YH^@Hf-*BlHCk3k${%)-FH;K0DZP~0+6J60!!A%!uAFN!~f zA%!JJAXhL-kdeWiA%!)Ct%V_lEtMlnsF^uRIE68oL6d#r33WwH##^#JnR%&+Md67> zxupfp`Nf%esg8Mhsfjt6dFehu6F;igv$Zp%F{Uu3Ft>0<F{iMku(mKnv9vR=FhsF} z%(=zpSW@Ea>GP6-g@GZN8Od=VHX8#21Bfo3#=yW(!cf9k!_dsMfN3EEBSQ^S4MRM0 z3S$jJJWC3Q%~}Iuvz4$f;3#2Vz*)nP#azRX<<7E@sf2w2*FuJcAVu70(hyl5s4Op3 zBTEfK7AsgiA58t^g-oKd{3#5<44TY-FB=#b7+x|mFfeEe++r;*El4dYVx9bfNlBb3 zFYgvtaB5*`YF<fZV$Ll#Ncc=%#Ox`?e2b+xH7BizkAZ>V7DrlYVo7OHYVl+_7Jo@l zED3<(K?xK9jC_o25GXf!8H<S&Cj$cmD+2?AGe|`q0|P@1;{t|-3=0@jCjVejudiXP zWh-G_z*fVW!j!_ekhzw%gguJ`%wz6ls%0%<UBFqxTEn!Esg}KlVF6bS`$EQAjv9^{ z)-<MI22B>fB9KptI6&TEyv3Z7nXActi#07LKe6N%dvRfDYHC$#kuU=TLy;(m5Cb`% zwIshNIpY>*Nm1hD6RhI(;vmhOMG_!6#)?~v9=Dhs<HJBi=q*OaDAxSal6c2kjJ~(n za`MwNONxtRKt_QHS&$y~wEUv-#G(|i7ezpUz{JPM#mL3T$H>CS$H>RX!^p){#Ro|% zdQiohj76XXqRDn^asr!*D<}|)bU~)^#>Xe;Bo-GZr{?6u$0OM#1+o=nVG$@i`9a|c z$^smWe8ylAO_9kb+4MyeL56UEy{MO$R|HZQHJOK9kx_ZF9=m+~Ey03Huw;BrW_m_R zUS?kUEvAB;TM7j^@k#kPCB=IA1tpoenN_Jp#d<kK@x{p*sVSv7sYOK~%Wkpx=7V`4 kCm^{E5f~gcxnLD`pm-?;g$4&B2O|$74-<$KVuvu80Xit_t^fc4 diff --git a/code/models/__pycache__/MonaiMILModel.cpython-39.pyc b/code/models/__pycache__/MonaiMILModel.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a386090a47254eadababaff73e6d5d5e70661207 GIT binary patch literal 6477 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 G!wdiiJ>)Y0 literal 0 HcmV?d00001 diff --git a/code/models/__pycache__/ResNet.cpython-39.pyc b/code/models/__pycache__/ResNet.cpython-39.pyc index 453943eef8a113608c389d6590ffeb844bbe73aa..da5761ec5b53342b50a5890dc82f5052850e03ab 100644 GIT binary patch delta 28 kcmdm#v?+-<k(ZZ?fq{WxH^YHsrH#D028_2RTN``_0CV^VrT_o{ delta 28 kcmdm#v?+-<k(ZZ?fq{YH<Q36m`Hj4~28>aYtqr~d0Cf@wS^xk5 diff --git a/code/models/__pycache__/TransMIL.cpython-39.pyc b/code/models/__pycache__/TransMIL.cpython-39.pyc index 0e5f4fc107123caf151ac1282261571966a5a167..cdfdf33bcbe096c18e1f013197fc1aa0a4042682 100644 GIT binary patch delta 1095 zcmdlWcR`*nk(ZZ?fq{WxjdfDWb%l+5t;{(r3=9k)?99NxP^`hgz)-`G#ZberfU$;g zA!7<-3R5pr3{x#rEprWH4U;%SEn^L14Rab(FoPzuUx+5-E$*V!lG38Q_{5TuJWZw| zK?VkfA^`>l22GYCAqED9TZ|RAnDa|Zz!H=1F)J}MNia@kW(j1J-W<we!pN-z(!dWQ z<Tp=Y)nH^)nY@?Hj9U{Vq6H$fC;wy9W|W+)#qP`~Jvoov$W;a;EDIv!Km=H`G>D}L zBE;Z?2#6&PB0!dCgFFcGDF-7TTanV_eipCE`WzaJIg=wedN_M(m{QoXnTqyJe#@a{ zk{40Kl)|3PG=Z^5tb~05cM1Cfo*JeS-WsN6#)V8J><jo7GL*1q@u#q)u=X<6uz<uT zf8<a!=cr+b7bsz0AXp-_KsbdXg`<XfA@f4U8ish08W1U3B38pv!<@p|%T&V<FAn2P z_T*G`=JG4jVPIg$WZ+<6C}L+|U`RIxgU9xojJFsIUV@@2lYyCmp-2T3zDz~JAg^(P z*wRIOAhylqHJo<b@*t)Hh)|mRmD7XQ2ow#hMTvPSc|}%}y|_#ny(c$t*)SSS-peJ= z!NJ1C$ik??IQbTr9v=?_0|UrraAM$_EXI9W2^{&HH4F>*YnW<SYFHOC*D}>GED)$+ zTF3~N<C^@NTfUyVhC7%+lg+P46=X3Zhyb|~?4y_e|NsB5DO?0{>Mi!-!qU{#s?=Mo zX*v0cB}E<}rMe)(735B)yn<US$*Gw+w^)h`i%N<>jxRC>Nn3%W*-|SC67y1Su_TwK zBo_IA#GODys4s{FrMn_OP=N4&6JL=eNDpI1ktv8~iubt16d!(zD={S{J|{IVy(FW^ z93;V&oKqZMlAoQLSA2^Vl#UG{l+ok|JQDSwlvN8#JD^0wz{bPK#mvFT#mvR1#mK{~ z!OX=d!YIVb2ZC&3EL<#A0wG0-dBwh-K6+{SMdgV_DVmH$tRUA}g9vP?(}sb80fdX8 zsnekd#Jj~2AD^3;X`2@xugMIK@|OkT3=BnfAY(w0q{&$14PqyO2vA^as)K{;7Dq{b zQF4Y}US5&><So4Vj3JYs@H(<NfRx!!*5*?a1^EPQM-ezHd4XgiCa3YqF(yoI<+Eng foqUilO0<%TiI0(wk%y6oQHD`~k%LiyQHTuyt^w<V delta 858 zcmca0zd?>Kk(ZZ?fq{YHvEa63S^158t<2uc3=9mc3=9m;3=9m#G7Jn1H4F<tn6ZX& zA>%^ETBaJt8YXduTE-g2U<OS_KTW10K?VkfA^`>l22JK7AqED9TZ|RAnDa|ZCjVzv zVrCRznykVS$SAeBjKzeJTM?v|A4JG)-pZ=M$f!K|9-A4r21rB`L}*QxXV+$wnC#8& z%qTUvpWVn+8YB#INs%mw1=cJDVkv+KF*qRtVu^zYkR{q6_p>lCFmN#Pu@xy!-oWBD zIe<fhQD|}{M-Qh_4O0qRHdE1_$$XqzJSFT41WSY#2&b^8uuq=HDbCN)%T&V<FJ2;6 z!&1YX!ZG;>rz#7lUy=6Yx10)6Mam$rG8GAftl|W*rHlALZ0pH7Tz1@YAf`NsP@G)K z<-uzR3K7<##JrTeBFo9AxJ((nCUM&^YD~7}mY<x)t-}Y30d`o3vrS&WeVVD3X>uWt z7>MfSk(cDG;S6TbWb-Rh0h!7OB0x?k(w=;jM}gZN#Mc24E|Wj-h~$CnD>4G{EkQQ3 zrB)Oq=B3<XNiI!EEb<14JAw!w5CMv`B43afxWF-2BmvUGm{DW`qM717ZZXA&-{MM4 zNr}%%%}X!IC^7>{a3$vy$Cu=1r{)z;Zs3)u2gODOD7=+GiHVtqk&BUok&A<iQHzm> zS%Za(QG`*5g^P`kg^Nv$nTw@LAfzZUuh`eqM=veEs64SKMU$}zl;(=8K#sx|qt*-z z3^pJepfPG)1QNN$5g(tMm}#3AAFs&_j+U1N;tUK$wjg6bL8{4E<OO2Kg9uQVX{r~2 z!six8Nq$jshF)G?k=*1EK7GdE$t`@2Z1x~!c9T!@sfmJ;5ZI0)aPsp6$%Id4<CkNM lovg}l&8Raukv~ebn2V8*k&lswk%v)+QGk(yQGij14FJb@r4s-E diff --git a/code/models/__pycache__/TransformerMIL.cpython-39.pyc b/code/models/__pycache__/TransformerMIL.cpython-39.pyc index 8b1abd15afbfda834b941d0a5e2eff2d1aa7773d..da33d0418c6c9204aea2231c72e8846914e14139 100644 GIT binary patch delta 663 zcmbOu`%r-|k(ZZ?fq{YHB2R3}Yw?YIP8>`%jFW>nZr6*{FsHEhGS)D}i<KbQ;z(=> zB(@|HTMCISjl`BgV#^}2<&fC&Ft$PsL%c!>`vQ&{=7k_fD3-7<;HqJ+VaO6*$W+4+ zuQb_%Q=d_Jas}sx=v!<#iIu5EMo`)qN}E7wQz&f)rOlzV1(deD#SYeQXaHjv!Wc%A zHMjy8ttMA;sfaN0V8Y3>xh$CS7$;xlI#D0PRLfM$S;Me^zlLccBb+CI!V^T{38C<W zQFtOKJW&*$7z$4u%#(*%F9G7FFr+ZFGNmx4F-bDiGSx6Fkes}pTZvI>@+Iyd3qJ-1 zhN1uv5eOoJKtwQz2mukHAR-JzgoB6(5FrR6A}4F{*svB^FfcGo&gGF|i)Ub9DAt?Y z&m$qs$cF(ZFXQoNRG<8fN0%{svI?&kWBlZN-WbN@$!B;q7&9k-<((uN%LUd23Rf9M M0Y(l+0Y)J<0HR{1cK`qY delta 208 zcmaE;Fh`azk(ZZ?fq{WRU4KI|m&iswCl00`43mR6ZcDQ-;HY6<$XLS=FIK|7fUAbN zh9OIMAyW-Qy!hlZocfFslmBpTn9R-{z^F1gf?H+sByKaNM+}osai0)MVMt+UWlCX8 zW0GX3WvXFVz(3i5SBX(zaxiZYn;-)NLy_O)ySz5+w^$QPO7aXR%kjyug)lHM6iZEZ z;FFk~!{^5+GkG_kE@R^4mwaA~A(Kt`V;CbQPvqBNjGw%Vf0C#N7b71dA0rPV52FmD M03!#Z0HY8a0B{jAW&i*H diff --git a/code/models/__pycache__/__init__.cpython-38.pyc b/code/models/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da847dfb6ad6867041d77b1f5fe975ec3d616e3d GIT binary patch literal 346 zcmWIL<>g{vU|{(6lQrce0|Ucj5C<7EF)%PVFfcF_gNPJ{6viBeT*fFyMurrI6s8=e zT&5@{Fq=7tIhQ$#8O&zMVaa8QVga*Rb69iPqSzQ2QrLnSG}&J=GB7Y`GT!3z%}+_q z@yshpElNvFPSs?*#Sv1Jm{;uU>7&Vbi_Nj51j6F=&Cg5B^!4-stJh?_#qR9m=o|0r z<fq9V#h(i@Bt8>nN)gDhMa&Eg3`Hy;f|Y@RA&Lv4C^;uFw}_2_fng;>5j#i{MEtVX z&&bbB)vwG+%+oK=FUl@1NK8)Ehq*-8B{j9cy(lrQL_aw{B~>46Qn7w~d}dx|NqoFs dLFFwDo80`A(wtN~kiUvK7#J9Mn0OdL5CHF-RFVJy literal 0 HcmV?d00001 diff --git a/code/models/__pycache__/__init__.cpython-39.pyc b/code/models/__pycache__/__init__.cpython-39.pyc index c7462b47578213c58c1f1bce6f2a74bbd2bceeca..8fc8e16ae5ea11dacf9d69c79097ab588d07c6b9 100644 GIT binary patch delta 215 zcmeyuc#DZQk(ZZ?fq{YH+fUY%lM{Jm8675S%V;vBFy}DmGDk5pGNdr1u;j4hvP7|f z*{nINxolBvj0`Dk!3>)06MdBHH5qTQIhK_8dirQG-s1Jm&r8ho_4M)0Pf5+uWW2@h z?BnPg@9X5J$sWa@3lfaa%qvMPN=r;mEn;F|U?^e+5iB5rm4SgFiVLDBIVUl<h>d}P uVI@NmJ4g~l{Ib{2$j?pHugpoz(=X32$}TQQoVdw`hl7EEfrp8Q5d;B@f;9&K delta 78 zcmcb`^o5Z(k(ZZ?fq{YHu54g(>O@{yMwyA)GOWzO44Nzx3zV7tG?^#vk(OA=P{hK( e03m+4=x5~TrUsYf7a2}wW%OiYVqjq4VFCcj)DcVo diff --git a/code/models/__pycache__/model_clam.cpython-39.pyc b/code/models/__pycache__/model_clam.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c7caa265acd38a7ac7d90d58b9867a2c18fb372f GIT binary patch literal 8214 zcmYe~<>g{vU|=}*n>A&I4g<qu5C<8vFfcGUFfcF_&tYI-NMVR#NMTH2%3+LR1k+5p z%u&pY5HXfqW+nzkhFsPtHmC@D6h|uK0?t&%EUpFI3mJ-BQke6YQdkx;Msd0`q_C#2 zwJ@Zxr7~ynG&4u>x-+D(r*O0|q;Nn*_}m#%I8(S<7*e>PBK+<QDcmVMEet6<sr=2% zQ35HvDSRyqQGzK<!3>)GRb^bxMX8A;sVNHic?uz=sS3V{MG6W=3Wg?DhK5!q<_bmz zMuuEm4vD2D8Tmz43Vw-2xtR*?8Hs6WiA9+TK8ZQ08C+aNscET2sd>q%3RVgkB_##L zR{HwsnI##eNqWiox%#<@8M*oSDLIKr`p!O%zFb^fFG1nucZ(&tG$rvCb8<mxGDrX! zg8~u6FIHn<U`S<%VoYI(VoKp`XGmiN2LopmGsN>zEbR;|3{kAX44PcGI2=n#^5Xqc zOI|XtFfhDiU}Ru$d&$Vaz>v%eG7O4AY&Hf424+wsB``2BlrWSq)-W_PEnr&6z{pU- zynv;Kv4&|OQwj3|)`bk|Of?MgY&Fb9Ry7P+Yzx>+m=|!QFfL?V$jHb57h$Pks$p5k z1QIJ@&f)}#_c4I<r7#3DtYq?g4zc@!y(ZT!*5cBF)S@Dg7jJRI$7kkcmc+;3V#>?A z#paWlmzr2~izOs6FXI+lZhlH>PU<bT#Dap<yp&t)E=BnT`K2YdxPns)OH=boG81!F zvfg4TPR&WX#prX3(d8C<3RDSaUVL&+VsUY5@k+*9obeD&eEdp=Uyk}2`MIh3l{txd z`sMjW*~JBk$*KAwMTvREzMek1E~%*n?nQ}dCHl$vDXIFo`6;P6#SjW)NUmN%Wf3<6 z1A_!8@B~1<V&r4uVr2Wr#=^oV#3aI0B?yZIJ(%B;nLz5G7{msJyferEJ_ZJc8ioZ7 zHH-@xYZ%j*f*Dpa`e`y2@iQ<mXfhRvFfcIOVyq~VW?*1|5HcVU_O$$>^2DMPRge)N z^B5Sb1mLzpB{f-!KoMO8ifOkZb_NE9m29Bk&P&WqjgP;@6(0`?-uU=iJn`{`rHMHZ z8L;n)<U#iELc=XNH76%N9^wG7QzSv|0XYR6iDDpUfMSz_iH{d7LZ#%)2lG?BJ1CE$ z`v)UYgZv8$+TsaBCTf(V&JIoL95u{ENuUJ0fU|^o0T)tI=Rg%HVb0<Pse>eRD31fo z;{cls&Jr~Y@jReRP{aX>Q{Ey_;aLQVxgt<9D&heJB`=5orG;DEi6teVl%1a!pLmNs zI5RyrKQjecG^q%b=!yhEI)p%xgrp<6NEjpxjva73fujgyjSeV^q(CW<36@&97}@@_ zF|jZTF$yv9G4e50iKB)#_S6dtVsPp;KuW!}Of?J(7(wZ{mbr#$0aFe0LdIH_8iobT zH7sBj3nYCP$%2A`r3h566={Gxz?@r}Q=|zJWd$erA~}#KW8y8wq+5)RNU09&8&JZu z1NjCNjtq=kP*^2~=6amDphy7}M&RH96X4JS8x4vSEs)XBv@8UUCXBQU%1WS+EKWi$ zni*4=QkYX%Qdm=&7qBd3NMTN62N%|CDeNtrQLHH(DV!|~QEVw(Dcmg#QS2!^DZDKV zQ5-3JDf}%AQJg6PDS|BwQCumaDZ(itEsRmz;9{L8m_bwQ7CWfgh!1uOxy4$Xo0ya1 z_7aqqUV?IdGKd9o4G4o`8kF6^c>q-SqZaJx3@MC@7}FV2m=-anFwX%M>&!I_S<E#| zk_?>;B`gbAI~Y<}BpEswQdlJ!7BZEvEMNoWiCR#Oh^gUNz+S?#fFp$sTJ$p(Rh4i; z)OIkWuuC%3FsHDlaP+d&a^^{taAB7LnNq_Et|nNrxN9J}g$HUkt0Y4W>q3ybc)?)@ zs>?Y__-a_28C@8f8Ed&pSQhZta4lr4VTc!~VX0w=7p!5cVTc#1VXa|^7p`HiVTczg z5v^fpW@Kal<vC4mzm?43V&f$P69WUdEQAUa88a|2WHvA|Fsx)M(g&qD=A_K@B2Z-s zE-Z^ULCM4rRBW;oiGtXmVy;LW!~&K5$sm=WKnGz^On?F&l>Lf9X(^qdh9Op@ma&9k z0b>V43WFp=3gbeiiA;qopxO{(0oZINL;<jp=@yfo!7awjm5jGoiZiQHAxR%(+$}Df zoXp~q<ow(MyGRBGhR+~Nt5l%L0-jU#Y;y9G6LX5~^bpE5#ULe)9?0RK1agZLWOjT? zW^xI_?prKDsXn1dMGGh|fQ#}Xa3RBsD3<b4OKx$4>(<P)%+#XdTdYNidFiRQxO~C2 zwNGYo$t{u0yyB9?yyR3+m04U2RmhPYU!0g*kdt~#04|@CUtAoYmRAG{(p#LxrAZ}~ z1(|v2w}d?NGC}owW>so@d1_{QMoF<IH@JAX#gd*_l6s2+?2E*rbV!tVfV>AXq{tJ* z@&ZLDQ(AHnsGKTt2MK}mxh;qV3Q=(33(^E`U@<WBF^Vv8G0HHqFbXiTFiJ5=Fmf^S zFbXk>G4e37L1C2udVpgj0#L~Tva&b>Tmxk>f|^t*jM*$jRwc|OEF}yOk!Hqb##+V_ z)-1LfhAj3P#uTPrrUe`+%;1#Gp2r6gUBFSo3E|f;WO2cHTr~_?+;AQ@IF+;bfm4(w z<1Ma~)UwRv)cDMl;wm;!>(a_Vljjy|Nq$jsMiD5L-r|9(NX{?KE4jr2N>)X#pilu- zM7MZc5=#;T5{nXZa#C}^fp?3kB>xs0L{pIqNFgXRp>2~Qe~<vU7zGockiErGlnP3Q zC8>#^vJ_-20}~&k5Tg{Rnqfo)B1{=dAcArgsEz>#A}Gg!f~*GA>SZipN@40{UckJN zA(%mv8RF%Yj76c4EE)icah9~woE)&oEtZ`8y!4ffx7c!0^U_N)AbAPlNbzKFyFb1l zzc{lbvn(~fB(W$xwWK&3<YrJnF)&ui!=f99T5=r@@?%jrDC8nQL^Oy1y9`W#!w}}Y zywvnWWas7LaUQzbWKd!R6%-&0YEZ(%^#?d{)-Yx<HZ!I$W-}E@)i5q#0(H+8GSxDI zn=Xts3|XuTnNk=f8B&-e8ERQdn6ubwm{OQ)SW;MenQK`~n6p@F7`Z_`0M-=76xLp5 zxLP*2S~jp+_7dhSc93~#j46yI94TzQ%nLXdGSqS)i8CXKbCxh?an*3taHfN*RMuXm zS}w2%YYjVGgu8~hhP#=umIv$(o)l2$66%Hp+@K~~EpH9O0-hS48m@&*wR|;vHM})k zY0SY4n(UC2^YZ`y|Np_o{Ys`=%qf|<w^%dtQc^2cG8Tc-EjWHOd2cc2q~_gXEzU?R zNWH~UmYG^!1W9Nm`32cUpz`Au4_I4#acWL#a!C=WbOtBDq9{;;WKK>jxy4>wSelwz zl?pDJH2J}$SdlJBnla-R7osS=#aWVH5MKbwyr3*w5MK}l7RdvNM6rS-^KNk#z>?}M z&OA7iJ258*#);wuabP8E@h!HT{PfI{;#-^`;ew*nl;T^wFxhxe`HP-6I6<=Usbz^d z1)$^xN{|eUe2hGdVvGWeGK>O@5{wc|LX1L;9E?(oJd9O>uzUj7hm!O_l@2`VO#?L< znX*6$im`?<iwT+l6>1n4FvAld%L3LKPy%E_N`R~-ELrT}1jq_bRBR<ISsb9&cN!x& zQL;i46?+YH4O=r~Ek_AU7HbU$IAO3s5+|fBU&~p;uz<UUqlSGUQ!Q5wR}E(kJ95G( ziU;LKa2^Hqjll__2-FDF<bgzN3P?T`M5KWTP<kjz2eClOp$Js)Ls9`K0Tg9{BtTUX zwDtnWdl9IVDarv!fl99;P_8b@199^~L=gi6Llk>KJUFh3N<c#3k^xMBVgnL?;24U} zFD+>V#S*Bi$iTz~k0%LO?1*B-4oHt*GN`=*Dj7f+RB?j%;8OPxBce|l!&J*w%UHs= zfT@NJ96ijnY~VIM<3h$-c5o20r!b~4_cGP8*RU4Z)UX9J)UZJVAEW~$!<Noa%UQ!b zfw9OXg{77Y#7k$W<t||Xl_;R9E`=3T{Vimu<tgDT0atLK3etrkc3CZN4NncPB*Oxp zg$%WzYLOentL3lZ1D9KmY8V#q*09wu*6=T6j$y79s1>Xgs^MI~S0lK9e<8yHfrSj9 zre+QI0=^m{WRX0l8ip*vqP7}_1wv%$XDV!~;i?fZXQ<^WYy+7E@?8xV%=NMiwOl2P z3xq*tFJ!6}28WsOLdIH=62>f%8WC`^WQHWmT2XK~g2X_fB?b<uIW=4*q6@@oxEC^l zY0ia=DQt6?YsK?eG8t;cYgi^Q7Hz2!Um%{sUL%|d8H*9A5vvicVXqNSV-03l$pI<n zz(pK5{esdcD6$ze8E<jtmF7a)W~s%R%-}S3iyNGMa}twMbBd$5z#MQ2yv320npjd= zlv=DQ0d5jNia^d1(2z+%esL<eS#XQd?G}4+ep*RxV#O`?{JhlojQkRCvksC6z-<h0 z)&aF2Zn0#Rq~;ctf(k*l)QXbSyp$qPujLkNUTJPYWf7?TR#XO(Wy;M3=dN2!c?Gvv z6N`!xD{rxt7NjJWq-sh)ic(N+y2T21I3#C)Tb`iu>lS}eYDsBPUOdbPxA+hZ+5Ehm zN^o|(#g<=MQczlQi`6l{D6zb#7-TPhNq$LUPCPgmz=dQXC?8gW2pf<*B!Iw{LUJ-F zpWb4Hgcv)tHF1m4w+NJ*Z?Q(kXC#)~VvCF~D9TT|#Z#18T$)o-3~7af^EH?NWp41$ zOCKmp2Z3S>)M#SjV&r3F0Yg4U7A7_@i-l2yQHYU;k&BT7%o1T@gVIclTudB{d`uuY z5k@{HHjtYC9Ly|?pyHv5A66j1yU2cSA#R$yMT#KLDS-%O5CLkr-4bvv$}cW<%_}L& zFR1j%FD?c*oQuLh3SvP-9EbqLBRIOijxSOHiGe)?CcrIku-8DH5K#0N3o$S-aDbh~ zC&|IZ!NkGLA;`g71d<08wIGkfF{r-{9#1wR(BDo0^|cwJSW~#cqri+&Y$+VU44OR9 z{<E)B2)Lu?Rs<TiC<1lAl97AQApe32K~Op@=3@j6i-KC~HQ*wIK;M~R0Sj8+nE^6% z3hp~c)o?6eD`8l`j?{OqDB<V;_p@Pr=Nd%c8Ld|hlL46m?K?Ao8c2Ph0ak9Lo-z+o zPZ?A&LVC)4U=`dcTrC_W2o>BVAQjx;9tJ<SFD(G>OACVg(n8?Av~Y<CQeT?KuLu+a zMJAxwH3bpiN)i-3h|Y46IcT&QBms**P-7Yttiqrq4N3*+n0;dgSl?Kau?TFQCCGRy z5CQJ7fs+wPZ;?F%1H%=NI4DIxd%(U<czeJo&2(a11MjI9S%7T9>y~RE6(F~0ih_I7 zx7Z-vU`RG`1j&L2_nbg1#K;|L_Zm{Ff=fs@kUDrb3*5p4Hya@(DY#hl1`U<*K#D#e zkaAxT0UnqDw?IIZIYbXwxgSUtRIx|#Cncss3Vle29MUfahb=gi!2t|vtsMnL6=-aZ zftiO<gb}k}4C)nwFj~(TDI!qY7oZXVlm<Y~D1HZOUod7dfLjva5yKd!TJ~DT5~c;r zHK5i6(?Vu&YeK7rJ(!_}9om`z$$;udc5wY@mcmlYna%)iO%T(PSVy2GaRJ<tU<b7> z&{`8*M6@Q{KrMix0&r`BTr-#o3u-vQEeg)U0+4wV7>mqmIFVWuoFz;PK!aS2pcX|5 z(*ltcP$QXrA=3iUg$xVCYS_T-3((vPJ7~ZxR-sn3h9OJ5MpTlaMi@jkGuDWtFx7~r zG1)LoU@S~2Vak#~Ym11Xv_-_hVSS>8vqW-%6u2z{qPd`L5eaZxL;~Cvc~B#<KpLej zB3>g_!%-svYKs(=gOaQar1=a=1K<`!Q8g%K)_{mw5K#vrz=;>!Xa;8oc!Qy+9wZB{ zXBt2(P$69eYWO0W3PnwzdYLsfx1gl*7He8gequ>c2uLkBJAqn1Ma>{?3y5e1xkwU{ zi9qd#qBf9dJBa825uG3c+&Bky)QY-6+#V1CY8(`ywgrlMK@#BRJg5;+1ggA?`axo# zc?d`YfHApfB1mKsh?oo_!1)eLfb$(_T>Bm<-+^m=a7_)b^Rd+U5{yEOpc)@SBWipJ zMm|P4MiE9nMy$2Iuah29t?%Zh$&RhoFPZ{!AgCmO)aPJVA_%a1r!p`w90s`;RE2Ud zaWQiI=aMV}iDHzu@XjBozXY1?TFBtS5E}vNSJW_;Fl8|}GZmSXFlB+eeOYYa7CU1W zdlm<1lz@?;kfVeVtd6UhsfYutj=P32iw!iQ%E$ocv!^gEWCE!M4~ap?hrq30PzwMu z*HwIrE3+8Xqyx1O!R2)ksC2%?0-A%o#aEG7mYG@<pO;^ho0t=Siw!dHc#9<|GqLy< zOG;u%;w{#y)S~?OTii~GCCM3n`9-;gDYrP2^TETNCGna};F-HyjJari>LO5~Ex^dY zPz;*oVPNE8<Y5F&y6`XxFoNYYg>JFO$EV~c$H#*+$1M)<n4Ml;9@v?;gkfC0w9>rf zlFa<P#GG4P2zC)TAAvIjIFW;sE~v7*#gkbapIDZdnUk25lUg(l6tkd#A@JM=xWNUE tG_WI(91V_bP(<J2uz`e~9mup|P&bo>n*%&H%E2VTA|xUtD^w%k3jqE=CfNW0 literal 0 HcmV?d00001 diff --git a/code/models/__pycache__/model_interface.cpython-38.pyc b/code/models/__pycache__/model_interface.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..047a115307f23206218efb8ceb414d4b3df7c93c GIT binary patch literal 27594 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 literal 0 HcmV?d00001 diff --git a/code/models/__pycache__/model_interface.cpython-39.pyc b/code/models/__pycache__/model_interface.cpython-39.pyc index 3da7b2035d7f1297664e6c70bc48be9b1643e010..243c3f2980570e3f84143dbeb71e3a1a48e10942 100644 GIT binary patch literal 28069 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 Pix9t1Jp(FC72*K^z%%<f literal 21335 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 diff --git a/code/models/__pycache__/model_interface_classic.cpython-39.pyc b/code/models/__pycache__/model_interface_classic.cpython-39.pyc index 97044fe05269d43ef2c97e75a0d3b37f58673a23..23e18e285c2185a51b7c8325683a0311412a4b1e 100644 GIT binary patch literal 26594 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 delta 10140 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 diff --git a/code/models/ckpt/vit-base-patch16-224 b/code/models/ckpt/vit-base-patch16-224 new file mode 160000 index 0000000..5dca96d --- /dev/null +++ b/code/models/ckpt/vit-base-patch16-224 @@ -0,0 +1 @@ +Subproject commit 5dca96d358b3fcb9d53b3d3881eb1ae20b6752d1 diff --git a/code/models/model_clam.py b/code/models/model_clam.py new file mode 100644 index 0000000..7ef5041 --- /dev/null +++ b/code/models/model_clam.py @@ -0,0 +1,280 @@ +# -*- coding: utf-8 -*- +""" +Created on Tue Mar 2 14:11:47 2021 + +@author: Narmi Ghaffari Laleh + +reference : https://github.com/mahmoodlab/CLAM + + +""" +############################################################################## + +import torch +import torch.nn as nn +import torch.nn.functional as F +import numpy as np +# from utils.utils import Initialize_weights +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + +############################################################################## + +class Attn_Net(nn.Module): + + def __init__(self, L = 1024, D = 256, dropout = False, n_classes = 1): + super(Attn_Net, self).__init__() + self.module = [ + nn.Linear(L, D), + nn.Tanh()] + + if dropout: + self.module.append(nn.Dropout(0.25)) + + self.module.append(nn.Linear(D, n_classes)) + + self.module = nn.Sequential(*self.module) + + def forward(self, x): + return self.module(x), x # N x n_classes + +############################################################################## + +class Attn_Net_Gated(nn.Module): + + def __init__(self, L = 1024, D = 256, dropout = False, n_classes = 1): + + super(Attn_Net_Gated, self).__init__() + self.attention_a = [ + nn.Linear(L, D), + nn.Tanh()] + + self.attention_b = [nn.Linear(L, D), + nn.Sigmoid()] + if dropout: + self.attention_a.append(nn.Dropout(0.25)) + self.attention_b.append(nn.Dropout(0.25)) + + self.attention_a = nn.Sequential(*self.attention_a) + self.attention_b = nn.Sequential(*self.attention_b) + + self.attention_c = nn.Linear(D, n_classes) + + def forward(self, x): + a = self.attention_a(x) + b = self.attention_b(x) + A = a.mul(b) + A = self.attention_c(A) # N x n_classes + return A, x + +############################################################################## + +class CLAM_SB(nn.Module): + def __init__(self, gate = True, size_arg = "small", dropout = False, k_sample = 8, n_classes = 2, + instance_loss_fn = nn.CrossEntropyLoss(), subtyping = False): + + super(CLAM_SB, self).__init__() + self.size_dict = {"small": [1024, 512, 256], "big": [1024, 512, 384]} + #self.size_dict = {"small": [512, 256, 128], "big": [1024, 512, 384]} + size = self.size_dict[size_arg] + fc = [nn.Linear(size[0], size[1]), nn.ReLU()] + if dropout: + fc.append(nn.Dropout(0.25)) + if gate: + attention_net = Attn_Net_Gated(L = size[1], D = size[2], dropout = dropout, n_classes = 1) + else: + attention_net = Attn_Net(L = size[1], D = size[2], dropout = dropout, n_classes = 1) + fc.append(attention_net) + self.attention_net = nn.Sequential(*fc) + self.classifiers = nn.Linear(size[1], n_classes) + instance_classifiers = [nn.Linear(size[1], 2) for i in range(n_classes)] + self.instance_classifiers = nn.ModuleList(instance_classifiers) + self.k_sample = k_sample + self.instance_loss_fn = instance_loss_fn + self.n_classes = n_classes + self.subtyping = subtyping + Initialize_weights(self) + + def relocate(self): + + if torch.cuda.device_count() > 1: + device_ids = list(range(torch.cuda.device_count())) + self.attention_net = nn.DataParallel(self.attention_net, device_ids=device_ids).to('cuda:0') + else: + self.attention_net = self.attention_net.to(device) + self.classifiers = self.classifiers.to(device) + self.instance_classifiers = self.instance_classifiers.to(device) + + def create_positive_targets(length): + return torch.full((length, ), 1, device = device).long() + def create_negative_targets(length): + return torch.full((length, ), 0, device = device).long() + + def inst_eval(self, A, h, classifier): + if len(A.shape) == 1: + A = A.view(1, -1) + top_p_ids = torch.topk(A, self.k_sample)[1][-1] + top_p = torch.index_select(h, dim = 0, index = top_p_ids) + top_n_ids = torch.topk(-A, self.k_sample, dim = 1)[1][-1] + top_n = torch.index_select(h, dim = 0, index=top_n_ids) + p_targets = torch.full((self.k_sample, ), 1, device = device).long() + n_targets = torch.full((self.k_sample, ), 0, device = device).long() + + all_targets = torch.cat([p_targets, n_targets], dim=0) + all_instances = torch.cat([top_p, top_n], dim=0) + logits = classifier(all_instances) + all_preds = torch.topk(logits, 1, dim = 1)[1].squeeze(1) + instance_loss = self.instance_loss_fn(logits, all_targets) + return instance_loss, all_preds, all_targets + + def inst_eval_out(self, A, h, classifier): + + device=h.device + if len(A.shape) == 1: + A = A.view(1, -1) + top_p_ids = torch.topk(A, self.k_sample)[1][-1] + top_p = torch.index_select(h, dim=0, index=top_p_ids) + p_targets = torch.full((self.k_sample, ), 0, device = device).long() + logits = classifier(top_p) + p_preds = torch.topk(logits, 1, dim = 1)[1].squeeze(1) + instance_loss = self.instance_loss_fn(logits, p_targets) + return instance_loss, p_preds, p_targets + + def forward(self, h, label=None, instance_eval = False, return_features = True, attention_only = False): + + A, h = self.attention_net(h) + A = torch.transpose(A, 1, 0) + + output = self.classifiers(h) + output = F.softmax(output, dim=1) + if attention_only: + return A + A_raw = A + A = F.softmax(A, dim=1) # softmax over N + all_preds = [] + + if instance_eval: + total_inst_loss = 0.0 + all_preds = [] + all_targets = [] + inst_labels = F.one_hot(label, num_classes = self.n_classes).squeeze() #binarize label + for i in range(len(self.instance_classifiers)): + inst_label = inst_labels[i].item() + classifier = self.instance_classifiers[i] + if inst_label == 1: + instance_loss, preds, targets = self.inst_eval(A, h, classifier) + all_preds.extend(preds.cpu().numpy()) + all_targets.extend(targets.cpu().numpy()) + else: + if self.subtyping: + instance_loss, preds, targets = self.inst_eval_out(A, h, classifier) + all_preds.extend(preds.cpu().numpy()) + all_targets.extend(targets.cpu().numpy()) + else: + continue + total_inst_loss += instance_loss + + if self.subtyping: + total_inst_loss /= len(self.instance_classifiers) + + M = torch.mm(A, h) + logits = self.classifiers(M) + Y_hat = torch.topk(logits, 1, dim = 1)[1] + Y_prob = F.softmax(logits, dim = 1) + + if instance_eval: + results_dict = {'instance_loss': total_inst_loss, 'inst_labels': np.array(all_targets), + 'inst_preds': np.array(all_preds)} + else: + results_dict = {} + if return_features: + results_dict.update({'features': M}) + return logits, Y_prob, Y_hat, output, results_dict + +############################################################################## + +class CLAM_MB(CLAM_SB): + + def __init__(self, gate = True, size_arg = "small", dropout = False, k_sample=8, n_classes=2, + instance_loss_fn=nn.CrossEntropyLoss(), subtyping=False): + + nn.Module.__init__(self) + self.size_dict = {"small": [1024, 512, 256], "big": [1024, 512, 384]} + size = self.size_dict[size_arg] + fc = [nn.Linear(size[0], size[1]), nn.ReLU()] + if dropout: + fc.append(nn.Dropout(0.25)) + if gate: + attention_net = Attn_Net_Gated(L = size[1], D = size[2], dropout = dropout, n_classes = n_classes) + else: + attention_net = Attn_Net(L = size[1], D = size[2], dropout = dropout, n_classes = n_classes) + fc.append(attention_net) + self.attention_net = nn.Sequential(*fc) + bag_classifiers = [nn.Linear(size[1], 1) for i in range(n_classes)] #use an indepdent linear layer to predict each class + self.classifiers = nn.ModuleList(bag_classifiers) + instance_classifiers = [nn.Linear(size[1], 2) for i in range(n_classes)] + self.instance_classifiers = nn.ModuleList(instance_classifiers) + self.k_sample = k_sample + self.instance_loss_fn = instance_loss_fn + self.n_classes = n_classes + self.subtyping = subtyping + Initialize_weights(self) + + def forward(self, h, label=None, instance_eval=False, return_features=False, attention_only=False): + device = h.device + A, h = self.attention_net(h) # NxK + A = torch.transpose(A, 1, 0) # KxN + if attention_only: + return A + A_raw = A + A = F.softmax(A, dim=1) # softmax over N + + if instance_eval: + total_inst_loss = 0.0 + all_preds = [] + all_targets = [] + inst_labels = F.one_hot(label, num_classes=self.n_classes).squeeze() #binarize label + for i in range(len(self.instance_classifiers)): + inst_label = inst_labels[i].item() + classifier = self.instance_classifiers[i] + if inst_label == 1: #in-the-class: + instance_loss, preds, targets = self.inst_eval(A[i], h, classifier) + all_preds.extend(preds.cpu().numpy()) + all_targets.extend(targets.cpu().numpy()) + else: #out-of-the-class + if self.subtyping: + instance_loss, preds, targets = self.inst_eval_out(A[i], h, classifier) + all_preds.extend(preds.cpu().numpy()) + all_targets.extend(targets.cpu().numpy()) + else: + continue + total_inst_loss += instance_loss + + if self.subtyping: + total_inst_loss /= len(self.instance_classifiers) + + M = torch.mm(A, h) + logits = torch.empty(1, self.n_classes).float().to(device) + for c in range(self.n_classes): + logits[0, c] = self.classifiers[c](M[c]) + Y_hat = torch.topk(logits, 1, dim = 1)[1] + Y_prob = F.softmax(logits, dim = 1) + if instance_eval: + results_dict = {'instance_loss': total_inst_loss, 'inst_labels': np.array(all_targets), + 'inst_preds': np.array(all_preds)} + else: + results_dict = {} + if return_features: + results_dict.update({'features': M}) + return logits, Y_prob, Y_hat, A_raw, results_dict + +############################################################################## + +def Initialize_weights(module): + for m in module.modules(): + if isinstance(m, nn.Linear): + nn.init.xavier_normal_(m.weight) + m.bias.data.zero_() + + elif isinstance(m, nn.BatchNorm1d): + nn.init.constant_(m.weight, 1) + nn.init.constant_(m.bias, 0) diff --git a/code/models/model_interface.py b/code/models/model_interface.py index 3d37368..43494c2 100755 --- a/code/models/model_interface.py +++ b/code/models/model_interface.py @@ -13,7 +13,11 @@ import pandas as pd import cv2 from PIL import Image from pytorch_pretrained_vit import ViT - +# import wandb +from scipy.stats import bootstrap +# import sklearn +# import json +# from pprint import pprint #----> from MyOptimizer import create_optimizer from MyLoss import create_loss @@ -30,7 +34,8 @@ import torch.nn as nn import torch.nn.functional as F import torchmetrics from torchmetrics.functional import stat_scores -from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve +from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve, confusion_matrix +from torchmetrics.utilities.compute import _auc_compute_without_check, _auc_compute from torch import optim as optim from torch.optim.lr_scheduler import ReduceLROnPlateau, CosineAnnealingWarmRestarts @@ -59,6 +64,24 @@ from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget from captum.attr import LayerGradCam import models.ResNet as ResNet +LABEL_MAP = { + # 'bin': {'0': 0, '1': 1, '2': 1, '3': 1, '4': 1, '5': None}, + # 'tcmr_viral': {'0': None, '1': 0, '2': None, '3': None, '4': 1, '5': None}, + # 'no_viral': {'0': 0, '1': 1, '2': 2, '3': 3, '4': None, '5': None}, + 'no_other': {'0': 'Normal', '1': 'TCMR', '2': 'ABMR', '3': 'Mixed', '4': 'Viral'}, + # 'no_stable': {'0': None, '1': 1, '2': 2, '3': 3, '4': None, '5': None}, + # 'all': {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5}, + 'rejections': {'0': 'TCMR', '1': 'ABMR', '2': 'Mixed'}, + 'norm_rest': {'0': 'Normal', '1': 'Disease'}, + 'rej_rest': {'0': 'Rejection', '1': 'Rest'}, + 'rest_rej': {'0': 'Rest', '1': 'Rejection'}, + 'norm_rej_rest': {'0': 'Normal', '1': 'Rejection', '2': 'Rest'}, + +} +COLOR_MAP = ['#377eb8', '#ff7f00', '#4daf4a', + '#f781bf', '#a65628', '#984ea3', + '#999999', '#e41a1c', '#dede00'] + class FeatureExtractor(pl.LightningDataModule): def __init__(self, model_name, n_classes): self.n_classes = n_classes @@ -79,11 +102,15 @@ class ModelInterface(pl.LightningModule): #---->init def __init__(self, model, loss, optimizer, **kargs): super(ModelInterface, self).__init__() - self.save_hyperparameters() + self.save_hyperparameters() #ignore=kargs.keys() self.n_classes = model.n_classes if model.name == 'AttTrans': - self.model = milmodel.MILModel(num_classes=self.n_classes, pretrained=True, mil_mode='att_trans', backbone_num_features=1024) + self.model = milmodel.MILModel(num_classes=self.n_classes, pretrained=True, mil_mode='att_trans') + elif model.name == 'vit': + self.model = timm.create_model('vit_base_patch16_224', pretrained=False, num_classes=self.n_classes) + self.model.patch_embed = nn.Sequential(nn.Linear(self.in_features, 768), nn.Identity()) + else: self.load_model() if self.n_classes>2: # self.aucm_loss = AUCM_MultiLabel(num_classes = self.n_classes, device=self.device) @@ -99,12 +126,14 @@ class ModelInterface(pl.LightningModule): self.optimizer = optimizer - + # print(kargs) self.save_path = kargs['log'] - - # self.in_features = kargs['in_features'] - # self.out_features = kargs['out_features'] - self.in_features = 2048 + + if 'in_features' in kargs.keys(): + self.in_features = kargs['in_features'] + else: self.in_features = 2048 + # # self.out_features = kargs['out_features'] + # self.in_features = 2048 self.out_features = 512 if Path(self.save_path).parts[3] == 'tcmr': temp = list(Path(self.save_path).parts) @@ -112,9 +141,13 @@ class ModelInterface(pl.LightningModule): temp[3] = 'tcmr_viral' self.save_path = '/'.join(temp) - # if kargs['task']: - # self.task = kargs['task'] - self.task = Path(self.save_path).parts[3] + # print(kargs['task']) + if kargs['task']: + self.task = kargs['task'] + # self.task = Path(self.save_path).parts[3] + # self.task = kargs['task'] + self.test_slide_OOP = 0 + self.test_patient_OOP = 0 #---->acc @@ -123,7 +156,8 @@ class ModelInterface(pl.LightningModule): # print(self.experiment) #---->Metrics if self.n_classes > 2: - self.AUROC = torchmetrics.AUROC(task='multiclass', num_classes = self.n_classes, average='weighted') + self.AUROC = torchmetrics.AUROC(task='multiclass', num_classes = self.n_classes, average=None) + self.accuracy = torchmetrics.Accuracy(task='multiclass', num_classes = self.n_classes, average='weighted') self.PRC = torchmetrics.PrecisionRecallCurve(task='multiclass', num_classes = self.n_classes) self.ROC = torchmetrics.ROC(task='multiclass', num_classes=self.n_classes) self.confusion_matrix = torchmetrics.ConfusionMatrix(task='multiclass', num_classes = self.n_classes) @@ -141,6 +175,7 @@ class ModelInterface(pl.LightningModule): else : self.AUROC = torchmetrics.AUROC(task='binary') + self.accuracy = torchmetrics.Accuracy(task='binary') # self.AUROC = torchmetrics.AUROC(num_classes=self.n_classes, average = 'weighted') self.PRC = torchmetrics.PrecisionRecallCurve(task='binary') self.ROC = torchmetrics.ROC(task='binary') @@ -150,9 +185,10 @@ class ModelInterface(pl.LightningModule): torchmetrics.Recall(task='binary'), torchmetrics.Precision(task='binary') ]) - self.confusion_matrix = torchmetrics.ConfusionMatrix(task='binary') - self.valid_metrics = metrics.clone(prefix = 'val_') - self.valid_patient_metrics = metrics.clone(prefix = 'val_patient_') + self.confusion_matrix = torchmetrics.ConfusionMatrix(task='binary') + self.train_metrics = metrics.clone(prefix = 'train_') + self.val_metrics = metrics.clone(prefix = 'val_') + self.val_patient_metrics = metrics.clone(prefix = 'val_patient') self.test_metrics = metrics.clone(prefix = 'test_') self.test_patient_metrics = metrics.clone(prefix = 'test_patient') @@ -165,19 +201,6 @@ class ModelInterface(pl.LightningModule): if self.backbone == 'features': self.model_ft = None - elif self.backbone == 'dino': - self.feature_extractor = AutoFeatureExtractor.from_pretrained('facebook/dino-vitb16') - self.model_ft = ViTModel.from_pretrained('facebook/dino-vitb16') - # elif self.backbone == 'inception': - # self.model_ft = torch.hub.load('pytorch/vision:v0.10.0', 'inception_v3', pretrained=True) - # self.model_ft.aux_logits = False - # for parameter in self.model_ft.parameters(): - # parameter.requires_grad = False - - # self.model_ft.fc = nn.Sequential(nn.Linear(model.fc.in_features, 10), - # nn.Linear(10, self) - # ) - elif self.backbone == 'resnet18': self.model_ft = models.resnet18(weights='IMAGENET1K_V1') # modules = list(resnet18.children())[:-1] @@ -189,18 +212,6 @@ class ModelInterface(pl.LightningModule): self.model_ft.fc = nn.Linear(512, self.out_features) - # res18 = nn.Sequential( - # *modules, - # ) - # for param in res18.parameters(): - # param.requires_grad = False - # self.model_ft = nn.Sequential( - # res18, - # nn.AdaptiveAvgPool2d(1), - # View((-1, 512)), - # nn.Linear(512, self.out_features), - # nn.GELU(), - # ) elif self.backbone == 'retccl': # import models.ResNet as ResNet self.model_ft = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) @@ -234,7 +245,6 @@ class ModelInterface(pl.LightningModule): nn.GELU(), ) elif self.backbone == 'simple': #mil-ab attention - feature_extracting = False self.model_ft = nn.Sequential( nn.Conv2d(3, 20, kernel_size=5), nn.ReLU(), @@ -242,22 +252,22 @@ class ModelInterface(pl.LightningModule): nn.Conv2d(20, 50, kernel_size=5), nn.ReLU(), nn.MaxPool2d(2, stride=2), - View((-1, 53*53)), - nn.Linear(53*53, self.out_features), + View((-1, 53*53*50)), + nn.Linear(53*53*50, 1024), nn.ReLU(), ) if self.model_ft: - self.example_input_array = torch.rand([1,1,3,224,224]) + self.example_input_array = torch.rand([1,1000,3,224,224]) else: self.example_input_array = torch.rand([1,1000,self.in_features]) - # print(self.model_ft[0].features[-1]) - # print(self.model_ft) - # def __build_ + self.train_step_outputs = [] + self.validation_step_outputs = [] + self.test_step_outputs = [] def forward(self, x): # print(x.shape) - if self.model_name == 'AttTrans': + if self.model_name == 'AttTrans' or self.model_name == 'MonaiMILModel': return self.model(x) if self.model_ft: # x = x.squeeze(0) @@ -265,9 +275,9 @@ class ModelInterface(pl.LightningModule): batch_size = x.shape[0] bag_size = x.shape[1] x = x.view(batch_size*bag_size, x.shape[2], x.shape[3], x.shape[4]) + feats = self.model_ft(x).unsqueeze(0) - # print(feats.shape) - # print(x.shape) + # print('feats: ', feats.shape) # if feats.dim() == 3: feats = feats.view(batch_size, bag_size, -1) else: @@ -278,12 +288,12 @@ class ModelInterface(pl.LightningModule): def step(self, input): + input = input.float() - # print(input.shape) - # logits, _ = self(input.contiguous()) logits = self(input.contiguous()) Y_hat = torch.argmax(logits, dim=1) - Y_prob = F.softmax(logits, dim = 1) + # Y_prob = F.softmax(logits, dim = 1) + Y_prob = torch.sigmoid(logits) # Y_hat = torch.argmax(logits, dim=1) @@ -319,7 +329,8 @@ class ModelInterface(pl.LightningModule): # self.log('total_loss', total_loss, prog_bar=True, on_epoch=True, logger=True, batch_size=1, sync_dist=True) - self.log('loss', loss, prog_bar=True, on_epoch=True, logger=True, batch_size=1, sync_dist=True) + self.log('loss', loss.item(), prog_bar=True, on_epoch=True, logger=True, batch_size=1, sync_dist=True) + # wandb.log('loss', loss, prog_bar=True, on_epoch=True, logger=True, batch_size=1, sync_dist=True) # self.log('lsce_loss', loss, prog_bar=True, on_epoch=True, logger=True, batch_size=1, sync_dist=True) # if self.current_epoch % 10 == 0: @@ -336,9 +347,10 @@ class ModelInterface(pl.LightningModule): # self.loggers[0].experiment.add_image(f'{self.current_epoch}/input', grid) - return {'loss': loss, 'Y_prob': Y_prob, 'Y_hat': Y_hat, 'label': label} + self.train_step_outputs.append({'loss': loss, 'Y_prob': Y_prob, 'Y_hat': Y_hat, 'label': label}) + return loss - def training_epoch_end(self, training_step_outputs): + def on_training_epoch_end(self): # for t in training_step_outputs: # probs = torch.cat([torch.cat(x[0]['Y_prob'], x[1]['Y_prob']) for x in training_step_outputs]) @@ -346,10 +358,10 @@ class ModelInterface(pl.LightningModule): # target = torch.stack([torch.stack(x[0]['label'], x[1]['label']) for x in training_step_outputs]) # print(t) - probs = torch.cat([x['Y_prob'] for x in training_step_outputs]) - max_probs = torch.cat([x['Y_hat'] for x in training_step_outputs]) + probs = torch.cat([x['Y_prob'] for x in self.train_step_outputs]) + max_probs = torch.cat([x['Y_hat'] for x in self.train_step_outputs]) # print(max_probs) - target = torch.cat([x['label'] for x in training_step_outputs], dim=0).int() + target = torch.cat([x['label'] for x in self.train_step_outputs], dim=0).int() # logits = torch.cat([x['logits'] for x in training_step_outputs], dim = 0) # probs = torch.cat([x['Y_prob'] for x in training_step_outputs]) @@ -371,17 +383,23 @@ class ModelInterface(pl.LightningModule): # print('max_probs: ', max_probs) # print('probs: ', probs) - if self.current_epoch % 10 == 0: - self.log_confusion_matrix(max_probs, target, stage='train') + self.log_dict(self.train_metrics(max_probs.squeeze(), target.squeeze()), + on_epoch = True, logger = True, sync_dist=True) + + if self.n_classes <=2: out_probs = probs[:,1] else: out_probs = probs - self.log('Train/auc', self.AUROC(out_probs, target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + if self.current_epoch % 10 == 0: + # self.log_confusion_matrix(max_probs, target, stage='train') + self.log_confusion_matrix(out_probs, target, stage='train', comment='slide') + + self.log('train/auc', self.AUROC(out_probs, target.squeeze()).mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) def validation_step(self, batch, batch_idx): - input, label, (wsi_name, patient) = batch + input, label, (wsi_name, _, patient) = batch # label = label.float() logits, Y_prob, Y_hat = self.step(input) @@ -392,8 +410,8 @@ class ModelInterface(pl.LightningModule): #---->acc log # Y = int(label[0][1]) # Y = torch.argmax(label) - loss = self.lsce_loss(logits, label) - # loss = cross_entropy_torch(logits, label) + # loss = self.lsce_loss(logits, label) + loss = cross_entropy_torch(logits, label) # one_hot_label = torch.nn.functional.one_hot(label, num_classes=self.n_classes) # print(logits) # print(label) @@ -413,65 +431,53 @@ class ModelInterface(pl.LightningModule): self.data[y]["correct"] += (int(y_hat) == y) # self.data[Y]["correct"] += (Y_hat.item() == Y) - self.log('val_loss', loss, prog_bar=True, on_epoch=True, logger=True, batch_size=1, sync_dist=True) + self.log('val_loss', loss.item(), prog_bar=True, on_epoch=True, logger=True, batch_size=1, sync_dist=True) + # print(wsi_name) # self.log('val_aucm_loss', aucm_loss, prog_bar=True, on_epoch=True, logger=True, batch_size=1, sync_dist=True) - return {'logits' : logits, 'Y_prob' : Y_prob, 'Y_hat' : Y_hat, 'label' : label.int(), 'name': wsi_name, 'patient': patient, 'loss':loss} - - - def validation_epoch_end(self, val_step_outputs): - - # print(val_step_outputs) - # print(torch.cat([x['Y_prob'] for x in val_step_outputs], dim=0)) - # print(torch.stack([x['Y_prob'] for x in val_step_outputs])) + self.validation_step_outputs.append({'logits' : logits, 'Y_prob' : Y_prob, 'Y_hat' : Y_hat, 'label' : label.int(), 'name': wsi_name, 'patient': patient, 'loss':loss}) + + + def on_validation_epoch_end(self): + + logits = torch.cat([x['logits'] for x in self.validation_step_outputs], dim = 0) + probs = torch.cat([x['Y_prob'] for x in self.validation_step_outputs]) + max_probs = torch.cat([x['Y_hat'] for x in self.validation_step_outputs]) + target = torch.cat([x['label'] for x in self.validation_step_outputs]) + slide_names = [x['name'] for x in self.validation_step_outputs] + slide_names = [item for sublist in slide_names for item in sublist] + # slide_names = list(sum(slide_names, ())) + # slide_names = + # for x in self.validation_step_outputs: + # print(x['name']) + patients = [x['patient'] for x in self.validation_step_outputs] + patients = [item for sublist in patients for item in sublist] + loss = torch.stack([x['loss'] for x in self.validation_step_outputs]) - logits = torch.cat([x['logits'] for x in val_step_outputs], dim = 0) - probs = torch.cat([x['Y_prob'] for x in val_step_outputs]) - max_probs = torch.cat([x['Y_hat'] for x in val_step_outputs]) - # print(max_probs) - target = torch.cat([x['label'] for x in val_step_outputs]) - slide_names = [x['name'] for x in val_step_outputs] - patients = [x['patient'] for x in val_step_outputs] - - loss = torch.stack([x['loss'] for x in val_step_outputs]) - - # print(loss) - # print(loss.mean()) - # print(loss.shape) - # loss = torch.cat([x['loss'] for x in val_step_outputs]) - # print(loss.shape) - - - # self.log('val_loss', cross_entropy_torch(logits.squeeze(), target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) - # self.log('val_loss', loss.mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) - - # print(logits) - # print(target) - self.log_dict(self.valid_metrics(max_probs.squeeze(), target.squeeze()), + self.log_dict(self.val_metrics(max_probs.squeeze(), target.squeeze()), on_epoch = True, logger = True, sync_dist=True) - if self.n_classes <=2: out_probs = probs[:,1] else: out_probs = probs - bin_auroc = binary_auroc(out_probs, target.squeeze()) - # print('val_bin_auroc: ', bin_auroc) - - # print(target.unique()) + self.log_confusion_matrix(out_probs, target, stage='val', comment='slide') if len(target.unique()) != 1: - self.log('val_auc', self.AUROC(out_probs, target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) - # self.log('val_patient_auc', self.AUROC(patient_score, patient_target), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + self.log('val_auc', self.AUROC(out_probs, target.squeeze()).mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) else: self.log('val_auc', 0.0, prog_bar=True, on_epoch=True, logger=True, sync_dist=True) - - - - # print(max_probs.squeeze(0).shape) - # print(target.shape) #----> log confusion matrix - self.log_confusion_matrix(max_probs, target, stage='val') + # print(max_probs, target) + # self.log_confusion_matrix(max_probs, target, stage='val') + + + # print(slide_names) + # print(patients) + # print(len(patients)) + # print(len(slide_names)) + # print(len(probs)) + # print(len(target)) #----> log per patient metrics complete_patient_dict = {} @@ -481,31 +487,21 @@ class ModelInterface(pl.LightningModule): patient_class_score = 0 for p, s, pr, t in zip(patients, slide_names, probs, target): - p = p[0] - # print(s[0]) - # print(pr) + # p = p[0] + # print(p) if p not in complete_patient_dict.keys(): complete_patient_dict[p] = {'scores':[(s[0], pr)], 'patient_score': 0} - # print((s,pr)) - # complete_patient_dict[p]['scores'] = [] - # print(t) patient_target.append(t) else: complete_patient_dict[p]['scores'].append((s[0], pr)) - # print(complete_patient_dict) - for p in complete_patient_dict.keys(): - # complete_patient_dict[p] = 0 score = [] for (slide, probs) in complete_patient_dict[p]['scores']: score.append(probs) - # print(score) score = torch.stack(score) - # print(score) if self.n_classes == 2: positive_positions = (score.argmax(dim=1) == 1).nonzero().squeeze() - # print(positive_positions) if positive_positions.numel() != 0: score = score[positive_positions] if len(score.shape) > 1: @@ -513,45 +509,47 @@ class ModelInterface(pl.LightningModule): patient_score.append(score) complete_patient_dict[p]['patient_score'] = score - correct_patients = [] - false_patients = [] - - for patient, label in zip(complete_patient_dict.keys(), patient_target): - if label == 0: - p_score = complete_patient_dict[patient]['patient_score'] - # print(torch.argmax(patient_score)) - if torch.argmax(p_score) == label: - correct_patients.append(patient) - else: - false_patients.append(patient) + + # print(complete_patient_dict) + # correct_patients = [] + # false_patients = [] + + # for patient, label in zip(complete_patient_dict.keys(), patient_target): + # # if label == 0: + # p_score = complete_patient_dict[patient]['patient_score'] + # # print(torch.argmax(patient_score)) + # if torch.argmax(p_score) == label: + # correct_patients.append(patient) + # else: + # false_patients.append(patient) patient_score = torch.stack(patient_score) + patient_target = torch.stack(patient_target) if self.n_classes <=2: patient_score = patient_score[:,1] - patient_target = torch.stack(patient_target) + + self.log_confusion_matrix(patient_score, patient_target, stage='val', comment='patient') + + # print(patient_score) # print(patient_target) - # patient_target = torch.cat(patient_target) - # self.log_confusion_matrix(max_probs, target, stage='test', comment='patient') - # print(patient_score.shape) - # print(patient_target.shape) - if len(patient_target.shape) >1: - patient_target = patient_target.squeeze() - self.log_roc_curve(patient_score, patient_target, stage='val') - # self.log_roc_curve(patient_score, patient_target.squeeze(), stage='test') - - # if self.current_epoch < 20: - # self.log('val_patient_auc', 0.0, prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + # print(patient_target.squeeze()) + # print(self.AUROC(patient_score, patient_target.squeeze())) + + + + # self.log_roc_curve(patient_score, patient_target.squeeze(), stage='val', comment='patient') + # self.log_pr_curve(patient_score, patient_target.squeeze(), stage='val', comment='patient') + if len(patient_target.unique()) != 1: - self.log('val_patient_auc', self.AUROC(patient_score, patient_target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + self.log('val_patient_auc', self.AUROC(patient_score, patient_target.squeeze()).mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) else: self.log('val_patient_auc', 0.0, prog_bar=True, on_epoch=True, logger=True, sync_dist=True) - self.log_dict(self.test_patient_metrics(patient_score, patient_target), + self.log_dict(self.val_patient_metrics(patient_score, patient_target), on_epoch = True, logger = True, sync_dist=True) - - + self.log('val_accuracy', self.accuracy(patient_score, patient_target), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) #---->acc log for c in range(self.n_classes): count = self.data[c]["count"] @@ -568,16 +566,45 @@ class ModelInterface(pl.LightningModule): self.count = self.count+1 random.seed(self.count*50) - + self.validation_step_outputs.clear() # free memory def test_step(self, batch, batch_idx): - input, label, (wsi_name, patient) = batch - # input, label, (wsi_name, batch_names, patient) = batch - # label = label.float() + input, label, (wsi_name, batch_names, patient) = batch # - logits, Y_prob, Y_hat = self.step(input) - loss = self.lsce_loss(logits, label) + # get attention ## + # input = input.float() + # logits = self(input.contiguous()) + # logits, attn = self(input.contiguous()) + # Y_hat = torch.argmax(logits, dim=1) + # Y_prob = torch.sigmoid(logits) + + # norm_result = self.reshape_transform(h) + # print(norm_result) + + # print('input: ', input.shape) + # print('attn: ', attn) + # print('attn: ', attn.softmax(dim=1)) + # for i in range(attn.shape[1]): + + # attn_mask = attn[0, i, ...].cpu().numpy() + # # print(attn_mask) + # attn_mask = (attn_mask - attn_mask.min())/(attn_mask.max() - attn_mask.min())*255 + # attn_mask = attn_mask.astype(np.uint8) + # # print(attn_mask.shape) + # # print(attn_mask) + + + # # mask = Image.fromarray(attn_mask) + # cv2.imwrite(f'/home/ylan/workspace/TransMIL-DeepGraft/test/attention_maps_3/{wsi_name[0]}_{i}.png', attn_mask) + # # mask = mask.convert('RGB') + # mask.save(f'/home/ylan/workspace/TransMIL-DeepGraft/test/attention_maps_2/{i}.png') + + # print(attn_mask) + ################## + logits, Y_prob, Y_hat = self.step(input) # Use this for standard inference. + + loss = self.loss(logits, label) #---->acc log # Y = int(label) for y, y_hat in zip(label, Y_hat): @@ -593,19 +620,31 @@ class ModelInterface(pl.LightningModule): # self.data[Y]["count"] += 1 # self.data[Y]["correct"] += (int(Y_hat) == Y) # self.data[Y]["correct"] += (Y_hat.item() == Y) + step_output_dict = {'logits' : logits, 'Y_prob' : Y_prob, 'Y_hat' : Y_hat, 'label' : label.int(), 'loss': loss, 'name': wsi_name, 'patient': patient} + self.test_step_outputs.append(step_output_dict) + + # def test_epoch_end(self, output_results): + def on_test_epoch_end(self): + + logits = torch.cat([x['logits'] for x in self.test_step_outputs], dim = 0) + # probs = torch.cat([x['Y_prob'] for x in self.test_step_outputs]) + probs = F.softmax(logits, dim = 1) + # Y_hat = torch.argmax(logits, dim=1) + + # max_probs = torch.cat([x['Y_hat'] for x in self.test_step_outputs]) + max_probs = torch.argmax(logits, dim=1) + + + target = torch.cat([x['label'] for x in self.test_step_outputs]) + # slide_names = [x['name'] for x in self.test_step_outputs] + # patients = [x['patient'] for x in self.test_step_outputs] + slide_names = [x['name'] for x in self.test_step_outputs] + slide_names = [item for sublist in slide_names for item in sublist] + patients = [x['patient'] for x in self.test_step_outputs] + patients = [item for sublist in patients for item in sublist] + loss = torch.stack([x['loss'] for x in self.test_step_outputs]) - return {'logits' : logits, 'Y_prob' : Y_prob, 'Y_hat' : Y_hat, 'label' : label.int(), 'loss': loss, 'name': wsi_name, 'patient': patient} - def test_epoch_end(self, output_results): - logits = torch.cat([x['logits'] for x in output_results], dim = 0) - probs = torch.cat([x['Y_prob'] for x in output_results]) - # max_probs = torch.stack([x['Y_hat'] for x in output_results]) - max_probs = torch.cat([x['Y_hat'] for x in output_results]) - target = torch.cat([x['label'] for x in output_results]) - slide_names = [x['name'] for x in output_results] - patients = [x['patient'] for x in output_results] - loss = torch.stack([x['loss'] for x in output_results]) - self.log_dict(self.test_metrics(max_probs.squeeze(), target.squeeze()), on_epoch = True, logger = True, sync_dist=True) self.log('test_loss', loss.mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) @@ -613,114 +652,129 @@ class ModelInterface(pl.LightningModule): if self.n_classes <=2: out_probs = probs[:,1] else: out_probs = probs - # max_probs = max_probs[:,1] if len(target.unique()) != 1: - self.log('test_auc', self.AUROC(out_probs, target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) - # self.log('val_patient_auc', self.AUROC(patient_score, patient_target), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + self.log('test_auc', self.AUROC(out_probs, target.squeeze()).mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) else: self.log('test_auc', 0.0, prog_bar=True, on_epoch=True, logger=True, sync_dist=True) - - + print('Test Slide AUROC: ', self.AUROC(out_probs, target.squeeze()).mean()) #----> log confusion matrix - self.log_confusion_matrix(max_probs, target, stage='test') + self.log_confusion_matrix(out_probs, target, stage='test', comment='slide') #----> log per patient metrics complete_patient_dict = {} patient_list = [] patient_score = [] patient_target = [] + patient_class_score = 0 for p, s, pr, t in zip(patients, slide_names, probs, target): - p = p[0] - # print(s[0]) - # print(pr) + # p = p[0] if p not in complete_patient_dict.keys(): - complete_patient_dict[p] = {'scores':[(s[0], pr)], 'patient_score': 0} - # print((s,pr)) - # complete_patient_dict[p]['scores'] = [] - # print(t) + complete_patient_dict[p] = {'scores':[(s, pr)], 'patient_score': 0} patient_target.append(t) else: - complete_patient_dict[p]['scores'].append((s[0], pr)) - - # print(complete_patient_dict) + complete_patient_dict[p]['scores'].append((s, pr)) for p in complete_patient_dict.keys(): - # complete_patient_dict[p] = 0 score = [] for (slide, probs) in complete_patient_dict[p]['scores']: score.append(probs) - # print(score) + score = torch.stack(score) - # print(score) - if self.n_classes == 2: + if self.n_classes <= 2: positive_positions = (score.argmax(dim=1) == 1).nonzero().squeeze() - # print(positive_positions) if positive_positions.numel() != 0: score = score[positive_positions] + if len(score.shape) > 1: + score = torch.mean(score, dim=0) #.cpu().detach().numpy() patient_score.append(score) + + complete_patient_dict[p]['patient_score'] = score - correct_patients = [] - false_patients = [] - - for patient, label in zip(complete_patient_dict.keys(), patient_target): - if label == 0: - p_score = complete_patient_dict[patient]['patient_score'] - # print(torch.argmax(patient_score)) - if torch.argmax(p_score) == label: - correct_patients.append(patient) - else: - false_patients.append(patient) - # print('Label 0:') - # print('Correct Patients: ') - # print(correct_patients) - # print('False Patients: ') - # print(false_patients) - # print('True positive slides: ') - # for p in correct_patients: - # print(complete_patient_dict[p]['scores']) - # print('False Negative Slides') - # for p in false_patients: - # print(complete_patient_dict[p]['scores']) + + + self.save_results(complete_patient_dict, patient_target) - patient_score = torch.stack(patient_score) + opt_threshold = self.load_thresholds(torch.stack(patient_score), torch.stack(patient_target), stage='test', comment='patient') + # print(opt_threshold) + if self.n_classes > 2: + opt_threshold = [0.5] * self.n_classes + else: + opt_threshold = [1-opt_threshold, opt_threshold] + # print(opt_threshold[1]) + # self.log_topk_patients(complete_patient_dict, patient_target, thresh=opt_threshold, stage='test') + self.log_topk_patients(list(complete_patient_dict.keys()), patient_score, patient_target, thresh=opt_threshold, stage='test') + + + # get topk patients + # correct_patients = [] + # false_patients = [] + + + # for patient, label in zip(complete_patient_dict.keys(), patient_target): + # if label == 0: + # p_score = complete_patient_dict[patient]['patient_score'] + # # print(torch.argmax(patient_score)) + # if torch.argmax(p_score) == label: + # correct_patients.append((patient, p_score)) + # else: + # false_patients.append((patient, p_score)) - # complete_patient_dict[p]['patient_score'] = patient_score + # print('correct_patients: ') + # print(correct_patients) + # print('false_patients: ') + # print(false_patients) - # print(patient_score) + + + + patient_score = torch.stack(patient_score) + patient_target = torch.stack(patient_target) + # max_patient_score = torch.argmax(patient_score, dim=1) if self.n_classes <=2: patient_score = patient_score[:,1] - patient_target = torch.stack(patient_target) - # print(patient_target) - # patient_target = torch.cat(patient_target) - # self.log_confusion_matrix(max_probs, target, stage='test', comment='patient') - self.log_roc_curve(patient_score, patient_target.squeeze(), stage='test') + self.log_confusion_matrix(patient_score, patient_target, stage='test', comment='patient') + # log roc curve + + print(patient_score.shape) + print(patient_target.shape) + self.log_roc_curve(patient_score, patient_target.squeeze(), stage='test', comment='patient') + # log pr curve + self.log_pr_curve(patient_score, patient_target.squeeze(), stage='test') + + + # print(patient_score) + + + + # res = bootstrap((patient_score.cpu().numpy(), patient_target.cpu().numpy()), sklearn.metrics.roc_auc_score, confidence_level=0.95, paired=True, vectorized=False) + + # print('bootstrap AUC: ', res) + # patient_AUC = self.AUROC(patient_score, patient_target.squeeze()) + + + + print('Test Patient AUC: ', self.AUROC(patient_score, patient_target.squeeze())) if len(patient_target.unique()) != 1: - self.log('test_patient_auc', self.AUROC(patient_score, patient_target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + self.log('test_patient_auc', self.AUROC(patient_score, patient_target.squeeze()).mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) else: self.log('test_patient_auc', 0.0, prog_bar=True, on_epoch=True, logger=True, sync_dist=True) self.log_dict(self.test_patient_metrics(patient_score, patient_target), on_epoch = True, logger = True, sync_dist=True) - - self.log_pr_curve(patient_score, patient_target.squeeze(), stage='test') - - - - #---->acc log for c in range(self.n_classes): count = self.data[c]["count"] @@ -732,15 +786,13 @@ class ModelInterface(pl.LightningModule): print('test class {}: acc {}, correct {}/{}'.format(c, acc, correct, count)) self.data = [{"count": 0, "correct": 0} for i in range(self.n_classes)] - - - - #---->random, if shuffle data, change seed if self.shuffle == True: self.count = self.count+1 random.seed(self.count*50) + self.test_step_outputs.clear() # free memory + def configure_optimizers(self): # optimizer_ft = optim.Adam(self.model_ft.parameters(), lr=self.optimizer.lr*0.1) # optimizer = create_optimizer(self.optimizer, self.model) @@ -752,7 +804,7 @@ class ModelInterface(pl.LightningModule): optimizer = create_optimizer(self.optimizer, self.model) # optimizer = PDSCA(self.model, loss_fn=self.loss, lr=self.optimizer.lr, margin=1.0, epoch_decay=2e-3, weight_decay=1e-5, device=self.device) # scheduler = {'scheduler': CosineAnnearlingLR(optimizer, mode='min', factor=0.5), 'monitor': 'val_loss', 'frequency': 5} - scheduler = {'scheduler': ReduceLROnPlateau(optimizer, mode='min', factor=0.1), 'monitor': 'val_loss', 'frequency': 10} + scheduler = {'scheduler': ReduceLROnPlateau(optimizer, mode='min', factor=0.5), 'monitor': 'val_loss', 'frequency': 10} # scheduler_aucm = {'scheduler': CosineAnnealingWarmRestarts(optimizer_aucm, T_0=20)} # return [optimizer_adam, optimizer_aucm], [scheduler_adam, scheduler_aucm] @@ -774,73 +826,68 @@ class ModelInterface(pl.LightningModule): # print(result.shape) return result - def load_model(self): - name = self.hparams.model.name - # Change the `trans_unet.py` file name to `TransUnet` class name. - # Please always name your model file name as `trans_unet.py` and - # class name or funciton name corresponding `TransUnet`. - if name == 'ViT': - self.model = ViT + + def save_results(self, complete_patient_dict, patient_target): - if '_' in name: - camel_name = ''.join([i.capitalize() for i in name.split('_')]) - else: - camel_name = name - try: - - Model = getattr(importlib.import_module( - f'models.{name}'), camel_name) - except: - raise ValueError('Invalid Module File Name or Invalid Class Name!') - self.model = self.instancialize(Model) + # print(complete_patient_dict) + label_mapping = LABEL_MAP[self.task] - # if backbone == 'retccl': - # self.model_ft = ResNet.resnet50(num_classes=self.n_classes, mlp=False, two_branch=False, normlinear=True) - # home = Path.cwd().parts[1] - # # self.model_ft.fc = nn.Identity() - # # self.model_ft.load_from_checkpoint(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth', strict=False) - # self.model_ft.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) - # for param in self.model_ft.parameters(): - # param.requires_grad = False - # self.model_ft.fc = nn.Linear(2048, self.out_features) + patient_output_dict = {'PATIENT': [], 'yTrue': []} + for i in range(self.n_classes): + # print(LABEL_MAP[self.task]) + class_label = LABEL_MAP[self.task][str(i)] + # if class_label not in patient_output_dict.keys(): + # patient_output_dict[class_label] = [] + class_scores = [complete_patient_dict[k]['patient_score'][i].cpu().numpy().item() for k in complete_patient_dict.keys()] + patient_output_dict[class_label] = class_scores + + patient_output_dict['PATIENT'] = list(complete_patient_dict.keys()) + patient_output_dict['yTrue'] = [int(t.cpu().numpy()) for t in patient_target] + + # json.dump(patient_output_dict, open(f'{self.loggers[0].log_dir}/results.json', 'w')) + out_df = pd.DataFrame.from_dict(patient_output_dict) + out_df.to_csv(f'{self.loggers[0].log_dir}/TEST_RESULT_PATIENT.csv') + + slide_output_dict = {'SLIDE': [], 'yTrue': []} - # elif backbone == 'resnet50': - # self.model_ft = resnet50_baseline(pretrained=True) - # for param in self.model_ft.parameters(): - # param.requires_grad = False + + for v in label_mapping.values(): + slide_output_dict[v] = [] + print(slide_output_dict) + for p, t in zip(list(complete_patient_dict.keys()), patient_target): + # print(complete_patient_dict[p]) + # target_label = label_mapping[str(t.item())]? - pass + # print(complete_patient_dict[p]) + for i in complete_patient_dict[p]['scores']: + # pprint(complete_patient_dict[p][i]) + # for x in complete_patient_dict[p][i]: + # print(i) + slide_name, score = i - def init_backbone(self): - self.backbone = 'retccl' - # import models.ResNet as ResNet - self.model_ft = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) - home = Path.cwd().parts[1] - # pre_model = - # self.model_ft.fc = nn.Identity() - # self.model_ft.load_from_checkpoint(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth', strict=False) - self.model_ft.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) - for param in self.model_ft.parameters(): - param.requires_grad = False - self.model_ft.fc = torch.nn.Identity() - self.model_ft.to(self.device) + score = score.cpu().numpy() + slide_output_dict['SLIDE'].append(slide_name) + # print(score) + for j in range(len(score)): + class_label = label_mapping[str(j)] + slide_output_dict[class_label].append(score[j]) + # print(score[j]) - def instancialize(self, Model, **other_args): - """ Instancialize a model using the corresponding parameters - from self.hparams dictionary. You can also input any args - to overwrite the corresponding value in self.hparams. - """ - class_args = inspect.getargspec(Model.__init__).args[1:] - inkeys = self.hparams.model.keys() - args1 = {} - for arg in class_args: - if arg in inkeys: - args1[arg] = getattr(self.hparams.model, arg) - args1.update(other_args) + slide_output_dict['yTrue'].append(t.item()) + + out_df = pd.DataFrame.from_dict(slide_output_dict) + out_df.to_csv(f'{self.loggers[0].log_dir}/TEST_RESULT_SLIDE.csv') + + + # slide_output_dict['SLIDE'] = list(complete_patient_dict) + + # slide_output_dict = {'Slide': [], 'yPred': [], 'yTrue': []} + + # for patient in complete_patient_dict: + - return Model(**args1) def log_image(self, tensor, stage, name): @@ -849,52 +896,204 @@ class ModelInterface(pl.LightningModule): tile = tile.astype(np.uint8) img = Image.fromarray(tile) self.loggers[0].experiment.add_figure(f'{stage}/{name}', img, self.current_epoch) + # self.logger.log_image(key=f'{stage}/{name}', images=img, caption=self.current_epoch) + + def get_optimal_operating_point(self, fpr, tpr, thresholds): + ''' + Returns: + optimal_fpr [Tensor] + optimal_tpr [Tensor] + optimal_threshold [Float] + ''' + + youden_j = tpr - fpr + optimal_idx = torch.argmax(youden_j) + # print(youden_j[optimal_idx]) + optimal_threshold = thresholds[optimal_idx].item() + # print(optimal_threshold) + optimal_tpr = tpr[optimal_idx] + optimal_fpr = fpr[optimal_idx] + + return optimal_fpr, optimal_tpr, optimal_threshold + + def log_topk_patients(self, patient_list, patient_scores, patient_target, thresh=[], stage='val', k=10): + + # patient_target = np.array([i.item() for i in patient_target]) + patient_target = torch.Tensor(patient_target) + patient_list = np.array(patient_list) + + patient_scores = np.array([i.cpu().numpy() for i in patient_scores]) + patient_scores = torch.Tensor(patient_scores) + + for n in range(self.n_classes): + + # print(n) + + n_patients = patient_list[patient_target == n] + n_scores = [s[n] for s in patient_scores[patient_target == n]] + print(n_patients) + + topk_csv_path = f'{self.loggers[0].log_dir}/{stage}_c{n}_top_patients.csv' + + topk_scores, topk_indices = torch.topk(torch.Tensor(n_scores), k, dim=0) + # # print(topk_indices) + # # print(patient_list) + + topk_scores = [i for i in topk_scores if i > thresh[n]] + topk_indices = topk_indices[:len(topk_scores)] + topk_patients = [n_patients[i] for i in topk_indices] + + topk_df = pd.DataFrame({'Patient': topk_patients, 'Scores': topk_scores}) + topk_df.to_csv(topk_csv_path, index=False) + + + def load_thresholds(self, probs, target, stage, comment=''): + threshold_csv_path = f'{self.loggers[0].log_dir}/val_thresholds.csv' + if not Path(threshold_csv_path).is_file(): + thresh_df = pd.DataFrame({'slide': [0.5], 'patient': [0.5]}) + thresh_df.to_csv(threshold_csv_path, index=False) + + thresh_df = pd.read_csv(threshold_csv_path) + if stage != 'test': + if self.n_classes <= 2: + fpr_list, tpr_list, thresholds = self.ROC(probs, target) + optimal_fpr, optimal_tpr, optimal_threshold = self.get_optimal_operating_point(fpr_list, tpr_list, thresholds) + print(f'Optimal Threshold {stage} {comment}: ', optimal_threshold) + thresh_df.at[0, comment] = optimal_threshold + thresh_df.to_csv(threshold_csv_path, index=False) + else: + optimal_threshold = 0.5 + elif stage == 'test': + + optimal_threshold = thresh_df.at[0, comment] + print(f'Optimal Threshold {stage} {comment}: ', optimal_threshold) + + return optimal_threshold + + def log_confusion_matrix(self, probs, target, stage, comment=''): # threshold + + # preds = torch.argmax(probs, dim=1) + # if self.n_classes <= 2: + # probs = probs[:,1] + + # read threshold file + threshold_csv_path = f'{self.loggers[0].log_dir}/val_thresholds.csv' + if not Path(threshold_csv_path).is_file(): + # thresh_dict = {'index': ['train', 'val'], 'columns': , 'data': [[0.5, 0.5], [0.5, 0.5]]} + thresh_df = pd.DataFrame({'slide': [0.5], 'patient': [0.5]}) + thresh_df.to_csv(threshold_csv_path, index=False) + + thresh_df = pd.read_csv(threshold_csv_path) + if stage != 'test': + if self.n_classes <= 2: + fpr_list, tpr_list, thresholds = self.ROC(probs, target) + optimal_fpr, optimal_tpr, optimal_threshold = self.get_optimal_operating_point(fpr_list, tpr_list, thresholds) + # print(f'Optimal Threshold {stage} {comment}: ', optimal_threshold) + thresh_df.at[0, comment] = optimal_threshold + thresh_df.to_csv(threshold_csv_path, index=False) + else: + optimal_threshold = 0.5 + elif stage == 'test': + + optimal_threshold = thresh_df.at[0, comment] + print(f'Optimal Threshold {stage} {comment}: ', optimal_threshold) + # optimal_threshold = 0.5 # manually change to val_optimal_threshold for testing + + # print(confmat) + # confmat = self.confusion_matrix(preds, target, threshold=optimal_threshold) + if self.n_classes <= 2: + confmat = confusion_matrix(probs, target, task='binary', threshold=optimal_threshold) + + else: + confmat = confusion_matrix(probs, target, task='multiclass', num_classes=self.n_classes) + # print(stage, comment) + # print(confmat) + cm_labels = LABEL_MAP[self.task].values() - def log_confusion_matrix(self, max_probs, target, stage): - confmat = self.confusion_matrix(max_probs, target) - print(confmat) - df_cm = pd.DataFrame(confmat.cpu().numpy(), index=range(self.n_classes), columns=range(self.n_classes)) - fig_ = sns.heatmap(df_cm, annot=True, fmt='d', cmap='Spectral').get_figure() + fig, ax = plt.subplots() + + # df_cm = pd.DataFrame(confmat.cpu().numpy(), index=range(self.n_classes), columns=range(self.n_classes)) + df_cm = pd.DataFrame(confmat.cpu().numpy(), index=cm_labels, columns=cm_labels) + # fig_ = sns.heatmap(df_cm, annot=True, fmt='d', cmap='Spectral').get_figure() + cm_plot = sns.heatmap(df_cm, annot=True, fmt='d', cmap='Spectral') + + # cm_plot = if stage == 'train': - self.loggers[0].experiment.add_figure(f'{stage}/Confusion matrix', fig_, self.current_epoch) + self.loggers[0].experiment.add_figure(f'{stage}/Confusion matrix', cm_plot.figure, self.current_epoch) + if len(self.loggers) > 2: + self.loggers[2].log_image(key=f'{stage}/Confusion matrix', images=[cm_plot.figure], caption=[self.current_epoch]) + # self.loggers[0].experiment.add_figure(f'{stage}/Confusion matrix', cm_plot.figure, self.current_epoch) else: - fig_.savefig(f'{self.loggers[0].log_dir}/cm_{stage}.png', dpi=400) + ax.set_title(f'{stage}_{comment}') + if comment: + stage += f'_{comment}' + # fig_.savefig(f'{self.loggers[0].log_dir}/cm_{stage}.png', dpi=400) + cm_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_cm.png', dpi=400) + + # fig.clf() + cm_plot.figure.clf() - fig_.clf() - def log_roc_curve(self, probs, target, stage, comment=''): + def log_roc_curve(self, probs, target, stage, comment=''): + fpr_list, tpr_list, thresholds = self.ROC(probs, target) + task_label_map = LABEL_MAP[self.task] + # self.AUROC(out_probs, target.squeeze()) fig, ax = plt.subplots(figsize=(6,6)) + if self.n_classes > 2: - auroc_score = multiclass_auroc(probs, target.squeeze(), num_classes=self.n_classes, average=None) + auroc_score = multiclass_auroc(probs, target, num_classes=self.n_classes, average=None) for i in range(len(fpr_list)): + + class_label = task_label_map[str(i)] + color = COLOR_MAP[i] fpr = fpr_list[i].cpu().numpy() tpr = tpr_list[i].cpu().numpy() - ax.plot(fpr, tpr, label=f'class_{i}, AUROC={auroc_score[i]}') + # ax.plot(fpr, tpr, label=f'class_{i}, AUROC={auroc_score[i]}') + df = pd.DataFrame(data = {'fpr': fpr, 'tpr': tpr}) + line_plot = sns.lineplot(data=df, x='fpr', y='tpr', label=f'{class_label}={auroc_score[i]:.2f}', legend='full', color=color) + else: - # print(fpr_list) - auroc_score = binary_auroc(probs, target.squeeze()) + auroc_score = binary_auroc(probs, target) + color = COLOR_MAP[0] + + + # thresholds = thresholds.cpu().numpy() + optimal_fpr, optimal_tpr, optimal_threshold = self.get_optimal_operating_point(fpr_list, tpr_list, thresholds) + # fpr = fpr_list.cpu().numpy() tpr = tpr_list.cpu().numpy() - - # df = pd.DataFrame(data = {'fpr': fpr, 'tpr': tpr}) - # line_plot = sns.lineplot(data=df, x='fpr', y='tpr', label=f'AUROC={auroc_score}', legend='full') - # sfig = line_plot.get_figure() - - ax.plot(fpr, tpr, label=f'AUROC={auroc_score}') + optimal_fpr = optimal_fpr.cpu().numpy() + optimal_tpr = optimal_tpr.cpu().numpy() + # youden_j = tpr - fpr + # optimal_idx = np.argmax(youden_j) + # # print(youden_j[optimal_idx]) + # # optimal_threshold = thresholds[optimal_idx] + # optimal_tpr = tpr[optimal_idx] + # optimal_fpr = fpr[optimal_idx] + + df = pd.DataFrame(data = {'fpr': fpr, 'tpr': tpr}) + line_plot = sns.lineplot(data=df, x='fpr', y='tpr', label=f'AUROC={auroc_score:.2f}', legend='full', color=color) + # ax.plot(fpr, tpr, label=f'AUROC={auroc_score:.2f}', color=color) + # ax.plot([optimal_fpr, optimal_fpr], [0,1], linestyle='--', color='black', label=f'OOP={optimal_threshold}') + ax.plot([0, 1], [optimal_tpr, optimal_tpr], linestyle='--', color='black', label=f'OOP={optimal_threshold}') + ax.plot([optimal_fpr, optimal_fpr], [0, 1], linestyle='--', color='black') + # ax.plot(fpr, tpr, label=f'AUROC={auroc_score}') + ax.plot([0,1], [0,1], linestyle='--', color='red') + ax.set_xlim([0,1]) ax.set_ylim([0,1]) - ax.set_xlabel('False positive rate') - ax.set_ylabel('True positive rate') + ax.set_xlabel('False positive rate (1-specificity)') + ax.set_ylabel('True positive rate (sensitivity)') ax.set_title('ROC curve') ax.legend(loc='lower right') # plt.savefig(f'{self.loggers[0].log_dir}/roc.jpg') @@ -902,8 +1101,14 @@ class ModelInterface(pl.LightningModule): if stage == 'train': self.loggers[0].experiment.add_figure(f'{stage}/ROC_{stage}', plt, self.current_epoch) else: - plt.savefig(f'{self.loggers[0].log_dir}/roc_{stage}.jpg', dpi=400) - # line_plot.figure.savefig(f'{self.loggers[0].log_dir}/roc_{stage}_sb.jpg') + # plt.savefig(f'{self.loggers[0].log_dir}/{stage}_roc.png', dpi=400) + line_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_{comment}_roc.png', dpi=400) + line_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_{comment}_roc.svg', format='svg') + + line_plot.figure.clf() + # fig.clf() + + def log_pr_curve(self, probs, target, stage, comment=''): @@ -920,30 +1125,41 @@ class ModelInterface(pl.LightningModule): if self.n_classes > 2: precision, recall, thresholds = multiclass_precision_recall_curve(probs, target, num_classes=self.n_classes) - - # print(precision) - # print(recall) + task_label_map = LABEL_MAP[self.task] for i in range(len(precision)): - pr = precision[i].cpu().numpy() - re = recall[i].cpu().numpy() - ax.plot(re, pr, label=f'class_{i}') + + class_label = task_label_map[str(i)] + color = COLOR_MAP[i] + + re = recall[i] + pr = precision[i] + + partial_auc = _auc_compute(re, pr, 1.0) + df = pd.DataFrame(data = {'re': re.cpu().numpy(), 'pr': pr.cpu().numpy()}) + line_plot = sns.lineplot(data=df, x='re', y='pr', label=f'{class_label}={partial_auc:.2f}', legend='full', color=color) + baseline = len(target[target==i]) / len(target) - ax.plot([0,1],[baseline, baseline], linestyle='--', label=f'Baseline_{i}') + ax.plot([0,1],[baseline, baseline], linestyle='--', label=f'Baseline={baseline:.2f}', color=color) else: # print(fpr_list) + color = COLOR_MAP[0] precision, recall, thresholds = binary_precision_recall_curve(probs, target) baseline = len(target[target==1]) / len(target) - pr = precision.cpu().numpy() - re = recall.cpu().numpy() - ax.plot(re, pr) + + pr = precision + re = recall + partial_auc = _auc_compute(re, pr, 1.0) + # ax.plot(re, pr) + df = pd.DataFrame(data = {'re': re.cpu().numpy(), 'pr': pr.cpu().numpy()}) + line_plot = sns.lineplot(data=df, x='re', y='pr', label=f'{partial_auc:.2f}', legend='full', color=color) + - ax.plot([0,1], [baseline, baseline], linestyle='--', label='Baseline') + ax.plot([0,1], [baseline, baseline], linestyle='--', label=f'Baseline={baseline:.2f}', color=color) ax.set_xlim([0,1]) ax.set_ylim([0,1]) - ax.set_xlabel('Recall') ax.set_ylabel('Precision') ax.set_title('PR curve') @@ -953,9 +1169,50 @@ class ModelInterface(pl.LightningModule): if stage == 'train': self.loggers[0].experiment.add_figure(f'{stage}/PR_{stage}', fig, self.current_epoch) else: - fig.savefig(f'{self.loggers[0].log_dir}/pr_{stage}.jpg', dpi=400) + # fig.savefig(f'{self.loggers[0].log_dir}/pr_{stage}.jpg', dpi=400) + line_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_pr.png', dpi=400) + line_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_pr.svg', format='svg') - + line_plot.figure.clf() + + def load_model(self): + name = self.hparams.model.name + # Change the `trans_unet.py` file name to `TransUnet` class name. + # Please always name your model file name as `trans_unet.py` and + # class name or funciton name corresponding `TransUnet`. + if name == 'ViT': + self.model = ViT + + if '_' in name: + camel_name = ''.join([i.capitalize() for i in name.split('_')]) + else: + camel_name = name + try: + + Model = getattr(importlib.import_module( + f'models.{name}'), camel_name) + except: + raise ValueError('Invalid Module File Name or Invalid Class Name!') + self.model = self.instancialize(Model) + + pass + + + def instancialize(self, Model, **other_args): + """ Instancialize a model using the corresponding parameters + from self.hparams dictionary. You can also input any args + to overwrite the corresponding value in self.hparams. + """ + class_args = inspect.getargspec(Model.__init__).args[1:] + inkeys = self.hparams.model.keys() + args1 = {} + for arg in class_args: + if arg in inkeys: + args1[arg] = getattr(self.hparams.model, arg) + args1.update(other_args) + + + return Model(**args1) class View(nn.Module): def __init__(self, shape): @@ -969,3 +1226,17 @@ class View(nn.Module): out = input.view(*self.shape) return out +class RETCCL_FE(pl.LightningModule): + def __init__(self): + super(RETCCL_FE, self).__init__() + self.model_ft = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) + home = Path.cwd().parts[1] + self.model_ft.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) + for param in self.model_ft.parameters(): + param.requires_grad = False + self.model_ft.fc = torch.nn.Identity() + + def forward(self, x): + return self.model_ft(x) + + diff --git a/code/models/model_interface_classic.py b/code/models/model_interface_classic.py index d3eda00..d068487 100644 --- a/code/models/model_interface_classic.py +++ b/code/models/model_interface_classic.py @@ -11,6 +11,7 @@ from matplotlib import pyplot as plt import cv2 from PIL import Image from pytorch_pretrained_vit import ViT +from pprint import pprint #----> from MyOptimizer import create_optimizer @@ -20,6 +21,7 @@ from utils.custom_resnet50 import resnet50_baseline from timm.loss import AsymmetricLossSingleLabel from timm.loss import LabelSmoothingCrossEntropy, SoftTargetCrossEntropy, JsdCrossEntropy +from transformers import ViTForImageClassification from libauc.losses import AUCMLoss, AUCM_MultiLabel, CompositionalAUCLoss from libauc.optimizers import PESG, PDSCA #----> @@ -28,6 +30,10 @@ import torch.nn as nn import torch.nn.functional as F import torchmetrics from torchmetrics.functional import stat_scores +from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve, confusion_matrix +from torchmetrics.utilities.compute import _auc_compute_without_check, _auc_compute + + from torch import optim as optim from torch.optim.lr_scheduler import ReduceLROnPlateau, CosineAnnealingWarmRestarts @@ -54,6 +60,34 @@ from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget from captum.attr import LayerGradCam import models.ResNet as ResNet +import timm + +LABEL_MAP = { + # 'bin': {'0': 0, '1': 1, '2': 1, '3': 1, '4': 1, '5': None}, + # 'tcmr_viral': {'0': None, '1': 0, '2': None, '3': None, '4': 1, '5': None}, + # 'no_viral': {'0': 0, '1': 1, '2': 2, '3': 3, '4': None, '5': None}, + # 'no_other': {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': None}, + # 'no_stable': {'0': None, '1': 1, '2': 2, '3': 3, '4': None, '5': None}, + # 'all': {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5}, + 'rejections': {'0': 'TCMR', '1': 'ABMR', '2': 'Mixed'}, + 'norm_rest': {'0': 'Normal', '1': 'Disease'}, + 'rej_rest': {'0': 'Rejection', '1': 'Rest'}, + 'norm_rej_rest': {'0': 'Normal', '1': 'Rejection', '2': 'Rest'}, + +} +COLOR_MAP = ['#377eb8', '#ff7f00', '#4daf4a', + '#f781bf', '#a65628', '#984ea3', + '#999999', '#e41a1c', '#dede00'] + + +class VisionTransformerLogit(): + def __init__(self, variant='vit_base_patch16_224', pretrained=True): + self.model = timm.create_model(variant, pretrained=pretrained) + + def forward(self, x): + x = self.model.forward_features(x) + x = self.model.forward_head(x, pre_logits=True) + return x class FeatureExtractor(pl.LightningDataModule): def __init__(self, model_name, n_classes): @@ -102,8 +136,8 @@ class ModelInterface_Classic(pl.LightningModule): self.save_path = '/'.join(temp) # if kargs['task']: - # self.task = kargs['task'] - self.task = Path(self.save_path).parts[3] + self.task = kargs['task'] + # self.task = Path(self.save_path).parts[3] #---->acc @@ -112,7 +146,7 @@ class ModelInterface_Classic(pl.LightningModule): # print(self.experiment) #---->Metrics if self.n_classes > 2: - self.AUROC = torchmetrics.AUROC(task='multiclass', num_classes = self.n_classes, average='macro') + self.AUROC = torchmetrics.AUROC(task='multiclass', num_classes = self.n_classes, average=None) self.PRC = torchmetrics.PrecisionRecallCurve(task='multiclass', num_classes = self.n_classes) self.ROC = torchmetrics.ROC(task='multiclass', num_classes=self.n_classes) self.confusion_matrix = torchmetrics.ConfusionMatrix(task='multiclass', num_classes = self.n_classes) @@ -175,12 +209,12 @@ class ModelInterface_Classic(pl.LightningModule): # frozen_layers = 8 # for child in self.model.children(): - ct = 0 - for child in self.model.children(): - ct += 1 - if ct < 7: - for parameter in child.parameters(): - parameter.requires_grad=False + # ct = 0 + # for child in self.model.children(): + # ct += 1 + # if ct < 7: + # for parameter in child.parameters(): + # parameter.requires_grad=False self.model.fc = nn.Sequential( nn.Linear(self.model.fc.in_features, self.n_classes), ) @@ -204,35 +238,53 @@ class ModelInterface_Classic(pl.LightningModule): nn.Linear(512, self.n_classes) ) elif self.model_name == 'vit': - self.model = ViT('B_32_imagenet1k', pretrained = True) #vis=vis + home = Path.cwd().parts[1] + # self.model = ViT('B_32_imagenet1k', pretrained = True) #vis=vis + self.model = timm.create_model('vit_base_patch16_224', pretrained=True, num_classes=self.n_classes) + # model = timm.create_model(“vit_base_patch16_224”, pretrained=True) for param in self.model.parameters(): param.requires_grad = False - self.model.fc = nn.Linear(self.model.fc.in_features, self.n_classes) + outputs_attrs = self.n_classes + num_inputs = self.model.head.in_features + last_layer = nn.Linear(num_inputs, outputs_attrs) + self.model.head = last_layer + # model_name_or_path = f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/vit-base-patch16-224/' + # 'code/models/ckpt/vit-base-patch16-224' + # self.model = ViTForImageClassification.from_pretrained( + # model_name_or_path, + # num_labels=self.n_classes, + # # id2label={str(i): c for i, c in enumerate(self.n_classes)}, + # # label2id={c: str(i) for i, c in enumerate(self.n_classes)} + # ) + # for param in self.model.parameters(): + # param.requires_grad = False + # self.model.fc = nn.Linear(self.model.fc.in_features, self.n_classes) # print(self.model) # input_size = 384 elif self.model_name == 'resnet50': - self.model = resnet50_baseline(pretrained=True) - ct = 0 - for child in self.model.children(): - ct += 1 - if ct < len(list(self.model.children())) - 10: - for parameter in child.parameters(): - parameter.requires_grad=False + # self.model = resnet50_baseline(pretrained=True) + self.model = models.resnet50(weights='IMAGENET1K_V1') + # ct = 0 + # for child in self.model.children(): + # ct += 1 + # if ct < len(list(self.model.children())) - 2: + # for parameter in child.parameters(): + # parameter.requires_grad=False self.model.fc = nn.Sequential( nn.Linear(self.model.fc.in_features, self.n_classes), ) elif self.model_name == 'efficientnet': - efficientnet = torch.hub.load('NVIDIA/DeepLearningExamples:torchhub', 'nvidia_efficientnet_widese_b0', pretrained=True) - for param in efficientnet.parameters(): - param.requires_grad = False + self.model = torch.hub.load('NVIDIA/DeepLearningExamples:torchhub', 'nvidia_efficientnet_widese_b0', pretrained=True) + # for param in efficientnet.parameters(): + # param.requires_grad = False # efn = list(efficientnet.children())[:-1] - efficientnet.classifier.fc = nn.Linear(1280, self.out_features) - self.model = nn.Sequential( - efficientnet, - ) + self.model.classifier.fc = nn.Linear(1280, self.n_classes) + # self.model = nn.Sequential( + # efficientnet, + # ) elif self.model_name == 'simple': #mil-ab attention feature_extracting = False self.model = nn.Sequential( @@ -251,7 +303,8 @@ class ModelInterface_Classic(pl.LightningModule): def forward(self, x): # print(x.shape) - x = x.squeeze(0) + if len(x.shape) > 4: + x = x.squeeze(0) # print(x.shape) return self.model(x) @@ -260,6 +313,7 @@ class ModelInterface_Classic(pl.LightningModule): input = input.float() # input = input # logits, _ = self(input.contiguous()) + logits = self(input.contiguous()) # logits = logits # print(F.softmax(logits)) @@ -287,7 +341,6 @@ class ModelInterface_Classic(pl.LightningModule): logits, Y_prob, Y_hat = self.step(input) loss = self.loss(logits, label) - for y, y_hat in zip(label, Y_hat): y = int(y) @@ -322,8 +375,13 @@ class ModelInterface_Classic(pl.LightningModule): print('class {}: acc {}, correct {}/{}'.format(c, acc, correct, count)) self.data = [{"count": 0, "correct": 0} for i in range(self.n_classes)] + if self.n_classes <=2: + out_probs = probs[:,1] + else: out_probs = probs + + if self.current_epoch % 10 == 0: - self.log_confusion_matrix(max_probs, target.squeeze(), stage='train') + self.log_confusion_matrix(out_probs, target.squeeze(), stage='train', comment='slide') # print(probs) # print(target) @@ -385,15 +443,18 @@ class ModelInterface_Classic(pl.LightningModule): if self.n_classes <=2: out_probs = probs[:,1] + else: out_probs = probs + + self.log_confusion_matrix(out_probs, target, stage='val', comment='slide') if len(target.unique()) != 1: - self.log('val_auc', self.AUROC(out_probs, target).squeeze(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + self.log('val_auc', self.AUROC(out_probs, target).squeeze().mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) # self.log('val_patient_auc', self.AUROC(patient_score, patient_target), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) else: self.log('val_auc', 0.0, prog_bar=True, on_epoch=True, logger=True, sync_dist=True) - self.log_confusion_matrix(max_probs, target.squeeze(), stage='val') + # self.log_confusion_matrix(max_probs, target.squeeze(), stage='val') #----> log per patient metrics complete_patient_dict = {} @@ -411,7 +472,6 @@ class ModelInterface_Classic(pl.LightningModule): complete_patient_dict[p][s] = [] complete_patient_dict[p][s].append(pr) - for p in complete_patient_dict.keys(): score = [] for slide in complete_patient_dict[p].keys(): @@ -438,8 +498,15 @@ class ModelInterface_Classic(pl.LightningModule): patient_target = torch.stack(patient_target) if self.n_classes <=2: patient_score = patient_score[:,1] + + self.log_confusion_matrix(patient_score, patient_target, stage='val', comment='patient') + + self.log_roc_curve(patient_score, patient_target.squeeze(), stage='val', comment='patient') + self.log_pr_curve(patient_score, patient_target.squeeze(), stage='val', comment='patient') + + if len(patient_target.unique()) != 1: - self.log('val_patient_auc', self.AUROC(patient_score, patient_target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + self.log('val_patient_auc', self.AUROC(patient_score, patient_target.squeeze()).mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) else: self.log('val_patient_auc', 0.0, prog_bar=True, on_epoch=True, logger=True, sync_dist=True) @@ -478,15 +545,19 @@ class ModelInterface_Classic(pl.LightningModule): logits, Y_prob, Y_hat = self.step(input) #---->acc log - Y = int(label) + # Y = int(label) # Y = torch.argmax(label) - - # print(Y_hat) - self.data[Y]["count"] += 1 - self.data[Y]["correct"] += (int(Y_hat) == Y) + for y, y_hat in zip(label, Y_hat): + y = int(y) + # print(Y_hat) + self.data[y]["count"] += 1 + self.data[y]["correct"] += (int(y_hat) == y) + # # print(Y_hat) + # self.data[Y]["count"] += 1 + # self.data[Y]["correct"] += (int(Y_hat) == Y) # self.data[Y]["correct"] += (Y_hat.item() == Y) - return {'logits' : logits, 'Y_prob' : Y_prob, 'Y_hat' : Y_hat, 'label' : label, 'name': wsi_name, 'patient': patient} + return {'logits' : logits, 'Y_prob' : Y_prob, 'Y_hat' : Y_hat, 'label' : label, 'name': wsi_name, 'patient': patient, 'tile_name': batch_names} def test_epoch_end(self, output_results): @@ -501,10 +572,8 @@ class ModelInterface_Classic(pl.LightningModule): for x in output_results: patients += list(x['patient']) tile_name = [] - for x in output_results: - tile_name += list(x['tile_name']) - - + # for x in output_results: + # tile_name += list(x['tile_name']) # logits = torch.cat([x['logits'] for x in output_results], dim = 0) # probs = torch.cat([x['Y_prob'] for x in output_results]) @@ -515,25 +584,30 @@ class ModelInterface_Classic(pl.LightningModule): self.log_dict(self.test_metrics(max_probs.squeeze(), target.squeeze()), on_epoch = True, logger = True, sync_dist=True) - self.log('test_loss', cross_entropy_torch(logits.squeeze(), target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + # self.log('test_loss', cross_entropy_torch(logits.squeeze(), target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) # if self.n_classes <=2: # out_probs = probs[:,1] # max_probs = max_probs[:,1] + if self.n_classes <=2: out_probs = probs[:,1] + else: out_probs = probs + if len(target.unique()) != 1: - - self.log('test_auc', self.AUROC(out_probs, target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + + # print(target.shape) + target = target.long() + self.log('test_auc', self.AUROC(out_probs, target.squeeze()).mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) # self.log('val_patient_auc', self.AUROC(patient_score, patient_target), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) else: self.log('test_auc', 0.0, prog_bar=True, on_epoch=True, logger=True, sync_dist=True) - + #----> log confusion matrix - self.log_confusion_matrix(max_probs.squeeze(), target.squeeze(), stage='test') + self.log_confusion_matrix(out_probs, target, stage='test', comment='slide') #----> log per patient metrics complete_patient_dict = {} @@ -573,25 +647,45 @@ class ModelInterface_Classic(pl.LightningModule): if len(score.shape) > 1: score = torch.mean(score, dim=0) patient_score.append(score) + complete_patient_dict[p]['patient_score'] = score + + + # print(complete_patient_dict) + self.save_results(complete_patient_dict, patient_target) + + opt_threshold = self.load_thresholds(torch.stack(patient_score), torch.stack(patient_target), stage='test', comment='patient') + + if self.n_classes > 2: + opt_threshold = [0.5] * self.n_classes + else: + opt_threshold = [1-opt_threshold, opt_threshold] + # print(opt_threshold[1]) + self.log_topk_patients(list(complete_patient_dict.keys()), patient_score, thresh=opt_threshold, stage='test') + patient_score = torch.stack(patient_score) patient_target = torch.stack(patient_target) if self.n_classes <=2: patient_score = patient_score[:,1] + + self.log_confusion_matrix(patient_score, patient_target, stage='test', comment='patient') + # log roc curve + self.log_roc_curve(patient_score, patient_target.squeeze(), stage='test', comment='patient') + # log pr curve + self.log_pr_curve(patient_score, patient_target.squeeze(), stage='test') + + print('Test Patient AUC: ', self.AUROC(patient_score, patient_target.squeeze())) + if len(patient_target.unique()) != 1: - self.log('test_patient_auc', self.AUROC(patient_score, patient_target.squeeze()), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) + self.log('test_patient_auc', self.AUROC(patient_score, patient_target.squeeze()).mean(), prog_bar=True, on_epoch=True, logger=True, sync_dist=True) else: self.log('test_patient_auc', 0.0, prog_bar=True, on_epoch=True, logger=True, sync_dist=True) - self.log_dict(self.valid_patient_metrics(patient_score, patient_target), + self.log_dict(self.test_patient_metrics(patient_score, patient_target), on_epoch = True, logger = True, sync_dist=True) - # precision, recall, thresholds = self.PRC(probs, target) - - - #---->acc log for c in range(self.n_classes): count = self.data[c]["count"] @@ -700,47 +794,316 @@ class ModelInterface_Classic(pl.LightningModule): img = Image.fromarray(tile) self.loggers[0].experiment.add_figure(f'{stage}/{name}', img, self.current_epoch) + def get_optimal_operating_point(self, fpr, tpr, thresholds): + ''' + Returns: + optimal_fpr [Tensor] + optimal_tpr [Tensor] + optimal_threshold [Float] + ''' + + youden_j = tpr - fpr + optimal_idx = torch.argmax(youden_j) + # print(youden_j[optimal_idx]) + optimal_threshold = thresholds[optimal_idx].item() + # print(optimal_threshold) + optimal_tpr = tpr[optimal_idx] + optimal_fpr = fpr[optimal_idx] + + return optimal_fpr, optimal_tpr, optimal_threshold + + def log_topk_patients(self, patient_list, patient_scores, thresh=[], stage='val', k=10): + + for n in range(self.n_classes): + # p_scores = + p_score = [x[n] for x in patient_scores] + topk_csv_path = f'{self.loggers[0].log_dir}/{stage}_c{n}_top_patients.csv' + - def log_confusion_matrix(self, max_probs, target, stage): - confmat = self.confusion_matrix(max_probs, target) + topk_scores, topk_indices = torch.topk(torch.Tensor(p_score), k, dim=0) + + # print(topk_indices) + # print(patient_list) + + topk_scores = [i for i in topk_scores if i > thresh[n]] + topk_indices = topk_indices[:len(topk_scores)] + topk_patients = [patient_list[i] for i in topk_indices] + + topk_df = pd.DataFrame({'Patient': topk_patients, 'Scores': topk_scores}) + topk_df.to_csv(topk_csv_path, index=False) + + + def load_thresholds(self, probs, target, stage, comment=''): + threshold_csv_path = f'{self.loggers[0].log_dir}/val_thresholds.csv' + if not Path(threshold_csv_path).is_file(): + thresh_df = pd.DataFrame({'slide': [0.5], 'patient': [0.5]}) + thresh_df.to_csv(threshold_csv_path, index=False) + + thresh_df = pd.read_csv(threshold_csv_path) + if stage != 'test': + if self.n_classes <= 2: + fpr_list, tpr_list, thresholds = self.ROC(probs, target) + optimal_fpr, optimal_tpr, optimal_threshold = self.get_optimal_operating_point(fpr_list, tpr_list, thresholds) + print(f'Optimal Threshold {stage} {comment}: ', optimal_threshold) + thresh_df.at[0, comment] = optimal_threshold + thresh_df.to_csv(threshold_csv_path, index=False) + else: + optimal_threshold = 0.5 + elif stage == 'test': + + optimal_threshold = thresh_df.at[0, comment] + print(f'Optimal Threshold {stage} {comment}: ', optimal_threshold) + + return optimal_threshold + + def log_confusion_matrix(self, probs, target, stage, comment=''): + # confmat = self.confusion_matrix(max_probs, target) + # print(confmat) + # df_cm = pd.DataFrame(confmat.cpu().numpy(), index=range(self.n_classes), columns=range(self.n_classes)) + # fig_ = sns.heatmap(df_cm, annot=True, fmt='d', cmap='Spectral').get_figure() + # if stage == 'train': + # self.loggers[0].experiment.add_figure(f'{stage}/Confusion matrix', fig_, self.current_epoch) + # else: + # fig_.savefig(f'{self.loggers[0].log_dir}/cm_{stage}.png', dpi=400) + + # fig_.clf() + threshold_csv_path = f'{self.loggers[0].log_dir}/val_thresholds.csv' + if not Path(threshold_csv_path).is_file(): + # thresh_dict = {'index': ['train', 'val'], 'columns': , 'data': [[0.5, 0.5], [0.5, 0.5]]} + thresh_df = pd.DataFrame({'slide': [0.5], 'patient': [0.5]}) + thresh_df.to_csv(threshold_csv_path, index=False) + + thresh_df = pd.read_csv(threshold_csv_path) + if stage != 'test': + if self.n_classes <= 2: + fpr_list, tpr_list, thresholds = self.ROC(probs, target) + optimal_fpr, optimal_tpr, optimal_threshold = self.get_optimal_operating_point(fpr_list, tpr_list, thresholds) + # print(f'Optimal Threshold {stage} {comment}: ', optimal_threshold) + thresh_df.at[0, comment] = optimal_threshold + thresh_df.to_csv(threshold_csv_path, index=False) + else: + optimal_threshold = 0.5 + elif stage == 'test': + + optimal_threshold = thresh_df.at[0, comment] + print(f'Optimal Threshold {stage} {comment}: ', optimal_threshold) + if self.n_classes <= 2: + confmat = confusion_matrix(probs, target, task='binary', threshold=optimal_threshold) + + else: + confmat = confusion_matrix(probs, target, task='multiclass', num_classes=self.n_classes) + print(stage, comment) print(confmat) - df_cm = pd.DataFrame(confmat.cpu().numpy(), index=range(self.n_classes), columns=range(self.n_classes)) - fig_ = sns.heatmap(df_cm, annot=True, fmt='d', cmap='Spectral').get_figure() + cm_labels = LABEL_MAP[self.task].values() + + fig, ax = plt.subplots() + + # df_cm = pd.DataFrame(confmat.cpu().numpy(), index=range(self.n_classes), columns=range(self.n_classes)) + df_cm = pd.DataFrame(confmat.cpu().numpy(), index=cm_labels, columns=cm_labels) + # fig_ = sns.heatmap(df_cm, annot=True, fmt='d', cmap='Spectral').get_figure() + cm_plot = sns.heatmap(df_cm, annot=True, fmt='d', cmap='Spectral') + + # cm_plot = if stage == 'train': - self.loggers[0].experiment.add_figure(f'{stage}/Confusion matrix', fig_, self.current_epoch) + self.loggers[0].experiment.add_figure(f'{stage}/Confusion matrix', cm_plot.figure, self.current_epoch) + if len(self.loggers) > 2: + self.loggers[2].log_image(key=f'{stage}/Confusion matrix', images=[cm_plot.figure], caption=[self.current_epoch]) + # self.loggers[0].experiment.add_figure(f'{stage}/Confusion matrix', cm_plot.figure, self.current_epoch) else: - fig_.savefig(f'{self.loggers[0].log_dir}/cm_{stage}.png', dpi=400) + ax.set_title(f'{stage}_{comment}') + if comment: + stage += f'_{comment}' + # fig_.savefig(f'{self.loggers[0].log_dir}/cm_{stage}.png', dpi=400) + cm_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_cm.png', dpi=400) - fig_.clf() + # fig.clf() + cm_plot.figure.clf() def log_roc_curve(self, probs, target, stage, comment=''): - + + fpr_list, tpr_list, thresholds = self.ROC(probs, target) - # print(fpr_list) - # print(tpr_list) - plt.figure(1) + task_label_map = LABEL_MAP[self.task] + + fig, ax = plt.subplots(figsize=(6,6)) + if self.n_classes > 2: + auroc_score = multiclass_auroc(probs, target, num_classes=self.n_classes, average=None) for i in range(len(fpr_list)): + + class_label = task_label_map[str(i)] + color = COLOR_MAP[i] + fpr = fpr_list[i].cpu().numpy() tpr = tpr_list[i].cpu().numpy() - plt.plot(fpr, tpr, label=f'class_{i}') + # ax.plot(fpr, tpr, label=f'class_{i}, AUROC={auroc_score[i]}') + df = pd.DataFrame(data = {'fpr': fpr, 'tpr': tpr}) + line_plot = sns.lineplot(data=df, x='fpr', y='tpr', label=f'{class_label}={auroc_score[i]:.2f}', legend='full', color=color) + + else: + auroc_score = binary_auroc(probs, target) + color = COLOR_MAP[0] + + + # thresholds = thresholds.cpu().numpy() + + optimal_fpr, optimal_tpr, optimal_threshold = self.get_optimal_operating_point(fpr_list, tpr_list, thresholds) + # + fpr = fpr_list.cpu().numpy() + tpr = tpr_list.cpu().numpy() + optimal_fpr = optimal_fpr.cpu().numpy() + optimal_tpr = optimal_tpr.cpu().numpy() + # youden_j = tpr - fpr + # optimal_idx = np.argmax(youden_j) + # # print(youden_j[optimal_idx]) + # # optimal_threshold = thresholds[optimal_idx] + # optimal_tpr = tpr[optimal_idx] + # optimal_fpr = fpr[optimal_idx] + + + + df = pd.DataFrame(data = {'fpr': fpr, 'tpr': tpr}) + line_plot = sns.lineplot(data=df, x='fpr', y='tpr', label=f'AUROC={auroc_score:.2f}', legend='full', color=color) + # ax.plot(fpr, tpr, label=f'AUROC={auroc_score:.2f}', color=color) + # ax.plot([optimal_fpr, optimal_fpr], [0,1], linestyle='--', color='black', label=f'OOP={optimal_threshold}') + ax.plot([0, 1], [optimal_tpr, optimal_tpr], linestyle='--', color='black', label=f'OOP={optimal_threshold}') + ax.plot([optimal_fpr, optimal_fpr], [0, 1], linestyle='--', color='black') + # ax.plot(fpr, tpr, label=f'AUROC={auroc_score}') + ax.plot([0,1], [0,1], linestyle='--', color='red') + + ax.set_xlim([0,1]) + ax.set_ylim([0,1]) + ax.set_xlabel('False positive rate (1-specificity)') + ax.set_ylabel('True positive rate (sensitivity)') + ax.set_title('ROC curve') + ax.legend(loc='lower right') + # plt.savefig(f'{self.loggers[0].log_dir}/roc.jpg') + + if stage == 'train': + self.loggers[0].experiment.add_figure(f'{stage}/ROC_{stage}', plt, self.current_epoch) + else: + # plt.savefig(f'{self.loggers[0].log_dir}/{stage}_roc.png', dpi=400) + line_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_roc_{comment}.png', dpi=400) + line_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_roc_{comment}.svg', format='svg') + + line_plot.figure.clf() + + def log_pr_curve(self, probs, target, stage, comment=''): + + # fpr_list, tpr_list, thresholds = self.ROC(probs, target) + # precision, recall, thresholds = torchmetrics.functional.classification.multiclass_precision_recall_curve(probs, target, num_classes=self.n_classes) + # print(precision) + # print(recall) + + # baseline = len(target[target==1]) / len(target) + + # plt.figure(1) + fig, ax = plt.subplots(figsize=(6,6)) + + if self.n_classes > 2: + + precision, recall, thresholds = multiclass_precision_recall_curve(probs, target, num_classes=self.n_classes) + task_label_map = LABEL_MAP[self.task] + + for i in range(len(precision)): + + class_label = task_label_map[str(i)] + color = COLOR_MAP[i] + + re = recall[i] + pr = precision[i] + + partial_auc = _auc_compute(re, pr, 1.0) + df = pd.DataFrame(data = {'re': re.cpu().numpy(), 'pr': pr.cpu().numpy()}) + line_plot = sns.lineplot(data=df, x='re', y='pr', label=f'{class_label}={partial_auc:.2f}', legend='full', color=color) + + baseline = len(target[target==i]) / len(target) + ax.plot([0,1],[baseline, baseline], linestyle='--', label=f'Baseline={baseline:.2f}', color=color) + else: # print(fpr_list) - fpr = fpr_list[0].cpu().numpy() - tpr = tpr_list[0].cpu().numpy() - plt.plot(fpr, tpr) + color = COLOR_MAP[0] + precision, recall, thresholds = binary_precision_recall_curve(probs, target) + baseline = len(target[target==1]) / len(target) + + pr = precision + re = recall + partial_auc = _auc_compute(re, pr, 1.0) + # ax.plot(re, pr) + df = pd.DataFrame(data = {'re': re.cpu().numpy(), 'pr': pr.cpu().numpy()}) + line_plot = sns.lineplot(data=df, x='re', y='pr', label=f'{partial_auc:.2f}', legend='full', color=color) + - plt.xlabel('False positive rate') - plt.ylabel('True positive rate') - plt.title('ROC curve') - plt.savefig(f'{self.loggers[0].log_dir}/roc.jpg') + ax.plot([0,1], [baseline, baseline], linestyle='--', label=f'Baseline={baseline:.2f}', color=color) + + ax.set_xlim([0,1]) + ax.set_ylim([0,1]) + ax.set_xlabel('Recall') + ax.set_ylabel('Precision') + ax.set_title('PR curve') + ax.legend(loc='lower right') + # plt.savefig(f'{self.loggers[0].log_dir}/pr_{stage}.jpg') if stage == 'train': - self.loggers[0].experiment.add_figure(f'{stage}/ROC_{comment}', plt, self.current_epoch) + self.loggers[0].experiment.add_figure(f'{stage}/PR_{stage}', fig, self.current_epoch) else: - plt.savefig(f'{self.loggers[0].log_dir}/roc_{comment}.jpg', dpi=400) + # fig.savefig(f'{self.loggers[0].log_dir}/pr_{stage}.jpg', dpi=400) + line_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_pr.png', dpi=400) + line_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_pr.svg', format='svg') + + line_plot.figure.clf() + + def save_results(self, complete_patient_dict, patient_target): + + patient_output_dict = {'PATIENT': [], 'yTrue': []} + slide_output_dict = {'SLIDE': [], 'yTrue': []} + for i in range(self.n_classes): + # print(LABEL_MAP[self.task]) + class_label = LABEL_MAP[self.task][str(i)] + # if class_label not in patient_output_dict.keys(): + # patient_output_dict[class_label] = [] + class_scores = [complete_patient_dict[k]['patient_score'][i].cpu().numpy().item() for k in complete_patient_dict.keys()] + patient_output_dict[class_label] = class_scores + slide_output_dict[class_label] = [] + + patient_output_dict['PATIENT'] = list(complete_patient_dict.keys()) + patient_output_dict['yTrue'] = [int(t.cpu().numpy()) for t in patient_target] + # json.dump(patient_output_dict, open(f'{self.loggers[0].log_dir}/results.json', 'w')) + out_df = pd.DataFrame.from_dict(patient_output_dict) + out_df.to_csv(f'{self.loggers[0].log_dir}/TEST_RESULT_PATIENT.csv') + + + label_mapping = LABEL_MAP[self.task] + + for v in label_mapping.values(): + slide_output_dict[v] = [] + for p, t in zip(list(complete_patient_dict.keys()), patient_target): + # print(complete_patient_dict[p]) + slide_target = label_mapping[str(t.item())] + + for slide in complete_patient_dict[p].keys(): + if slide != 'patient_score': + slide_output_dict['SLIDE'].append(slide) + slide_output_dict['yTrue'].append(slide_target) + + # if len(complete_patient_dict[p][slide]) > 1: + slide_score = torch.stack(complete_patient_dict[p][slide]).mean(dim=0).cpu().numpy() + # else: slide_score = complete_patient_dict[p][slide][0] + # score = score.cpu().numpy()[[] + # score = score.cpu().numpy()[[] + # print(score)] + for j in range(len(slide_score)): + class_label = label_mapping[str(j)] + slide_output_dict[class_label].append(slide_score[j]) + + + + + + out_df = pd.DataFrame.from_dict(slide_output_dict) + out_df.to_csv(f'{self.loggers[0].log_dir}/TEST_RESULT_SLIDE.csv') class View(nn.Module): diff --git a/code/plotter.ipynb b/code/plotter.ipynb new file mode 100644 index 0000000..5c241ee --- /dev/null +++ b/code/plotter.ipynb @@ -0,0 +1,88 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from visualize_mil import Visualize\n", + "import torch.nn as nn\n", + "from pathlib import Path\n", + "\n", + "home = Path.cwd().parts[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['/homeStor1/ylan/workspace/TransMIL-DeepGraft/logs/DeepGraft/TransMIL/norm_rest/_features_CrossEntropyLoss/lightning_logs/version_760/checkpoints/epoch=10-val_loss=0.5929-val_auc=0.8765-val_patient_auc= 0.8953.ckpt']\n" + ] + } + ], + "source": [ + "model_name = 'TransMIL'\n", + "task = 'norm_rest'\n", + "version = 760\n", + "epoch = 10\n", + "log_dir = Path(f'/{home}/ylan/workspace/TransMIL-DeepGraft/logs/')\n", + "ckpt_path = log_dir / 'DeepGraft' / model_name / task / '_features_CrossEntropyLoss/lightning_logs' / f'version_{version}' / 'checkpoints'\n", + "\n", + "# print(ckpt_path)\n", + "model_paths = list(ckpt_path.glob('*.ckpt'))\n", + "if epoch == 'last':\n", + " model_paths = [str(model_path) for model_path in model_paths if f'last' in str(model_path)]\n", + "else:\n", + " model_paths = [str(model_path) for model_path in model_paths if f'epoch={epoch}' in str(model_path)]\n", + "\n", + "print(model_paths)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "torch", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "7b7fb95db5714bbf59d6a04f6057e8fa5746fef9d16f5c42f2fdbc713170171a" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/code/sustainability_plot.ipynb b/code/sustainability_plot.ipynb new file mode 100644 index 0000000..e69de29 diff --git a/code/sustainability_test.py b/code/sustainability_test.py new file mode 100644 index 0000000..b7ff094 --- /dev/null +++ b/code/sustainability_test.py @@ -0,0 +1,135 @@ +import torch +import torch.nn as nn +import numpy as np +import argparse +import time +from tqdm import tqdm +# from torchvision.datasets import Dataset +from torch.utils.data import random_split, Dataset, DataLoader +from experiment_impact_tracker.compute_tracker import ImpactTracker + +from models.ResNet import resnet50 +from models import TransMIL, CLAM_MB +import timm + +class CustomImageDataset(Dataset): + def __init__(self, data_size=1000, bag_size=1000, feature_size=2048, device='cpu', mode='features'): + self.data_size = data_size + self.bag_size = bag_size + self.device = device + self.mode = mode + self.feature_size = feature_size + # self.data = torch.rand([self.bag_size, 3, 224, 224]) + + def __len__(self): + return self.data_size + + def __getitem__(self, idx): + + label = torch.randint(1, (1,1)).to(device) + if self.mode == 'features': + bag = torch.rand([self.bag_size, self.feature_size]).to(device) + else: + bag = torch.rand([self.bag_size, 3, self.feature_size, self.feature_size]).to(device) + return bag, label + +def make_parse(): + parser = argparse.ArgumentParser() + parser.add_argument('--model', default='TransMIL', type=str) + + args = parser.parse_args() + return args + +if __name__ == '__main__': + + from utils.custom_resnet50 import resnet50_baseline + from torchvision import models + + tracker = ImpactTracker(f'co2log/') + tracker.launch_impact_monitor() + + + args = make_parse() + + model_name = args.model + n_classes = 2 + + device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + + if model_name == 'TransMIL': + in_features = 2048 + model = TransMIL(n_classes=n_classes, in_features=2048) + mode = 'features' + feature_size = in_features + elif model_name == 'RetCCL': + model = resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) + model.fc = torch.nn.Identity() + model.load_state_dict(torch.load('models/ckpt/retccl_best_ckpt.pth'), strict=False) + mode = 'images' + feature_size = 224 + elif model_name == 'resnet50': + model = models.resnet50(weights='IMAGENET1K_V1') + model.fc = nn.Linear(model.fc.in_features, 1024) + for param in model.parameters(): + param.requires_grad = False + # model.load_state_dict(torch.load('models/ckpt/retccl_best_ckpt.pth'), strict=False) + mode = 'images' + feature_size = 224 + elif model_name == 'vit': + model = timm.create_model('vit_base_patch16_224', pretrained=True, num_classes=n_classes) + for param in model.parameters(): + param.requires_grad = False + outputs_attrs = n_classes + num_inputs = model.head.in_features + last_layer = nn.Linear(num_inputs, outputs_attrs) + model.head = last_layer + mode = 'images' + feature_size = 224 + elif model_name == 'inception': + model = torch.hub.load('pytorch/vision:v0.10.0', 'inception_v3', weights='Inception_V3_Weights.DEFAULT') + model.aux_logits = False + for param in model.parameters(): + param.requires_grad = False + model.fc = nn.Linear(model.fc.in_features, n_classes) + mode = 'images' + feature_size = 384 + elif model_name == 'clam': + model = CLAM_MB(n_classes = n_classes) + mode = 'features' + feature_size = 1024 + model = model.to(device) + # test_data = torch.rand([1000,3,224,224]).to(device) + + dataset = CustomImageDataset(data_size=1000, device=device, mode=mode, feature_size=feature_size) + dataloader = DataLoader(dataset, batch_size=1) + + epochs = 1 + for e in range(epochs): + start = time.time() + for item in tqdm(dataloader): + # print(i) + bag, label = item + bag.to(device) + if len(bag.shape) > 4: + bag = bag.squeeze() + label.to(device) + if model_name == 'clam': + bag = bag.squeeze(0) + with torch.cuda.amp.autocast(): + features = model(bag) + end = time.time() + print('Epoch Time: ', end-start) + + tracker.stop() + from experiment_impact_tracker.data_interface import DataInterface + data_interface = DataInterface(['co2log']) + kg_carbon = data_interface.kg_carbon + print(kg_carbon) + + '''Netherlands''' + + txt_path = f'../test/co2_emission/{model_name}.txt' + with open(txt_path, 'w') as f: + f.write('Emissions calculated for 1000 slides, 1000 patches/slide. \n') + f.write(f'{model_name}: {kg_carbon}kg\n') + \ No newline at end of file diff --git a/code/test_visualize.py b/code/test_visualize.py index 623066e..af32ab2 100644 --- a/code/test_visualize.py +++ b/code/test_visualize.py @@ -30,96 +30,98 @@ import pandas as pd import json import pprint +from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve -#--->Setting parameters -def make_parse(): - parser = argparse.ArgumentParser() - parser.add_argument('--stage', default='test', type=str) - parser.add_argument('--config', default='../DeepGraft/TransMIL.yaml',type=str) - parser.add_argument('--version', default=0,type=int) - parser.add_argument('--epoch', default='0',type=str) - parser.add_argument('--gpus', default = 0, type=int) - parser.add_argument('--loss', default = 'CrossEntropyLoss', type=str) - parser.add_argument('--fold', default = 0) - parser.add_argument('--bag_size', default = 10000, type=int) - args = parser.parse_args() - return args -class custom_test_module(ModelInterface): - # self.task = kargs['task'] - # self.task = 'tcmr_viral' +class InferenceModel(nn.Module): + def __init__(self, feature_model, mil_model): + super(InferenceModel, self).__init__() - # def forward(self, x): - # batch_size = x.shape[0] - # bag_size = x.shape[1] - # x = x.view(batch_size*bag_size, x.shape[2], x.shape[3], x.shape[4]) - # feats = self.model_ft(x).unsqueeze(0) - # feats = feats.view(batch_size, bag_size, -1) - # return self.model(feats) + self.feature_model = feature_model + self.mil_model = mil_model + def forward(self, x): + + # batch_size = x.shape[0] + bag_size = x.shape[0] + # bag = x.view(batch_size*bag_size, x.shape[2], x.shape[3], x.shape[4]) + feats = self.feature_model(x).unsqueeze(0).unsqueeze(0) + # print(feats.shape) + # feats = feats.view(batch_size, bag_size, -1) + logits = self.mil_model(feats) + return logits - def test_step(self, batch, batch_idx): - print('custom: ', self.backbone) - print(self.model_ft.device) - - torch.set_grad_enabled(True) - input, label, (wsi_name, patient) = batch +class RETCCL_FE(pl.LightningModule): + def __init__(self): + self.model_ft = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) + home = Path.cwd().parts[1] + # pre_model = + # self.model_ft.fc = nn.Identity() + # self.model_ft.load_from_checkpoint(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth', strict=False) + self.model_ft.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) + for param in self.model_ft.parameters(): + param.requires_grad = False + self.model_ft.fc = torch.nn.Identity() + # self.model_ft.to(self.device) + + def forward(self, x): + return self.model_ft(x) - print(input.device) - # input, label, (wsi_name, batch_names, patient) = batch - # label = label.float() - # - # feature extraction - x = input - batch_size = x.shape[0] - bag_size = x.shape[1] - # new_shape = (batch_size*bag_size, x.shape[2], x.shape[3], x.shape[4]) - # x = x.view(new_shape) - x = x.view(batch_size*bag_size, x.shape[2], x.shape[3], x.shape[4]) - data_ft = self.model_ft(x).unsqueeze(0) - data_ft = data_ft.view(batch_size, bag_size, -1) - - logits = self.model(data_ft) - Y_hat = torch.argmax(logits, dim=1) - Y_prob = F.softmax(logits, dim = 1) - # logits, Y_prob, Y_hat = self.model(data_ft) - loss = self.loss(logits, label) +# def reshape_transform(tensor, height=14, width=14): +# result = tensor[:, 1 : , :].reshape(tensor.size(0), +# height, width, tensor.size(2)) + +# # Bring the channels to the first dimension, +# # like in CNNs. +# result = result.transpose(2, 3).transpose(1, 2) +# return result + +def reshape_transform(tensor): + # print(tensor.shape) + H = tensor.shape[1] + _H, _W = int(np.ceil(np.sqrt(H))), int(np.ceil(np.sqrt(H))) + add_length = _H * _W - H + tensor = torch.cat([tensor, tensor[:,:add_length,:]],dim = 1) + result = tensor[:, :, :].reshape(tensor.size(0), _H, _W, tensor.size(2)) + result = result.transpose(2,3).transpose(1,2) + # print(result.shape) + return result - # input_data, label, (wsi_name, batch_names, patient) = batch - # patient = patient[0] - # wsi_name = wsi_name[0] - # label = label.float() - # # logits, Y_prob, Y_hat = self.step(data) - # # print(data.shape) - # input_data = input_data.squeeze(0).float() - # # print(self.model_ft) - # # print(self.model) - # logits, _ = self(input_data) - # # attn = attn.detach() - # # logits = logits.detach() +class custom_test_module(ModelInterface): - # Y = torch.argmax(label) - # Y_hat = torch.argmax(logits, dim=1) - # Y_prob = F.softmax(logits, dim=1) - + def test_step(self, batch, batch_idx): - # print('Y_hat:', Y_hat) - # print('Y_prob:', Y_prob) + torch.set_grad_enabled(True) + + input, label, (wsi_name, batch_coords, patient) = batch + + # feature extraction + # x = input + # batch_size = x.shape[0] + # bag_size = x.shape[1] + # x = x.view(batch_size*bag_size, x.shape[2], x.shape[3], x.shape[4]) + # data_ft = self.test_model_ft(x).unsqueeze(0) + # data_ft = data_ft.view(batch_size, bag_size, -1) + + # prediction + logits, Y_prob, Y_hat = self.step(input) + loss = self.loss(logits, label) #----> Get GradCam maps, map each instance to attention value, assemble, overlay on original WSI if self.model_name == 'TransMIL': + print(self.model.layer2.norm) target_layers = [self.model.layer2.norm] # 32x32 # target_layers = [self.model_ft[0].features[-1]] # 32x32 - self.cam = GradCAM(model=self.model, target_layers = target_layers, use_cuda=True, reshape_transform=self.reshape_transform) #, reshape_transform=self.reshape_transform + self.cam = GradCAM(model=self.model, target_layers = target_layers, use_cuda=True, reshape_transform=reshape_transform) #, reshape_transform=self.reshape_transform # self.cam_ft = GradCAM(model=self.model, target_layers = target_layers_ft, use_cuda=True) #, reshape_transform=self.reshape_transform elif self.model_name == 'TransformerMIL': target_layers = [self.model.layer1.norm] @@ -139,16 +141,22 @@ class custom_test_module(ModelInterface): target = [ClassifierOutputTarget(Y)] # print(target) - grayscale_cam = self.cam(input_tensor=data_ft, targets=target, eigen_smooth=True) + + print(input) + input.requires_grad=True + grayscale_cam = self.cam(input_tensor=input, targets=target, eigen_smooth=True) grayscale_cam = torch.Tensor(grayscale_cam)[:instance_count, :] #.to(self.device) #---------------------------------------------------- # Get Topk Tiles and Topk Patients #---------------------------------------------------- k = 10 - summed = torch.mean(grayscale_cam, dim=2) - topk_tiles, topk_indices = torch.topk(summed.squeeze(0), k, dim=0) - topk_data = input[topk_indices].detach() + # summed = torch.mean(grayscale_cam, dim=2) + if self.n_classes == 2: + topk_tiles, topk_indices = torch.topk(logits[:, 1], k, dim=0) + # topk_tiles, topk_indices = torch.topk(summed.squeeze(0), k, dim=0) + topk_coords = batch_coords[topk_indices] + # topk_data = input[topk_indices].detach() # print(topk_tiles) #---------------------------------------------------- @@ -168,7 +176,7 @@ class custom_test_module(ModelInterface): # self.save_attention_map(wsi_name, batch_names, grayscale_cam, target=Y) # print('test_step_patient: ', patient) - return {'logits' : logits, 'Y_prob' : Y_prob, 'Y_hat' : Y_hat, 'label' : Y, 'name': wsi_name, 'patient': patient, 'topk_data': topk_data} # + return {'logits' : logits, 'Y_prob' : Y_prob, 'Y_hat' : Y_hat, 'label' : Y, 'name': wsi_name, 'patient': patient, 'topk_coords': topk_coords} # # return {'logits' : logits, 'Y_prob' : Y_prob, 'Y_hat' : Y_hat, 'label' : label, 'name': name} #, 'topk_data': topk_data def test_epoch_end(self, output_results): @@ -186,7 +194,9 @@ class custom_test_module(ModelInterface): slide_names = [x['name'] for x in output_results] patients = [x['patient'] for x in output_results] loss = torch.stack([x['loss'] for x in output_results]) + topk_coords = torch.cat([x['topk_coords'] for x in output_results]) #----> + print(topk_coords) self.log_dict(self.test_metrics(max_probs.squeeze(), target.squeeze()), on_epoch = True, logger = True, sync_dist=True) @@ -355,37 +365,78 @@ class custom_test_module(ModelInterface): def save_attention_map(self, wsi_name, batch_names, grayscale_cam, target): - # def get_coords(batch_names): #ToDO: Change function for precise coords - # coords = [] - - # for tile_name in batch_names: - # pos = re.findall(r'\((.*?)\)', tile_name[0]) - # x, y = pos[-1].split('_') - # coords.append((int(x),int(y))) - # return coords + # def get_coords(batch_names): #ToDO: Change function for precise coords + # coords = [] + + # for tile_name in batch_names: + # # print(tile_name) + # pos = re.findall(r'\((.*?)\)', tile_name) + # # print(pos) + # x, y = pos[-1].split('-') + # # print(x, y) + # coords.append((int(x),int(y))) + + # return coords + + def get_coords(batch_names): + coords = [] + batch_names = batch_names.squeeze(0) + for i in range(batch_names.shape[0]): + c = batch_names[i, :] + # print(c) + x = c[0] + y = c[1] + coords.append((int(x),int(y))) + return coords home = Path.cwd().parts[1] jpg_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides/BLOCKS' + save_path = Path(f'/{home}/ylan/workspace/TransMIL-DeepGraft/test/img/') - coords = batch_names.squeeze() + coords = get_coords(batch_names) data = [] - for co in coords: - - tile_path = Path(jpg_dir) / wsi_name / f'{wsi_name}_({co[0]}_{co[1]}).jpg' - img = np.asarray(Image.open(tile_path)).astype(np.uint8) - img = torch.from_numpy(img) - # print(img.shape) - data.append(img) - # coords_set = set(coords) - # data = data.unsqueeze(0) - # print(data.shape) - data = torch.stack(data) - # print(data.max()) - # print(data.min()) - # print(coords) - # temp_data = data.cpu() - # print(data.shape) - wsi = self.assemble(data, coords).cpu().numpy() + + position_dict = {} + assembled = [] + # for tile in self.predictions: + count = 0 + white_value = 0 + x_max = max([x[0] for x in coords]) + y_max = max([x[1] for x in coords]) + + for i, (x,y) in enumerate(coords): + if x not in position_dict.keys(): + + position_dict[x] = [(y, i)] + else: position_dict[x].append((y, i)) + + test_img_compl = torch.ones([(y_max+1)*224, (x_max+1)*224, 3]) + for i in range(x_max+1): + if i in position_dict.keys(): + for j in position_dict[i]: + + # sample_idx = j[1] + # print(coords[j[1]]) + co = coords[j[1]] + tile_path = Path(jpg_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(tile_path)).astype(np.uint8) + img = img / 255.0 + img = torch.from_numpy(img) + y_coord = int(j[0]) + x_coord = int(i) + test_img_compl[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224, :] = img + + wsi = test_img_compl + # wsi = assemble(wsi_name, coords, device=device) + # print(wsi) + wsi_out = ((wsi-wsi.min())/(wsi.max()-wsi.min()) * 255.0).numpy().astype(np.uint8) + img = Image.fromarray(wsi_out) + img = img.convert('RGB') + size = (20000, 20000) + img.thumbnail(size, Image.Resampling.LANCZOS) + output_path = save_path / str(target.item()) + output_path.mkdir(parents=True, exist_ok=True) + img.save(f'{output_path}/{wsi_name}.png') # wsi = (wsi-wsi.min())/(wsi.max()-wsi.min()) # wsi = wsi # print(coords) @@ -393,13 +444,17 @@ class custom_test_module(ModelInterface): #--> Get interpolated mask from GradCam W, H = wsi.shape[0], wsi.shape[1] - + # print(grayscale_cam.shape) + # print() attention_map = grayscale_cam[:, :, 1].squeeze() - attention_map = F.relu(attention_map) - # print(attention_map) + # attention_map = F.relu(attention_map) + # print('Attention_map') + # print(attention_map.shape) + # print(attention_map.device) input_h = 224 - mask = torch.ones(( int(W/input_h), int(H/input_h))).to(self.device) + mask = torch.ones(( int(W/input_h), int(H/input_h))) + # print(mask.device) # print('mask.shape: ', mask.shape) # print('attention_map.shape: ', attention_map.shape) for i, (x,y) in enumerate(coords): @@ -411,34 +466,36 @@ class custom_test_module(ModelInterface): mask = mask.squeeze(0).permute(1,2,0) mask = (mask - mask.min())/(mask.max()-mask.min()) - mask = mask.cpu().numpy() + mask = mask.numpy() + + # print('mask: ', mask.shape) - def show_cam_on_image(img, mask): - heatmap = cv2.applyColorMap(np.uint8(255 * mask), cv2.COLORMAP_JET) - heatmap = np.float32(heatmap) / 255 - cam = heatmap*0.4 + np.float32(img) - cam = cam / np.max(cam) - return cam - - wsi_cam = show_cam_on_image(wsi, mask) + # def show_cam_on_image(img, mask): + # heatmap = cv2.applyColorMap(np.uint8(255 * mask), cv2.COLORMAP_JET) + # heatmap = np.float32(heatmap) / 255 + # cam = heatmap*0.4 + np.float32(img) + # cam = cam / np.max(cam) + # return cam + + wsi_cam = show_cam_on_image(wsi.numpy(), mask) wsi_cam = ((wsi_cam-wsi_cam.min())/(wsi_cam.max()-wsi_cam.min()) * 255.0).astype(np.uint8) size = (20000, 20000) - # img = Image.fromarray(wsi_cam) - # img = img.convert('RGB') - # img.thumbnail(size, Image.ANTIALIAS) - # output_path = self.save_path / str(target.item()) - # output_path.mkdir(parents=True, exist_ok=True) - # img.save(f'{output_path}/{wsi_name}_gradcam.jpg') - - wsi = ((wsi-wsi.min())/(wsi.max()-wsi.min()) * 255.0).astype(np.uint8) - img = Image.fromarray(wsi) + img = Image.fromarray(wsi_cam) img = img.convert('RGB') - img.thumbnail(size, Image.ANTIALIAS) - output_path = self.save_path / str(target.item()) + img.thumbnail(size, Image.Resampling.LANCZOS) + output_path = save_path / str(target.item()) output_path.mkdir(parents=True, exist_ok=True) - img.save(f'{output_path}/{wsi_name}.jpg') + img.save(f'{output_path}/{wsi_name}_gradcam.jpg') + + # wsi = ((wsi-wsi.min())/(wsi.max()-wsi.min()) * 255.0).astype(np.uint8) + # img = Image.fromarray(wsi) + # img = img.convert('RGB') + # img.thumbnail(size, Image.LANCZOS) + # output_path = save_path / str(target.item()) + # output_path.mkdir(parents=True, exist_ok=True) + # img.save(f'{output_path}/{wsi_name}.jpg') del wsi del img del wsi_cam @@ -515,6 +572,109 @@ class custom_test_module(ModelInterface): # print(img_compl) return test_img_compl.cpu().detach() +def save_attention_map(wsi_name, batch_names, grayscale_cam, target): + + def get_coords(batch_names): #ToDO: Change function for precise coords + coords = [] + + for tile_name in batch_names: + # print(tile_name) + pos = re.findall(r'\((.*?)\)', tile_name) + # print(pos) + x, y = pos[-1].split('-') + # print(x, y) + coords.append((int(x),int(y))) + + return coords + + save_path = '/home/ylan/workspace/TransMIL-DeepGraft/test/img/' + + home = Path.cwd().parts[1] + jpg_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides/BLOCKS' + + # print(batch_names) + coords = get_coords(batch_names) + # print(wsi_name) + # coords = batch_names.squeeze() + data = [] + + + for co in coords: + # print(jpg_dir) + # print(wsi_name) + + tile_path = Path(jpg_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(tile_path)).astype(np.uint8) + img = torch.from_numpy(img) + # print(img.shape) + data.append(img) + # coords_set = set(coords) + # data = data.unsqueeze(0) + # print(data.shape) + data = torch.stack(data) + # print(data.max()) + # print(data.min()) + # print(coords) + # temp_data = data.cpu() + # print(data.shape) + wsi = assemble(data, coords).cpu().numpy() + # wsi = (wsi-wsi.min())/(wsi.max()-wsi.min()) + # wsi = wsi + # print(coords) + # print('wsi.shape: ', wsi.shape) + #--> Get interpolated mask from GradCam + W, H = wsi.shape[0], wsi.shape[1] + + + attention_map = grayscale_cam[:, :, 1].squeeze() + attention_map = F.relu(attention_map) + # print(attention_map) + input_h = 224 + + mask = torch.ones(( int(W/input_h), int(H/input_h))).to(self.device) + # print('mask.shape: ', mask.shape) + # print('attention_map.shape: ', attention_map.shape) + for i, (x,y) in enumerate(coords): + mask[y][x] = attention_map[i] + mask = mask.unsqueeze(0).unsqueeze(0) + # mask = torch.stack([mask, mask, mask]).unsqueeze(0) + + mask = F.interpolate(mask, (W,H), mode='bilinear') + mask = mask.squeeze(0).permute(1,2,0) + + mask = (mask - mask.min())/(mask.max()-mask.min()) + mask = mask.cpu().numpy() + + def show_cam_on_image(img, mask): + heatmap = cv2.applyColorMap(np.uint8(255 * mask), cv2.COLORMAP_JET) + heatmap = np.float32(heatmap) / 255 + cam = heatmap*0.4 + np.float32(img) + cam = cam / np.max(cam) + return cam + + wsi_cam = show_cam_on_image(wsi, mask) + wsi_cam = ((wsi_cam-wsi_cam.min())/(wsi_cam.max()-wsi_cam.min()) * 255.0).astype(np.uint8) + + size = (20000, 20000) + + # img = Image.fromarray(wsi_cam) + # img = img.convert('RGB') + # img.thumbnail(size, Image.ANTIALIAS) + # output_path = self.save_path / str(target.item()) + # output_path.mkdir(parents=True, exist_ok=True) + # img.save(f'{output_path}/{wsi_name}_gradcam.jpg') + + wsi = ((wsi-wsi.min())/(wsi.max()-wsi.min()) * 255.0).astype(np.uint8) + img = Image.fromarray(wsi) + img = img.convert('RGB') + img.thumbnail(size, Image.ANTIALIAS) + output_path = save_path / str(target.item()) + output_path.mkdir(parents=True, exist_ok=True) + img.save(f'{output_path}/{wsi_name}.jpg') + del wsi + del img + del wsi_cam + del mask #---->main def main(cfg): @@ -544,10 +704,10 @@ def main(cfg): train_classic = True use_features = False if cfg.Model.backbone == 'features': - use_features = False - cfg.Model.backbone = 'retccl' - else: - use_features = False + use_features = True + # cfg.Model.backbone = 'retccl' + # else: + # use_features = False print(cfg.Model.backbone) # use_features = False @@ -628,10 +788,11 @@ def main(cfg): for path in model_paths: # with open(f'{log_path}/test_metrics.txt', 'w') as f: # f.write(str(path) + '\n') - new_model = model.load_from_checkpoint(checkpoint_path=path, cfg=cfg) - new_model.init_backbone() - new_model.save_path = Path(cfg.log_path) / 'visualization' - trainer.test(model=new_model, datamodule=dm) + # new_model = model.load_from_checkpoint(checkpoint_path=path, cfg=cfg) + # new_model.init_backbone() + # new_model.save_path = Path(cfg.log_path) / 'visualization' + # trainer.test(model=new_model, datamodule=dm) + trainer.test(model=model, datamodule=dm) # Top 5 scoring patches for patient # GradCam @@ -657,6 +818,21 @@ def check_home(cfg): return cfg +#--->Setting parameters +def make_parse(): + parser = argparse.ArgumentParser() + parser.add_argument('--stage', default='test', type=str) + parser.add_argument('--config', default='../DeepGraft/TransMIL.yaml',type=str) + parser.add_argument('--version', default=0,type=int) + parser.add_argument('--epoch', default='0',type=str) + parser.add_argument('--gpus', default = 0, type=int) + parser.add_argument('--loss', default = 'CrossEntropyLoss', type=str) + parser.add_argument('--fold', default = 0) + parser.add_argument('--bag_size', default = 10000, type=int) + + args = parser.parse_args() + return args + if __name__ == '__main__': args = make_parse() @@ -689,143 +865,182 @@ if __name__ == '__main__': #---->main - # main(cfg) - from models import TransMIL - from datasets.zarr_feature_dataloader_simple import ZarrFeatureBagLoader - from datasets.feature_dataloader import FeatureBagLoader - from datasets.jpg_dataloader import JPGMILDataloader - from torch.utils.data import random_split, DataLoader - import time - from tqdm import tqdm - import torchmetrics - import models.ResNet as ResNet - - device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - print(device) - scaler = torch.cuda.amp.GradScaler() + main(cfg) + + # from models import TransMIL + # from datasets.zarr_feature_dataloader_simple import ZarrFeatureBagLoader + # from datasets.feature_dataloader import FeatureBagLoader + # from datasets.jpg_dataloader import JPGMILDataloader + # from torch.utils.data import random_split, DataLoader + # import time + # from tqdm import tqdm + # import torchmetrics + # import models.ResNet as ResNet + + # device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + # scaler = torch.cuda.amp.GradScaler() - log_path = Path(cfg.log_path) / 'checkpoints' - model_paths = list(log_path.glob('*.ckpt')) - - # print(model_paths) - if cfg.epoch == 'last': - model_paths = [str(model_path) for model_path in model_paths if f'last' in str(model_path)] - else: - model_paths = [str(model_path) for model_path in model_paths if f'epoch={cfg.epoch}' in str(model_path)] - - # checkpoint = torch.load(f'{cfg.log_path}/checkpoints/epoch=04-val_loss=0.4243-val_auc=0.8243-val_patient_auc=0.8282244801521301.ckpt') - # checkpoint = torch.load(f'{cfg.log_path}/checkpoints/epoch=73-val_loss=0.8574-val_auc=0.9682-val_patient_auc=0.9724310636520386.ckpt') - checkpoint = torch.load(model_paths[0]) - - hyper_parameters = checkpoint['hyper_parameters'] - n_classes = hyper_parameters['model']['n_classes'] - - # model = TransMIL() - - model_ft = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) - home = Path.cwd().parts[1] - # pre_model = - # self.model_ft.fc = nn.Identity() - # self.model_ft.load_from_checkpoint(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth', strict=False) - model_ft.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) - for param in model_ft.parameters(): - param.requires_grad = False - model_ft.fc = torch.nn.Identity() - model_ft.to(device) - - model = TransMIL(n_classes=n_classes, in_features=2048).to(device) - model_weights = checkpoint['state_dict'] - - for key in list(model_weights): - model_weights[key.replace('model.', '')] = model_weights.pop(key) - - model.load_state_dict(model_weights) - - count = 0 - # for m in model.modules(): - # if isinstance(m, torch.nn.BatchNorm2d): - # # # m.track_running_stats = False - # # count += 1 #skip the first BatchNorm layer in my ResNet50 based encoder - # # if count >= 2: - # # m.eval() - # print(m) - # m.track_running_stats = False - # m.running_mean = None - # m.running_var = None + # log_path = Path(cfg.log_path) / 'checkpoints' + # model_paths = list(log_path.glob('*.ckpt')) + + # # print(model_paths) + # if cfg.epoch == 'last': + # model_paths = [str(model_path) for model_path in model_paths if f'last' in str(model_path)] + # else: + # model_paths = [str(model_path) for model_path in model_paths if f'epoch={cfg.epoch}' in str(model_path)] + + # # checkpoint = torch.load(f'{cfg.log_path}/checkpoints/epoch=04-val_loss=0.4243-val_auc=0.8243-val_patient_auc=0.8282244801521301.ckpt') + # # checkpoint = torch.load(f'{cfg.log_path}/checkpoints/epoch=73-val_loss=0.8574-val_auc=0.9682-val_patient_auc=0.9724310636520386.ckpt') + # # print(model_paths) + # checkpoint = torch.load(model_paths[0]) + + # hyper_parameters = checkpoint['hyper_parameters'] + # n_classes = hyper_parameters['model']['n_classes'] + # # batch_size = 5 + + # # model = TransMIL() + + # model_ft = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) + # home = Path.cwd().parts[1] + # # pre_model = + # # self.model_ft.fc = nn.Identity() + # # self.model_ft.load_from_checkpoint(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth', strict=False) + # model_ft.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) + # # for param in model_ft.parameters(): + # # param.requires_grad = False + # model_ft.fc = torch.nn.Identity() + # model_ft.to(device) + + # mil_model = TransMIL(n_classes=n_classes, in_features=2048).to(device) + # model_weights = checkpoint['state_dict'] + + # for key in list(model_weights): + # model_weights[key.replace('model.', '')] = model_weights.pop(key) - for param in model.parameters(): - param.requires_grad = False - model.eval() - - home = Path.cwd().parts[1] - data_root = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated' - label_path = f'/{home}/ylan/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest.json' - dataset = JPGMILDataloader(data_root, label_path=label_path, mode='test', cache=False, n_classes=n_classes, model_name = 'TransMIL') - - dl = DataLoader(dataset, batch_size=1, num_workers=8) + # mil_model.load_state_dict(model_weights) + # big_model = InferenceModel(model_ft, mil_model).to(device) + # count = 0 + # # for param in big_model.parameters(): + # # param.requires_grad = False + # big_model.eval() + + + # home = Path.cwd().parts[1] + # data_root = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated' + # label_path = f'/{home}/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rest.json' + # dataset = JPGMILDataloader(data_root, label_path=label_path, mode='test', cache=False, n_classes=n_classes, model='TransMIL') + + # dl = DataLoader(dataset, batch_size=1, num_workers=8) + + # # if self.model_name == 'TransMIL': + # # print(self.model.layer2.norm) + # # print(big_model) + # target_layers = [mil_model.layer2.norm] # 32x32 + # # target_layers = [self.model_ft[0].features[-1]] # 32x32 + # cam = GradCAM(model=big_model, target_layers = target_layers, use_cuda=True, reshape_transform=reshape_transform) #, reshape_transform=self.reshape_transform + # # self.cam_ft = GradCAM(model=self.model, target_layers = target_layers_ft, use_cuda=True) #, reshape_transform=self.reshape_transform + # # elif self.model_name == 'TransformerMIL': + # # target_layers = [self.model.layer1.norm] + # # self.cam = EigenCAM(model=self.model, target_layers = target_layers, use_cuda=True, reshape_transform=self.reshape_transform) + # # # self.cam = GradCAM(model=self.model, target_layers = target_layers, use_cuda=True, reshape_transform=self.reshape_transform) + # # else: + # # target_layers = [self.model.attention_weights] + # # self.cam = GradCAM(model = self.model, target_layers = target_layers, use_cuda=True) + + # start = time.time() + # test_logits = [] + # test_probs = [] + # test_labels = [] + # test_topk_data = [] + # data = [{"count": 0, "correct": 0} for i in range(n_classes)] + # count = 0 + + + # for item in tqdm(dl): + + # count += 1 + # if count > 1: + # break + # bag, label, (name, batch_coords, patient) = item + # batch_coords = [b[0] for b in batch_coords] + # name = name[0] + # # bag, label, (name, batch_coords, patient) = item + # # label = label.float() + # # Y = int(label) + + # bag = bag.float().to(device) + # # print(bag.shape) + # # bag = bag.unsqueeze(0) + # with torch.cuda.amp.autocast(): + # bag = bag.squeeze(0) + # logits = big_model(bag) + # Y_hat = torch.argmax(logits, dim=1) + # Y_prob = F.softmax(logits, dim = 1) + # # print(logits.shape) + # # print(Y_prob) + # # print(bag.shape) + # instance_count = bag.size(0) + # # data_ft.requires_grad=True + # Y = torch.argmax(label) + # target = [ClassifierOutputTarget(Y)] + # grayscale_cam = cam(input_tensor=bag.squeeze(), targets=target, eigen_smooth=True) + # grayscale_cam = torch.Tensor(grayscale_cam)[:instance_count, :] #.to(self.device) + + # #---------------------------------------------------- + # # Get Topk Tiles and Topk Patients + # #---------------------------------------------------- + # k = 10 + # summed = torch.mean(grayscale_cam, dim=2) + # topk_tiles, topk_indices = torch.topk(summed.squeeze(0), k, dim=0) + + # topk_data = bag[topk_indices].detach() + + # test_topk_data.append(topk_data) + # test_logits.append(logits) + # test_probs.append(Y_prob) - AUROC = torchmetrics.AUROC(num_classes = n_classes) - - start = time.time() - test_logits = [] - test_probs = [] - test_labels = [] - data = [{"count": 0, "correct": 0} for i in range(n_classes)] - - for item in tqdm(dl): - - bag, label, (name, batch_coords, patient) = item - # label = label.float() - Y = int(label) - - bag = bag.float().to(device) - # print(bag.shape) - bag = bag.unsqueeze(0) - with torch.cuda.amp.autocast(): - batch_size = bag.shape[0] - bag_size = bag.shape[1] - bag = bag.view(batch_size*bag_size, bag.shape[2], bag.shape[3], bag.shape[4]) - feats = self.model_ft(bag).unsqueeze(0) - # print(feats.shape) - # print(x.shape) - # if feats.dim() == 3: - feats = feats.view(batch_size, bag_size, -1) - logits = model(feats) - Y_hat = torch.argmax(logits, dim=1) - Y_prob = F.softmax(logits, dim = 1) - - # print(Y_prob) - - test_logits.append(logits) - test_probs.append(Y_prob) - - test_labels.append(label) - data[Y]['count'] += 1 - data[Y]['correct'] += (int(Y_hat) == Y) - probs = torch.cat(test_probs).detach().cpu() - targets = torch.stack(test_labels).squeeze().detach().cpu() - print(probs.shape) - print(targets.shape) + # test_labels.append(label) + + # save_attention_map(name, batch_coords, grayscale_cam, target=Y) + + # for y, y_hat in zip(label, Y_hat): + # y = int(y) + # # print(Y_hat) + # data[y]["count"] += 1 + # data[y]["correct"] += (int(y_hat) == y) + + + + # test_logits = torch.cat(test_logits, dim=0) + # probs = torch.cat(test_probs).detach().cpu() + # if n_classes <=2: + # out_probs = probs[:,1] + # else: out_probs = probs + # targets = torch.cat(test_labels).squeeze().detach().cpu() + # # print(test_logits) + # # print(targets) + # # print(test_logits.shape) + # # print(targets.shape) - for c in range(n_classes): - count = data[c]['count'] - correct = data[c]['correct'] - if count == 0: - acc = None - else: - acc = float(correct) / count - print('class {}: acc {}, correct {}/{}'.format(c, acc, correct, count)) + # for c in range(n_classes): + # count = data[c]['count'] + # correct = data[c]['correct'] + # if count == 0: + # acc = None + # else: + # acc = float(correct) / count + # print('class {}: acc {}, correct {}/{}'.format(c, acc, correct, count)) - auroc = AUROC(probs, targets) - print(auroc) - end = time.time() - print('Bag Time: ', end-start) + # # auroc = AUROC(probs, targets) + # auroc = binary_auroc(out_probs, targets) + # print(auroc) + # end = time.time() + # print('Bag Time: ', end-start) - \ No newline at end of file diff --git a/code/train.py b/code/train.py index 984a609..980f5f4 100644 --- a/code/train.py +++ b/code/train.py @@ -9,7 +9,7 @@ from datasets.data_interface import MILDataModule, CrossVal_MILDataModule # from datasets.data_interface import DataInterface, MILDataModule, CrossVal_MILDataModule from models.model_interface import ModelInterface from models.model_interface_classic import ModelInterface_Classic -from models.model_interface_dtfd import ModelInterface_DTFD +# from models.model_interface_dtfd import ModelInterface_DTFD import models.vision_transformer as vits from utils.utils import * @@ -18,44 +18,44 @@ import pytorch_lightning as pl from pytorch_lightning import Trainer from pytorch_lightning.strategies import DDPStrategy import torch -from train_loop import KFoldLoop -from pytorch_lightning.plugins.training_type import DDPPlugin +# from train_loop import KFoldLoop +# from pytorch_lightning.plugins.training_type import DDPPlugin -try: - import apex - from apex.parallel import DistributedDataParallel - print('Apex available.') -except ModuleNotFoundError: - # Error handling - pass +# try: +# import apex +# from apex.parallel import DistributedDataParallel +# print('Apex available.') +# except ModuleNotFoundError: +# # Error handling +# pass -def unwrap_lightning_module(wrapped_model): - from apex.parallel import DistributedDataParallel - from pytorch_lightning.overrides.base import ( - _LightningModuleWrapperBase, - _LightningPrecisionModuleWrapperBase, - ) +# def unwrap_lightning_module(wrapped_model): +# from apex.parallel import DistributedDataParallel +# from pytorch_lightning.overrides.base import ( +# _LightningModuleWrapperBase, +# _LightningPrecisionModuleWrapperBase, +# ) - model = wrapped_model - if isinstance(model, DistributedDataParallel): - model = unwrap_lightning_module(model.module) - if isinstance( - model, (_LightningModuleWrapperBase, _LightningPrecisionModuleWrapperBase) - ): - model = unwrap_lightning_module(model.module) - return model +# model = wrapped_model +# if isinstance(model, DistributedDataParallel): +# model = unwrap_lightning_module(model.module) +# if isinstance( +# model, (_LightningModuleWrapperBase, _LightningPrecisionModuleWrapperBase) +# ): +# model = unwrap_lightning_module(model.module) +# return model -class ApexDDPPlugin(DDPPlugin): - def _setup_model(self, model): - from apex.parallel import DistributedDataParallel +# class ApexDDPPlugin(DDPPlugin): +# def _setup_model(self, model): +# from apex.parallel import DistributedDataParallel - return DistributedDataParallel(model, delay_allreduce=False) +# return DistributedDataParallel(model, delay_allreduce=False) - @property - def lightning_module(self): - return unwrap_lightning_module(self._model) +# @property +# def lightning_module(self): +# return unwrap_lightning_module(self._model) @@ -74,6 +74,8 @@ def make_parse(): # parser.add_argument('--batch_size', default = 1, type=int) parser.add_argument('--resume_training', action='store_true') parser.add_argument('--label_file', type=str) + # parser.add_argument('--from_ft', action='store_true') + parser.add_argument('--fine_tune', action='store_true') args = parser.parse_args() @@ -83,6 +85,7 @@ def make_parse(): def main(cfg): torch.set_num_threads(8) + torch.set_float32_matmul_precision('high') #---->Initialize seed pl.seed_everything(cfg.General.seed) @@ -106,14 +109,16 @@ def main(cfg): home = Path.cwd().parts[1] train_classic = False - if cfg.Model.name in ['inception', 'resnet18', 'resnet50', 'vit']: + if cfg.Model.name in ['inception', 'resnet18', 'resnet50', 'vit', 'efficientnet']: train_classic = True use_features = False - if cfg.Model.backbone == 'features': use_features = True + # elif cfg.Model.backbone == 'simple': + # use_features = False else: use_features = False + DataInterface_dict = { 'data_root': cfg.Data.data_dir, 'label_path': cfg.Data.label_file, @@ -133,7 +138,6 @@ def main(cfg): dm = CrossVal_MILDataModule(**DataInterface_dict) else: dm = MILDataModule(**DataInterface_dict) - #---->Define Model ModelInterface_dict = {'model': cfg.Model, @@ -166,23 +170,28 @@ def main(cfg): max_epochs= cfg.General.epochs, min_epochs = 500, accelerator='gpu', + # strategy='ddp', # plugins=plugins, devices=cfg.General.gpus, - strategy=DDPStrategy(find_unused_parameters=False), - replace_sampler_ddp=False, - amp_backend='native', + # replace_sampler_ddp=False, + # amp_backend='native', + # precision='16-mixed', precision=cfg.General.precision, # accumulate_grad_batches=cfg.General.grad_acc, + use_distributed_sampler=False, + enable_progress_bar=True, gradient_clip_val=0.0, # fast_dev_run = True, # limit_train_batches=1, # deterministic=True, - check_val_every_n_epoch=1, + accumulate_grad_batches=10, + check_val_every_n_epoch=5, ) else: trainer = Trainer( - # num_sanity_val_steps=0, + # deterministic=True, + num_sanity_val_steps=-1, logger=cfg.load_loggers, callbacks=cfg.callbacks, max_epochs= cfg.General.epochs, @@ -191,9 +200,10 @@ def main(cfg): # gpus=cfg.General.gpus, accelerator='gpu', devices=cfg.General.gpus, - amp_backend='native', + # amp_backend='native', # amp_level=cfg.General.amp_level, - precision=cfg.General.precision, + precision='16-mixed', + # precision=cfg.General.precision, accumulate_grad_batches=cfg.General.grad_acc, gradient_clip_val=0.0, log_every_n_steps=10, @@ -202,7 +212,7 @@ def main(cfg): # deterministic=True, # num_sanity_val_steps=0, - check_val_every_n_epoch=1, + check_val_every_n_epoch=5, ) # print(cfg.log_path) # print(trainer.loggers[0].log_dir) @@ -219,9 +229,13 @@ def main(cfg): shutil.copytree(copy_origin, copy_path, dirs_exist_ok=True) #---->train or test - if cfg.resume_training: - last_ckpt = log_path = Path(cfg.log_path) / 'lightning_logs' / f'version_{cfg.version}' / 'last.ckpt' - trainer.fit(model = model, ckpt_path=last_ckpt) #, datamodule = dm + # if cfg.resume_training: + # last_ckpt = Path(cfg.log_path) / 'lightning_logs' / f'version_{cfg.version}' / 'last.ckpt' + # print('Resume Training from: ', last_ckpt) + # model = model.load_from_checkpoint(checkpoint_path=last_ckpt, cfg=cfg) + # # trainer.fit(model = model, ckpt_path=last_ckpt) #, datamodule = dm + # trainer.fit(model, dm) + # print(cfg.resume_training) if cfg.General.server == 'train': @@ -231,14 +245,23 @@ def main(cfg): trainer.fit_loop = KFoldLoop(cfg.Data.nfold, export_path = cfg.log_path, **ModelInterface_dict) trainer.fit_loop.connect(internal_fit_loop) trainer.fit(model, dm) - else: + elif cfg.resume_training: + last_ckpt = Path(cfg.log_path) / 'lightning_logs' / f'version_{cfg.version}' / 'checkpoints' / 'last.ckpt' + print('Resume Training from: ', last_ckpt) + model = model.load_from_checkpoint(checkpoint_path=last_ckpt, cfg=cfg) + # trainer.fit(model = model, ckpt_path=last_ckpt) #, datamodule = dm + trainer.fit(model, dm) + else: trainer.fit(model = model, datamodule = dm) + # trainer.test(model = model, datamodule = dm) else: + # if cfg.fine_tune: + # log_path = Path(cfg.log_path) / 'lightning_logs' / f'version_{cfg.version}'/'checkpoints' + # else: log_path = Path(cfg.log_path) / 'lightning_logs' / f'version_{cfg.version}'/'checkpoints' model_paths = list(log_path.glob('*.ckpt')) - if cfg.epoch == 'last': model_paths = [str(model_path) for model_path in model_paths if f'last' in str(model_path)] elif int(cfg.epoch) < 10: @@ -247,10 +270,15 @@ def main(cfg): else: model_paths = [str(model_path) for model_path in model_paths if f'epoch={cfg.epoch}' in str(model_path)] # model_paths = [f'{log_path}/epoch=279-val_loss=0.4009.ckpt'] - - for path in model_paths: - print(path) - model = model.load_from_checkpoint(checkpoint_path=path, cfg=cfg) + # print(model_paths) + + # for path in model_paths: + path = model_paths[0] + # print(path) + model = model.load_from_checkpoint(checkpoint_path=path, cfg=cfg) + if cfg.General.server == 'val': + trainer.validate(model=model, datamodule=dm) + elif cfg.General.server == 'test': trainer.test(model=model, datamodule=dm) @@ -291,6 +319,9 @@ if __name__ == '__main__': cfg.Loss.base_loss = args.loss cfg.Data.bag_size = args.bag_size cfg.version = args.version + cfg.fine_tune = args.fine_tune + cfg.resume_training = args.resume_training + if args.label_file: cfg.Data.label_file = '/home/ylan/DeepGraft/training_tables/' + args.label_file @@ -307,7 +338,8 @@ if __name__ == '__main__': cfg.task = task # task = Path(cfg.config).name[:-5].split('_')[2:][0] cfg.log_path = log_path / f'{cfg.Model.name}' / task / log_name - + cfg.log_name = log_name + print(cfg.task) cfg.epoch = args.epoch diff --git a/code/utils/__init__.py b/code/utils/__init__.py index 5caecf7..c8d3e1d 100644 --- a/code/utils/__init__.py +++ b/code/utils/__init__.py @@ -1 +1,2 @@ -from .custom_resnet50 import resnet50_baseline \ No newline at end of file +from .custom_resnet50 import resnet50_baseline +import utils \ No newline at end of file diff --git a/code/utils/__pycache__/__init__.cpython-38.pyc b/code/utils/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7699918e64ac1af8c719fdf7ee9ceb55858c6dfc GIT binary patch literal 210 zcmWIL<>g{vU|?{IGD+5BU|@I*;vi!t1_lNP1_p*=0R{$!6owSW9EM!RC`Lwx6sBMX zP3D)33=9mKjJE`fQj7CaOH2*olM;(lb29T%{WO`P_>)VEOY(E$VUk54(^fJRF*7hg zh+lU48Tq-X`jt6}dHUt~McKs#iOH$@Aw`LK#lD_Cx-O}y1@1+OX(jr}`6;RTr6rj; h#rpB_nR%Hd@$q^EmA5!-a`RJ4b5iX<?)VIHH~_a|H2MGl literal 0 HcmV?d00001 diff --git a/code/utils/__pycache__/__init__.cpython-39.pyc b/code/utils/__pycache__/__init__.cpython-39.pyc index dcda699d2566f65d9c29aac8a8f8bc255eb8cf7e..ddf26f5c1d3e871d39c4cc9e2760837db47b72e3 100644 GIT binary patch delta 113 zcmcb__=1r)k(ZZ?fq{Xc$2uy-dLpl^oCE^{LkdF*V-7<uV-zDJLkd$0a}HA!Qwno1 zgC@&F2PwUmAoYHl%(wWHON&eLbK{Fri}O-TObv>d7#J9Cv6hx(<`l1FC}Lw^U?^gn NSQE%z43gks1OSN=8P)&* delta 113 zcmaFCc!`lWk(ZZ?fq{X+Ey^TWZz8X3kN^V%LkdF*V-7<uV-zDJLkd$cgC_G!Mg|53 zO~zY-MXAMksU@Zc@kxorsX3W>seYPFQT)lJ#U=T<@i56ECI$wEl?+A93=9lK%o8UB JvVI2H0RY7i8;<}0 diff --git a/code/utils/__pycache__/custom_resnet50.cpython-38.pyc b/code/utils/__pycache__/custom_resnet50.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..749fd64cf29d0f9d5c412acfcc22c76e86446276 GIT binary patch literal 4059 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 F7XaZ9)BOMd literal 0 HcmV?d00001 diff --git a/code/utils/__pycache__/utils.cpython-38.pyc b/code/utils/__pycache__/utils.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..726145b80b854762b16b5e325602c1b2982c62ec GIT binary patch literal 9588 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 literal 0 HcmV?d00001 diff --git a/code/utils/__pycache__/utils.cpython-39.pyc b/code/utils/__pycache__/utils.cpython-39.pyc index 7323a9ff0b5a105e42a911fa4478357cbd7b97a1..1e7ec41fb93909621df30a4580ee96a07956c7d0 100644 GIT binary patch literal 9439 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 Ngu{}<mMe;j2>{dI`L_T7 delta 2328 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 BZZ-e_ diff --git a/code/utils/export_metrics.ipynb b/code/utils/export_metrics.ipynb new file mode 100644 index 0000000..be5a44e --- /dev/null +++ b/code/utils/export_metrics.ipynb @@ -0,0 +1 @@ +{"cells":[{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["/home/ylan/miniconda3/envs/pytorch2/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n"," from .autonotebook import tqdm as notebook_tqdm\n"]}],"source":["import argparse\n","from pathlib import Path\n","import numpy as np\n","from tqdm import tqdm\n","\n","import cv2\n","from PIL import Image, ImageFilter\n","from matplotlib import pyplot as plt\n","plt.style.use('tableau-colorblind10')\n","import pandas as pd\n","import json\n","import pprint\n","import seaborn as sns\n","import torch\n","\n","import torchmetrics\n","from torchmetrics import PrecisionRecallCurve, ROC\n","from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve, confusion_matrix\n","from torchmetrics.utilities.compute import _auc_compute_without_check, _auc_compute\n"]},{"cell_type":"code","execution_count":2,"metadata":{},"outputs":[{"data":{"text/plain":["'CLAM'"]},"execution_count":2,"metadata":{},"output_type":"execute_result"}],"source":["'''TransMIL'''\n","a = 'features'\n","add_on = '1'\n","\n","task = 'norm_rest'\n","model = 'TransMIL'\n","version = '804'\n","epoch = '30'\n","labels = ['Disease']\n","\n","\n","# task = 'rest_rej'\n","# model = 'TransMIL'\n","# version = '63'\n","# epoch = '14'\n","# labels = ['Rejection']\n","\n","# task = 'norm_rej_rest'\n","# model = 'TransMIL'\n","# version = '53'\n","# epoch = '17'\n","# labels = ['Normal', 'Rejection', 'Rest']\n","\n","'''ViT'''\n","# a = 'vit'\n","\n","# task = 'norm_rest'\n","# model = 'vit'\n","# version = '16'\n","# epoch = '142'\n","# labels = ['Disease']\n","\n","# task = 'rej_rest'\n","# model = 'vit'\n","# version = '1'\n","# epoch = 'last'\n","# labels = ['Rest']\n","\n","# task = 'norm_rej_rest'\n","# model = 'vit'\n","# version = '0'\n","# epoch = '226'\n","# labels = ['Normal', 'Rejection', 'Rest']\n","\n","'''CLAM'''\n","# task = 'norm_rest'\n","# model = 'CLAM'\n","# labels = ['REST']\n","\n","# task = 'rej_rest'\n","# model = 'CLAM'\n","# labels = ['REST']\n","\n","# task = 'norm_rej_rest'\n","# model = 'CLAM'\n","# labels = ['NORMAL', 'REJECTION', 'REST']\n","# labels = ['Normal', 'Rejection', 'Rest']\n","# if task == 'norm_rest' or task == 'rej_rest':\n","# n_classes = 2\n","# PRC = torchmetrics.PrecisionRecallCurve(task='binary')\n","# ROC = torchmetrics.ROC(task='binary')\n","# else: \n","# n_classes = 3\n","# PRC = torchmetrics.PrecisionRecallCurve(task='multiclass', num_classes = n_classes)\n","# ROC = torchmetrics.ROC(task='multiclass', num_classes=n_classes)\n","\n","\n"]},{"cell_type":"code","execution_count":3,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["/home/ylan/workspace/TransMIL-DeepGraft/logs/DeepGraft/TransMIL/norm_rest/_features_CrossEntropyLoss/lightning_logs/version_804/test_epoch_30\n","/home/ylan/workspace/TransMIL-DeepGraft/logs/DeepGraft/TransMIL/norm_rest/_features_CrossEntropyLoss/lightning_logs/version_804/test_epoch_30/TEST_RESULT_PATIENT.csv\n"," Unnamed: 0 PATIENT yTrue Normal Disease\n","0 0 KiBiAcREZZ331 1 0.135010 0.865234\n","1 1 KiBiAcVUFQ120 0 0.784180 0.215820\n","2 2 KiBiAcFZJQ730 1 0.203613 0.796387\n","3 3 KiBiAcNCMV110 1 0.269043 0.730957\n","4 4 KiBiAcTTVB560 1 0.050018 0.950195\n",".. ... ... ... ... ...\n","168 168 KiBiAcYEYR260 0 0.409424 0.590820\n","169 169 KiBiAcZHCX830 1 0.223022 0.776855\n","170 170 KiBiAcZKQY690 1 0.303223 0.696777\n","171 171 KiBiAcZRMP870 1 0.147217 0.852539\n","172 172 KiBiAcZUXX151 1 0.033478 0.966309\n","\n","[173 rows x 5 columns]\n","tensor([0.8652, 0.2158, 0.7964, 0.7310, 0.9502, 0.6284, 0.6396, 0.6494, 0.5610,\n"," 0.8223, 0.7534, 0.2170, 0.8047, 0.5322, 0.6660, 0.9512, 0.8809, 0.5366,\n"," 0.9487, 0.8501, 0.8931, 0.5732, 0.7661, 0.8789, 0.8867, 0.5664, 0.9419,\n"," 0.7690, 0.8389, 0.5537, 0.9175, 0.8330, 0.6401, 0.4529, 0.3450, 0.7725,\n"," 0.8604, 0.9009, 0.6860, 0.8071, 0.8955, 0.8418, 0.5566, 0.9165, 0.9072,\n"," 0.5669, 0.6973, 0.7969, 0.9404, 0.5830, 0.8828, 0.6050, 0.8643, 0.5991,\n"," 0.5107, 0.8843, 0.9639, 0.9136, 0.9575, 0.7964, 0.5371, 0.5127, 0.2839,\n"," 0.9722, 0.8560, 0.7930, 0.6313, 0.6250, 0.8208, 0.9707, 0.8877, 0.5737,\n"," 0.9189, 0.5918, 0.6445, 0.9292, 0.7485, 0.9453, 0.8984, 0.5264, 0.8525,\n"," 0.7148, 0.7695, 0.7266, 0.9355, 0.9536, 0.9043, 0.5913, 0.8091, 0.9121,\n"," 0.6616, 0.9229, 0.8818, 0.5410, 0.6880, 0.8232, 0.8877, 0.7949, 0.6836,\n"," 0.8486, 0.8999, 0.3425, 0.9277, 0.5327, 0.6665, 0.5229, 0.7109, 0.7422,\n"," 0.5415, 0.7129, 0.8208, 0.8740, 0.5420, 0.8276, 0.2900, 0.4573, 0.8745,\n"," 0.9829, 0.3394, 0.6943, 0.9307, 0.9595, 0.9219, 0.8604, 0.7773, 0.6553,\n"," 0.7822, 0.9375, 0.9512, 0.3113, 0.8115, 0.7344, 0.7295, 0.7451, 0.9536,\n"," 0.2046, 0.6475, 0.6221, 0.8940, 0.7534, 0.2534, 0.8696, 0.7783, 0.2404,\n"," 0.7168, 0.7974, 0.3701, 0.9277, 0.7983, 0.8467, 0.9614, 0.5732, 0.8555,\n"," 0.6504, 0.2200, 0.9536, 0.7646, 0.5190, 0.8525, 0.8916, 0.7803, 0.7612,\n"," 0.5498, 0.6406, 0.5581, 0.6895, 0.6699, 0.9590, 0.5908, 0.7769, 0.6968,\n"," 0.8525, 0.9663], dtype=torch.float64)\n"]}],"source":["'''Find Directory'''\n","\n","home = Path.cwd().parts[1]\n","root_dir = f'/{home}/ylan/workspace/TransMIL-DeepGraft/logs/DeepGraft/{model}/{task}/_{a}_CrossEntropyLoss/lightning_logs/version_{version}/test_epoch_{epoch}'\n","print(root_dir)\n","patient_result_csv_path = Path(root_dir) / 'TEST_RESULT_PATIENT.csv'\n","print(patient_result_csv_path)\n","threshold_csv_path = f'{root_dir}/val_thresholds.csv'\n","\n","# patient_result_csv_path = Path(f'/{home}/ylan/workspace/HIA/logs/DeepGraft_Lancet/clam_mb/DEEPGRAFT_CLAMMB_TRAINFULL_{task}/RESULTS/TEST_RESULT_PATIENT_BASED_FULL.csv')\n","# threshold_csv_path = ''\n","\n","output_dir = f'/{home}/ylan/workspace/TransMIL-DeepGraft/test/results/{model}/'\n","Path(output_dir).mkdir(parents=True, exist_ok=True)\n","\n","patient_result = pd.read_csv(patient_result_csv_path)\n","pprint.pprint(patient_result)\n","\n","\n","\n","probs = torch.from_numpy(np.array(patient_result[labels]))\n","probs = probs.squeeze()\n","\n"," \n","# print(probs.shape)\n","\n","print(probs)\n","\n","\n","# probs = \n"," \n","# probs = torch.transpose(probs, 0,1).squeeze()\n","target = torch.from_numpy(np.array(patient_result.yTrue))\n","\n","#swap values for rest_rej for it to align\n","if task == 'rest_rej':\n"," probs = 1-probs\n"," target = -1 * (target-1)\n"," task = 'rej_rest'\n","if add_on == '0':\n"," target = -1 * (target-1)\n","\n","# \n","# target = torch.stack((fake_target, target), dim=1)\n","# print(target.shae)\n","# print(target)\n","# target = -1 * (target-1)\n","# print(target)\n","\n"]},{"cell_type":"code","execution_count":4,"metadata":{},"outputs":[],"source":["from utils import get_roc_curve, get_pr_curve, get_confusion_matrix"]},{"cell_type":"code","execution_count":5,"metadata":{},"outputs":[{"data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAi0AAAIcCAYAAAA6z556AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABW9UlEQVR4nO3deXxU1f3/8ffMJDOTPYGQlUBYRFBWWWLABWxqVERRa1EUKFVcCtrCVwUKAq64l/4q4IraVsuiiFYoiiBbwSJIBERQ2bdsQPZ95v7+QEYjCSRxkslNXs/HYx5k7px7z2du09y39557rsUwDEMAAACNnNXXBQAAANQEoQUAAJgCoQUAAJgCoQUAAJgCoQUAAJgCoQUAAJgCoQUAAJgCoQUAAJgCoQUAAJgCoQUAAJiCKULL2rVrNWTIEMXFxclisWjJkiXnXGf16tW66KKL5HA41LFjR7355pv1XicAAKg/pggthYWF6tGjh2bPnl2j9vv27dPgwYM1aNAgpaWl6U9/+pPuvPNOffzxx/VcKQAAqC8Wsz0w0WKx6P3339fQoUOrbTNx4kQtXbpUO3bs8Cy75ZZblJOTo+XLlzdAlQAAwNv8fF1Afdi4caNSUlIqLUtNTdWf/vSnatcpLS1VaWmp573b7daJEyfUsmVLWSyW+ioVAIAmxzAM5efnKy4uTlar9y7qNMnQkp6erujo6ErLoqOjlZeXp+LiYgUEBJyxzsyZM/XII480VIkAADR5hw4dUuvWrb22vSYZWupi8uTJmjBhgud9bm6u2rRpo0OHDik0NNSHlcGMXG5Df/rHFn19JEd92rXQIzd216EThWrTMlhOu83X5QFAvcrLy1NCQoJCQkK8ut0mGVpiYmKUkZFRaVlGRoZCQ0OrPMsiSQ6HQw6H44zloaGhhBbUyaO3Jmnk3A1KO1qq/+4r0AWtwxQaSmgB0Hx4e3iFKe4eqq3k5GStXLmy0rIVK1YoOTnZRxWhOWobGaQxgzpKkmZ/+p1OFpb5uCIAMDdThJaCggKlpaUpLS1N0qlbmtPS0nTw4EFJpy7tjBw50tP+nnvu0d69e/XQQw9p165dmjNnjhYuXKjx48f7onw0Y7f2T9QF8WEqLK3Qm2v3ymQ36wFAo2KK0LJ582b16tVLvXr1kiRNmDBBvXr10rRp0yRJx44d8wQYSWrXrp2WLl2qFStWqEePHnr++ef12muvKTU11Sf1o/myWS2aOrSr/G0WfXUwR59sP+brkgDAtEw3T0tDycvLU1hYmHJzcxnTgl/stc++12ur9yjIYdM//zBAseFVj60CgKagvo6hpjjTApjdLclt1TE6WIWlLj36/na53fy3AgDUFqEFaAB+VqvuGtRRTn+btu4/qX9tPODrkgDAdAgtQAOJCnNq3K87SZJeWvmtvs/Ir9X65RXu+igLAEyjSc7TAjRWg3vG6fM92Vq/O0vT39umB67potzicuUWlSu3qEy5xeXKKy5XXtEP/xaXK6/k1L+l5W4lnxepF267iEdLAGiWCC1AA7JYLJp83YW6fc4G7cko0L1vfFGr9Td+l62dR3J1Yevw+ikQABoxQgvQAPxsFrUMdnj+nX5jNz3176/lb7MqPNCu0AB/hQX6KyzAX2E/vA8J8FNYwKmfQwP8NOfT7/TpjnQt2XyY0AKgWeKW52pwyzMam7QDJ3XPvE1y+tv00QOXK9jp7+uSAKBK9XUM5UwLYBI92oQrsVWQ9mcVavlXx/SbpDa+LqnelZS7PGN78n/4t6C0QnHhAeoSHyanP89xApoTQgtgEhaLRTf0TtBflu/S+1sO6aZ+CaYZkOtyG8ovLldOUZlyfhhknFtUdmoAcvFPBiH/dABycblKz3LHlM1q0fmxoereJlzdE8LVvU2EIkPOfOhphcutk4Vligiyy8/GDZOAmRFaABO5umec5nz6rfZkFGjH4Vx1Swj3SR0ut6HcojKdLKz6dTqcnCwsU25RmfKKy1XX+fRsVsupMT5OP4UE+CvAbtO+zAIdLyjTziO52nkkV/N/mPcmNjxA3duEq1tCuHq0CVf7qBBVuAwdLyhViNNffpyYAUyN0AKYSGiAv351YYyWfXVU728+5NXQYhiG8orLdbygTMcLSk+98st04oefTxSeWn6i4FQQqUsICXb6KTzQX6EB9p8MPPY/NeA48NTPoQH+ngHIYQH+CnTYzjijZBiGjuUUa9uhHG07mKPth3L0fUa+juUU61hOsT7eduoZT4EOmy6IC1PnuFCNvqyDN3YTAB9iIG41GIiLxmrbwZO66/VNcvhZ9e8HBio04NwDcovLKpSVV6rMvBJl5Zcq64d/s394ZeWX6ERBmcpqOYFdWKC/wgPtahFsV0SgXRFBdoUHnfo5PMiuiKBTd0NFBJ4KKfV5eaawpEI7jvwYYnYczlFRqcvzeb/2LfXYzd0VFmivtxoAnFJfx1BCSzUILWisDMM4Nc9LZoHGX91ZN/RJUEZusTJyS5SeW6LM3BJl5JUoI7dEWXklyswrUX5JRY23Hxrgp5bBDrUMdqhFsEMtg+0//Gz3vI8Icii8nkPIL+VyG9qbma//7s7SvLV7VVbhVlxEgJ6+pafOi+H/00B9IrQ0MEILGrN3/3dQzy37RjarRa4aXqcJtNvUKtSpVqEORYU4FRniOPUKdahViPOHoGKXo4ndkVNS5tKaXRl6aeX3OpZTLIe/VXdc3kF2P6tOFpbrZGGpHP42jRjQTlFhTl+XCzQJhJYGRmhBY1ZQUq6b/rpOuUXlkiSHv1UxYQGKDnMqOtSpqDCnYsKcivrh56gQp4KczXMIW0mZS/uzC9QiyKEnP/xan3+fXWW70AB/TR3aVf3Pi+RuI+AXIrQ0MEILGrvjP4xFiQ4LUHigv2luf25oP73l2WKx6J0N+7Vpz3HPeJyIIH+t252lXUfzJEk39knQVT1i1SkmVE570zrrBDQUQksDI7QAzUd5hVtzPv1W//rh1umEloF6/Dc9dH5cw/1/v6TcpZwfbhc/UVgmm8WiPu1bymYljMJ8CC0NjNACND8bvsvSo4u3K6eoXHY/q+5PPV839a3bJH6nbyE/UVimEwVlOlF46nbxk4WnbiP/+dw2RWWuM7bROS5UE6+9QOfFhHDJCqZCaGlghBageTpyvEjTF2/TjsO5kqQBnVppyvUXqkXwqdl2S8pcyvbMY3Pq3+wf5rM5PZfN6flsajpI+jQ/m0URP9wyfjSnWAUlFbJapKG9E5TSNVoXxIdzyQqmQGhpYIQWoHkqKXNpb1a+tuw7qVdWfadyl+EZ/3K8oFQFtbh9XJJCnH5qEexQi6Af5rMJsqtFkOPUvz+8P/0Kcvh5zuoczy/VXz/erU+2n5ooLzzQX/ddeb6u6RnH+CU0eoSWBkZoAZqn03cbJUYG69CJIs14b5v2ZBZUauP0tyky5PS8NT/OZdMy2KGWIT8NKA7Z/X7Z5ZxNe47rmY926vCJIklSn3Yt9H+Du6hdq+BftF2gPhFaGhihBWiefv6AxdJyl77cf0J2P6siQ5yKDHZU+WiB+pRbVKaXVn6npWlHVVbhls1q0a3JbfX7yzso0NE8b2VH40ZoaWCEFgCNxemzP3abVXNWfqf1u7MkSZEhDt2bcp6u7h4nt2EwWBeNBqGlgRFaADQWPz/7s253pmb9Z5eOnCyWJHWJC9UfUjopJMBPiZHBDNaFzxFaGhihBUBjVlbh1sLPD2je2j2eB0P+pl+Cxv36fEILfK6+jqGcQwQAE7L7WXX7Je206P5LNeSieEnSks2HlZ5b7OPKgPpDaAEAE2sZ7NCfr7tQFyVGqMJtaN6aPb4uCag3hBYAMDmLxaK7rzhPkrRie7q+PZbn44qA+kFoAYAm4MLWYbrs/FYyJM1e8a2vywHqBaEFAJoAP5tVf7yqs/xsFv1vz3Ft2nO8Tttxuw2dKCjVrqO52n0sT6fv1XC7DRWW1m42YMDbmJUIAJqI+BaBurFPghb+76BeXLFbb7ZLlvUnT4k+/RDH9NwSZeSWKDO3RBl5P/ycd+qVlVeictePN5VeEB+m0Ze3V4+EcO3NKlDrFkGKDHH44usB3PJcHW55BmBGJwvLdNNf16qo1KVre8XLapEnpKTnFqu03H3ObVgspwb45heXq7TiVPv2UcEa0KmVLmobofPjQj0PkASqUl/HUM60AEATEhFk14gB7fTyqu/10dYj1baJDnMqOtSpqB/+jQ778efIEIf8bFYdLyjV/I0H9N6mg9qbWaC9mQUqKCmXn80qm9WisEB7A387NHeEFgBoYm7tn6gThWUqKXMpJtyp6LAAxYT9EExCnXL412zyuZbBDo39dSfdPiBRcz79Th9sOaz/fHVUXVuHy2KRzo8NVUiAfz1/G+BHXB6qBpeHAOBHOUVluuu1/+ng8SL1bd9CNye1VUiAn7q1DudZRzgDM+ICAHzGbrNq2MVtZbVIX+w9oUPZBSotc6vCzX/3ouEQWgAA5xTo8FOPNuEa0KmVJOlfGw+qrOLcg3oBbyK0AABqJCosQFf3iFVEkF3ZBaX6ZPsxX5eEZobQAgCokRCnn+IjgnTdRa0lSat2pmtPRr6Pq0JzQmgBANSIxWJRVJhTXVuHqntCuNyG9NC/tmp/VoGvS0MzQWgBANRYWIC/IoIdGnJRvGLDA3S8oExj3/xC+2oZXCpcbqXnFKuIRwOgFrjluRrc8gwAVTueX6rth3NUUWHojbV7tCezQC2C7Zo9qq/aRQVLOvXIgJOFZTp6slhHc4p15ESRjuYU69gP7zNyS+RyG4oND9Bb9yQrlPlempT6OoYSWqpBaAGAqrnchnYcylFxmUvtooL04Dtb9W16viKC7OqeEK4jJ4t09GSxispcNdrer7vG6LGbe9Rz1WhITOMPAGgUbFaLYsMDdORkkcIC7frbqD667++b9e2xfK3ZlelpZ7FIrUKcio8IUGxEgOLCAxTfIlCx4QGKiwhQZm6J7p63SSt2pOvSzlG6slusD78VzIDQAgCotRbBdlW4DdltVjn9bZo9qq+WfXVUNotFcS0CFB9xKpzY/aofOhkV6tToy9rrtdV79MxHO9WjTbiiwwIa8FvAbLg8VA0uDwFA/atwuXXX65u080iuurcJ14ODuygxMlj+Zwk7aPyYxh8A0OT42ayacVM3Of1t2nYwR//acEDfZ+SrpLxm42HQvBBaAAA+1aZlkP6Yer4k6ePtx/Sfr47ou2N5KuR2aPwMoQUA4HND+7TW5Z2j5HIbWvi/Q1r4v4PadSRXecXlvi4NjQihBQDgcxaLRfeldtJl5596IOOKHemat3aPDmYX+rgyNCaEFgBAoxAR6NDw/u00tHdrWSzSln0n9czSnVq/O1PlNXyiNPeWNG3c8gwAaBSCnH46Py5E/n7xCgv01782HtC3x/L1wDtbFRrgrysuiFbv9i2UmVuqwycKdeh4kfKKy9WnfUv96sJonRcdou8y8hUV6lSrUKevvw7qAbc8V4NbngHAN8or3NqfXaCt+09q+6Ecfbn/hI4XlJ1zvegwpy6IC9NlnVupa0K44iICZbNaGqBi/BzT+DcwQgsA+I7LbejIiSJVuA21jQzSl/tP6JNtx7Q3q0AxYQFKaBmohJaBstusWrsrU+u/zVLxD48NCA3w12392yr5vFZqGxkkh7/Nx9+m+SG0NDBCCwD4nmEYsljOfbakpMyltbszNWfFt0rPLZHNatGQXvG6pkes2keHKNjJAxkbEs8eAgA0OzUJLJLktNs0sEu0Ah02/X3tXm07lKslWw7r8Iki3do/UefFhKhViKPG20PjxN1DAIAmwe5nVdf4cN3zq/N0dfdYWSzS5n0n9Npn3+ubwzk6kF2oClfN7kJC48SZFgBAkxEeZNcF8eEKsPsprkWg/r5un745mqcVO9KV0jVWxWUudYgOOeuDHNF4EVoAAE2K027TeTEhCrTbVFpeoX/+94A+/TpDrVsGSpKiwpxqGezwcZWoC6ImAKDJ8bNZ1bZVsIb0aq1fXRgtSfrH+v06kF3g48rwSxBaAABNVmxEoG7q20Y92oTL5Tb09/X7lZlb4uuyUEeEFgBAk2X3s6pNZJB+m9RGCS0DVVhaoQf/tVVb95/wdWmoA0ILAKBJaxlsV0LLIN3WP1GRIQ5l55dq7Jtf6NVV31d5N1FpuUt7MvK16ut0zVuzR2+s2aNtB0+qwuVWYUmFDp8oktvNFGe+wORy1WByOQBoOgpLK7T9UI5yC8u07tssfbojXZLUvU24BveM18HsQu3PLtSB7AIdPVmsqjJJkMNPXVuHqUN0sK7rFa+2rYKZ96UazIjbwAgtANC0HDlxKph0jgvT5r3H9fRHO1VU6qqybZDDT4mtgtQ2MkglZS5t3ndcecUVns9v6NNatw9IVHyLoIYq31SYERcAgF8gOixA+SUu+VktSu0ep66twzXn02+VV1yhxFZBSowM+iGoBKtlsL3SWRSX29C3x/L07qaDWpp2VEvTjur82FD52ayKDgvw4bdqXggtAIBmwc9mVaeYEFl/ePJzfItAPfHbnjVa12a1qEt8mP7w60765kie9mYV6N1NBxUZ4pDNalVkCPO+NAQG4gIAmo3TgaWuIgLtuuuKDrL7WfV9RoHW787UoROFYqRFwyC0AABQQ1arRT3attDgnnGSpKVpR5WeU+zjqpoPQgsAALUQHuiv6y5qrY7RwSp3GfrH+n1ycQt0gyC0AABQCxaLRXERARp2cVs5/Kzam1mo55d9wyWiBkBoAQCglsIC7eoSF6rresfLIun9zYf11+W7CS71jLuHAACog9jwQA04L0p2P5ve/u9+zf/8gBz+Vt3zq/POmHTO7TaUnlusvZkFOnKiWNHhTnVtHa7IEIcycosV5PBTsNPfR9/EPAgtAADUQZDTTzHhTl3aqZViw5x6btkuvbVunywWi7q2DtPezALtyyrU3swC7c8uUGn5mY8MiAlzqnWLQF3VPVap3ePk78cFkLMhtAAAUEex4QEKtPupZ2ILlbkM/b+Pd+vNtXurbOtvs6hNZJBatwjU4RNF2pdZoPTcEqXnlmjnkVydFxOi8+PCGvgbmAuhBQCAOnL42xQVZpMkDe+fKLfb0Btr9yom3Kn2rYLVLipY7aOC1b5VsOIiAuRn+/FMSmFphXYdzdWM97YrK79U735xUH9IOV8RQXZffZ1Gj2cPVYNnDwEAGsLrq7/Xq5/tUYjTT0/c3EM92kbI4W/zdVm/SH0dQ7l4BgCAD113UWtFBPorv6RCn+w4piMni7kLqRqEFgAAfKhFsEPX9IyXJK3fnaX9WQU6WVjm46oaJ0ILAAA+ZLNadN1F8QoL8FdOUbn+t+e4yirOvNMIhBYAAHwuMtSplK4xkqTVOzNUTmipkmlCy+zZs5WYmCin06mkpCRt2rTprO1nzZql888/XwEBAUpISND48eNVUlLSQNUCAFBzQQ4/pXaPU2iAn3KLy7VqZ4avS2qUTBFaFixYoAkTJmj69On68ssv1aNHD6WmpiozM7PK9u+8844mTZqk6dOn65tvvtHrr7+uBQsW6M9//nMDVw4AQM3ERQToss5RkqR3Nx1UcVmFjytqfEwRWl544QWNGTNGo0eP1gUXXKCXXnpJgYGBmjdvXpXtN2zYoAEDBmj48OFKTEzUlVdeqVtvvfWcZ2cAAPCVsAB/XXFBtMIC/ZWVX6rXV+/xdUmNTqMPLWVlZdqyZYtSUlI8y6xWq1JSUrRx48Yq1+nfv7+2bNniCSl79+7VsmXLdM0111TbT2lpqfLy8iq9AABoKP5+VsVHBGpIr9aSpH9tPKDv0vN9XFXj0uhDS3Z2tlwul6Kjoystj46OVnp6epXrDB8+XI8++qguueQS+fv7q0OHDho4cOBZLw/NnDlTYWFhnldCQoJXvwcAAOcSEexQn3YtlNwxUi63oaf+/bXcbuZsOa3Rh5a6WL16tZ588knNmTNHX375pRYvXqylS5fqscceq3adyZMnKzc31/M6dOhQA1YMAIAU4vRTWIC/7hzUQYEOm74+nKv3N3M8Oq3RP3soMjJSNptNGRmVR1JnZGQoJiamynUefvhhjRgxQnfeeackqVu3biosLNRdd92lKVOmyGo9M6s5HA45HA7vfwEAAGrIYrGobasg+dmsuvdX5+n5Zbs059PvdHmXaEWGcIxq9Gda7Ha7evfurZUrV3qWud1urVy5UsnJyVWuU1RUdEYwsdlOPceBqZEBAI1ZoMNPdj+rbuzbRhfEh6mwtELPLt3puUxU4XI328nnGn1okaQJEybo1Vdf1VtvvaVvvvlG9957rwoLCzV69GhJ0siRIzV58mRP+yFDhmju3LmaP3++9u3bpxUrVujhhx/WkCFDPOEFAIDGzGa1aNKQC2SzWrTmm0xNnL9VhaUVOlFYpu/T81Xhan7BpdFfHpKkYcOGKSsrS9OmTVN6erp69uyp5cuXewbnHjx4sNKZlalTp8pisWjq1Kk6cuSIWrVqpSFDhuiJJ57w1VcAAKDWOsWGasaN3fTYkh1atztLd732P00c0kU5heUKD7IrLiLA1yU2KIvB9ZIq1ddjtQEAqK2vD+do4vw0ZeeXKsTpp98mtVGPti3UtXWYAh2N7/xDfR1DTXF5CACA5uzC1uGad9fF6hIXqvySCr25bp+2HzypIyeLmtVYTUILAAAmEBXq1Nzf91NSh5ZyuQ3947/7tXX/SZ0oLPN1aQ2G0AIAgEk4/W16YHAXtWsVpJJyl15fvUfbD+Y0m0G5hBYAAEzE4W/TyEvbKSbMqdzicv1l+S7tyWge0/0TWgAAMJEWQXZ1iQvT7wd2UGiAvzJyS/T4kq91PL/E16XVO0ILAAAm4mezqm1kkC7uEKm7rugou59V32Xk650N+5v8pHOEFgAATMZisSgqzKkru8Xqhj6nngq97Ktj2p9V0KTvJiK0AABgUqEB/hp1SXsFO/10srBMS9OOKDu/1Ndl1RtCCwAAJtYixKHU7rGSpM92ZmhfVoEKSyt8XFX9ILQAAGByN/drI6e/TZl5pdq057gOZhc2yctEhBYAAEwuJjxAl3eOkiSt+SZTBSXlcje9zEJoAQDA7Jz+Nl3fO17+NqsOnSjSN0fzfF1SvSC0AADQBLRtFaykji0lSR9vO+bjauoHoQUAgCYgLMBfV3WPlc1q0Z7MAm3ee9zXJXkdoQUAgCbAz2ZVx+gQXZQYIUl65qOdKilz+bgq7yK0AADQREQE2TWkV7zCA/115GSxXlr5na9L8ipCCwAATUSw019RoQG6NTlRkrTgfweUduCkb4vyIkILAABNhM1qUWSIXd3bhGtwzzgZhvTEBzuazGUiQgsAAE1Ii2CHwgP99cfU89Uq1KFDx4v08qqmcZmI0AIAQBMS6PBTu6gQhQbaNXnIhZKk+Z8f0I5DOb4tzAsILQAANFH9O7XS1T1OXSb618YDvi7nFyO0AADQhA27uK0kaf3uTBWWmPtBioQWAACasPNjQ9Q2MkilFW6t2ZXh63J+EUILAABNmMViUWq3WEnmn96f0AIAQBN3ZfdToeWLvcd1PL/Ux9XUHaEFAIAmrnWLQF3YOkxuQ/r063Rfl1NnhBYAAJqBn14iKqtw+7iauiG0AADQDPyqa4xsVot2HsnVf3dnqqCk3Ncl1RqhBQCAZqBlsEN927eQJP332ywVmXBqf0ILAADNRGr3OEnSpr3HVVDMmRYAANBIXdY5Sg4/qzLzSrX9cI4Mw/B1SbVCaAEAoJkIcvjpkvNbSZI2fpet0nJzDcgltAAA0Ixcen6UJGn3sXwVl5trXAuhBQCAZqRn2whJUnpOsbLzSnxcTe0QWgAAaEYiQxxqFeKQIWnL/hO+LqdWCC0AADQzHaJDJEk7DueqwmWecS2EFgAAmhGrxaLzY0+Flu+O5anYRPO1EFoAAGhGrFaLLko8NcncoRNFOllU5uOKao7QAgBAM9M+Klhhgf5yG9JXB076upwaI7QAANDMBDn81CEqWJKUduCkaSaZI7QAANDMBNht6hIXJknafSzPNJPMEVoAAGhmLBaLerc7NV/L/uxC5ZrkOUSEFgAAmqFOMaEKcvipwmVox+EcX5dTI4QWAACaoWCnvzpGnxrXsnW/OQbjEloAAGiGHP5WdY4LlSTtPJJjiknmCC0AADRDFotFfdqdmq9lT0aBCksb/7gWQgsAAM1U57gwBfjbVFrh1rfHCnxdzjkRWgAAaKZCAvzV/of5WrYfyvFtMTVAaAEAoJly+tvUJf7UuJY1uzIa/bgWQgsAAM3Yry6MkcPPqt3H8vXc0m8a9ey4hBYAAJqxdq2C9bvL2ssiacmWw1r4v4O+LqlahBYAAJqxQIef+rZvqTsHdpAk/XX5Lm38LsvHVVXNz9cFAAAA37H7WRUbHqDbL2mn9NwS/XvrEU1dtE1Th3ZVsPNUTMgtKldEkL/atAxSoN1PTrtNNqulwWsltAAA0My1DHFIkh669gIdPlGkrQdOavKCtEptrBapa0K4Bl0QpfNiQtUq2KG4iED5+zXcRRuL0ZhH3PhQXl6ewsLClJubq9DQUF+XAwBAg8gpLNOzS3dqf3ahZ1lxqUtHc4o97ztEBat/p0j179hKiVHBigiyV9pGfR1DCS3VILQAAHBKUWmF1u3K1JIvD+urAyfl/iE5tAy269LOUbrhotZqHx3iOetSX8dQLg8BAICzCnT4KaVbrLq3jdC2Aye1ameGvth7XMcLyrRk82Et/+qo+rRrqRbBdhmGVFxUP7PrEloAAMA52awWxYYHKNTprzaRQUrtEaP/fXdc//0uW9n5pVr/7Y93HFWUFp5lS3XH5aFqcHkIAICqud2GistcKi53qaCkXBu/y9bRnGK1CLLLYrGopDBf917Tk8tDDa24rEL+ZRVnLLdaLHL42yq1q47FYpGzjm1LylwyVHWutMgip72ObctdZ531MMDuV6e2peUuub3U1ulvk8Vy6pa6sgq3XO7qp5euTVuHn03WH27VK69wq8JLbe1+P94CWJu2FS63ys8ydba/zSo/m7XRtHW5DZVVuKpt62e1eq5r16at222o1EttbVar7D+0NQxDJeXeaVub/9/zN6LqtvyNaDp/I6xWKchhU5DDppuT2lT6G5F94qTurXbLdUdoOYfBz62WnyPojOX9z4vUC7f39ry/+pnV1f6x65UYobmj+3ne3/CXtcopqvoR4F3iQvXG3cme97fMXq/0nJIq27ZrFaR/jbvE8370Kxu1L6vqU3Ix4U4tGX+55/298zbpm6N5VbYND/TX8olXeN6P/+cWbd1/ssq2Tn+bVk9N8byfvCBNG77LrrKtJH3+SKrn50cWb9eqnRnVtv1syq88f8Ce+vfXWpZ2tNq2/3lokGf0+l+X79J7Xxyqtu3iP12muIgASdJLK7/T2xv2V9v2nbEDPA8Te3PdXr2+ek+1befddbEuiA+TJC34/IBeXPFttW1n/66vev/wSPglmw/ruWXfVNv2+dsu0oBOrSRJy7cd0+NLdlTb9onf9tCvLoyRJK3ZlakpC7+qtu3UoV11ba94SdL/9hzX/739ZbVtH7imi36T1EaSlHbgpMa++UW1bcf9upNuv6SdJGn3sTz9/pXPq217x8AOGjOooyRpf3ahhs/+b7Vtb+ufqPtSz5ckpeeW6MZZa6tte1PfBD147QWSpJyicl39zGfVtr2mZ5ym3dBN0qmD76AnVlbb9ooLovXksJ6e92dry9+IU/gb8aPm9Dfi7pdXV9v2l2BGXAAAYAqMaanG6TEt6VnHq7wex6nfqtty6rfpnPqtri2Xh7g8JPE3oi5tm9PfiOwTJxXTqiXztDQUBuICAFA39XUM5fIQAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBUILAAAwBT9vbmzPnj1auHChtm3bphMnTqi8vLzathaLRStXrqzxtmfPnq1nn31W6enp6tGjh/72t7+pX79+1bbPycnRlClTtHjxYp04cUJt27bVrFmzdM0119TqOwEAgMbBa6HlkUce0eOPPy632y3DMM7Z3mKx1HjbCxYs0IQJE/TSSy8pKSlJs2bNUmpqqnbv3q2oqKgz2peVlenXv/61oqKi9O677yo+Pl4HDhxQeHh4bb4SAABoRLwSWt5++2098sgjkqS4uDilpqYqLi5Ofn7eyUQvvPCCxowZo9GjR0uSXnrpJS1dulTz5s3TpEmTzmg/b948nThxQhs2bJC/v78kKTEx0Su1AAAA3/BKqpg9e7Yk6brrrtPChQtlt9u9sVlJp86abNmyRZMnT/Yss1qtSklJ0caNG6tc58MPP1RycrLGjh2rDz74QK1atdLw4cM1ceJE2Wy2KtcpLS1VaWmp531eXp7XvgMAAPjlvDIQd8eOHbJYLJozZ45XA4skZWdny+VyKTo6utLy6OhopaenV7nO3r179e6778rlcmnZsmV6+OGH9fzzz+vxxx+vtp+ZM2cqLCzM80pISPDq9wAAAL+MV0KLxWJRaGio4uLivLG5X8ztdisqKkqvvPKKevfurWHDhmnKlCl66aWXql1n8uTJys3N9bwOHTrUgBUDAIBz8crloc6dOystLU2lpaVyOBze2KRHZGSkbDabMjIyKi3PyMhQTExMlevExsbK39+/0qWgLl26KD09XWVlZVWeDXI4HF6vHQAAeI9XzrTceeedKi8v16JFi7yxuUrsdrt69+5d6fZot9utlStXKjk5ucp1BgwYoO+//15ut9uz7Ntvv1VsbKzXL18BAICG4ZXQMmbMGF133XW6//77tXbtWm9sspIJEybo1Vdf1VtvvaVvvvlG9957rwoLCz13E40cObLSQN17771XJ06c0B//+Ed9++23Wrp0qZ588kmNHTvW67UBAICG4ZXLQ48++qh69OihdevWadCgQRowYICSkpIUEhJy1vWmTZtWo+0PGzZMWVlZmjZtmtLT09WzZ08tX77cMzj34MGDslp/zF8JCQn6+OOPNX78eHXv3l3x8fH64x//qIkTJ9b9SwIAAJ+yGDWZCe4crFarZ7K405uryeRxLpfrl3Zdb/Ly8hQWFqbc3FyFhob6uhwAAEyjvo6hXjnTctlll9VqhlsAAIDa8kpo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atGihTp16uSt2ipJSkpS37599eKLL3r6TUhI0H333adJkyZVuY7L5dJll12m3//+91q3bp1ycnK0ZMmSGvXH5SEAAOqm0V0eKi8v18SJE9WiRQt169ZNAwYMUJcuXdSqVSs98cQTXp23paysTFu2bFFKSopnmdVqVUpKijZu3Fjteo8++qiioqJ0xx13nLOP0tJS5eXlVXoBAIDGo86Xh4YOHarly5efEU6OHz+uadOm6bvvvtObb775S+uTJGVnZ8vlcik6OrrS8ujoaO3atavKddavX6/XX39daWlpNepj5syZeuSRR35pqQAAoJ7U6UzLokWL9J///EeGYahjx46aPHmyZs+erQcffNAzO+4//vEPrVmzxtv11kh+fr5GjBihV199VZGRkTVaZ/LkycrNzfW8Dh06VM9VAgCA2qjTmZZ//vOfkqQrr7xSH3zwgRwOh+ezKVOm6IorrtDWrVv19ttv6/LLL//FRUZGRspmsykjI6PS8oyMDMXExJzRfs+ePdq/f7+GDBniWXb6biU/Pz/t3r1bHTp0qLSOw+Go9D0AAEDjUqczLV9++aUsFov+8pe/nHGgDw0N1dNPPy3DMLw2rb/dblfv3r21cuVKzzK3262VK1cqOTn5jPadO3fW9u3blZaW5nldd911GjRokNLS0pSQkOCVugAAQMOp05mW7OxsOZ1OdenSpcrP+/Tp42nnLRMmTNCoUaPUp08f9evXT7NmzVJhYaFGjx4tSRo5cqTi4+M1c+ZMOZ1Ode3atdL64eHhknTGcgAAYA51Ci2lpaVVXpY5LSwszNPOW4YNG6asrCxNmzZN6enp6tmzp5YvX+4ZnHvw4EFZrV6ZKw8AADRCdZqnxWq1KiYmRkePHv1FbRoz5mkBAKBuGt08LQAAAA2pzvO0ZGRknPVBiRaL5axtGvsDEwEAQONS59DizRlvAQAAzqVOoWX69OnergMAAOCsfvEDE5sqBuICAFA3DMQFAADNGqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYAqEFAACYgqlCy+zZs5WYmCin06mkpCRt2rSp2ravvvqqLr30UkVERCgiIkIpKSlnbQ8AABo304SWBQsWaMKECZo+fbq+/PJL9ejRQ6mpqcrMzKyy/erVq3Xrrbfqs88+08aNG5WQkKArr7xSR44caeDKAQCAN1gMwzB8XURNJCUlqW/fvnrxxRclSW63WwkJCbrvvvs0adKkc67vcrkUERGhF198USNHjjzj89LSUpWWlnre5+XlKSEhQbm5uQoNDfXeFwEAoInLy8tTWFiY14+hpjjTUlZWpi1btiglJcWzzGq1KiUlRRs3bqzRNoqKilReXq4WLVpU+fnMmTMVFhbmeSUkJHildgAA4B2mCC3Z2dlyuVyKjo6utDw6Olrp6ek12sbEiRMVFxdXKfj81OTJk5Wbm+t5HTp06BfXDQAAvMfP1wU0hKeeekrz58/X6tWr5XQ6q2zjcDjkcDgauDIAAFBTpggtkZGRstlsysjIqLQ8IyNDMTExZ133ueee01NPPaVPP/1U3bt3r88yAQBAPTLF5SG73a7evXtr5cqVnmVut1srV65UcnJytes988wzeuyxx7R8+XL16dOnIUoFAAD1xBRnWiRpwoQJGjVqlPr06aN+/fpp1qxZKiws1OjRoyVJI0eOVHx8vGbOnClJevrppzVt2jS98847SkxM9Ix9CQ4OVnBwsM++BwAAqBvThJZhw4YpKytL06ZNU3p6unr27Knly5d7BucePHhQVuuPJ47mzp2rsrIy/eY3v6m0nenTp2vGjBkNWToAAPAC08zT0tDq6x5z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2y3p1Bmhm266SdKpsSutW7fWokWLdPfdd0uSHn74Yc86vXr1UmFhoZ599tkzQsu6detUUFCgzz//XJMmTVLHjh1166231lv9tUVoAYAmKMBe8z/v9dX2XIKCgtSxY0fP+9dee01hYWF69dVXNXjwYN1222165JFHlJqaqrCwMM2fP1/PP/+8p/2MGTM0fPhwLV26VP/5z380ffp0zZ8/XzfccIMKCgp09913n3FQlqQ2bdrUuMbTl5ukHwPc6aBQkz5qc3koJiZGmzZtqvRZRkaG57OqnA5SF1xwgWeZw+FQ+/btzzqgOSkpSY899phKS0vlcDg8y9u1aydJ6tatmzIyMjRjxgxCCwAAP2exWGS1WlVcXKwNGzaobdu2mjJliufzAwcOnLFOp06d1KlTJ40fP1633nqr3njjDd1www266KKLtHPnzkqhyNtq0kdtLg8lJyfriSeeUGZmpufszIoVKxQaGloplPxU79695XA4tHv3bl1yySWSpPLycu3fv19t27attq+0tDRFRERUCiw/53a7VVpaWqPaGwqhBQDgE6WlpZ6xGidPntSLL76ogoICDRkyRHl5eTp48KDmz5+vvn37aunSpXr//fc96xYXF+vBBx/Ub37zG7Vr106HDx/WF1984blEMnHiRF188cUaN26c7rzzTgUFBWnnzp1asWKFXnzxRa/UX5M+anN56Morr9QFF1ygESNG6JlnnvHcBj527FhPuNi0aZNGjhyplStXKj4+XqGhobrnnns0ffp0JSQkqG3btnr22WclSTfffLMk6d///rcyMjJ08cUXy+l0asWKFXryyScrhanZs2erTZs2nvFBa9eu1XPPPVflWSRfIrQAAHxi+fLlnssbISEh6ty5sxYtWqSBAwdKksaPH69x48aptLRUgwcP1sMPP6wZM2ZIkmw2m44fP66RI0cqIyNDkZGRuvHGG/XII49IOjUWZc2aNZoyZYouvfRSGYahDh06aNiwYV6r39t92Gw2ffTRR7r33nuVnJysoKAgjRo1So8++qinTVFRkXbv3q3y8h/v4Hr22Wfl5+enESNGqLi4WElJSVq1apUiIiIknbrENXv2bI0fP16GYahjx4564YUXNGbMGM823G63Jk+erH379snPz08dOnTQ008/7RkT01hYDMMwfF1EY5SXl6ewsDDl5uZWGvgFAI1FSUmJ9u3bp3bt2tX4bhjAW872+1dfx1Cm8QcAAKZAaAEAAKZAaAEAAKZAaAEAAKZAaAEAk+N+CviCL37vCC0AYFKnZ2stKirycSVojsrKyiSdulW7oTBPCwCYlM1mU3h4uDIzMyVJgYGB1T61F/Amt9utrKwsBQYGys+v4aIEoQUATOz0M2lOBxegoVitVrVp06ZBgzKhBQBMzGKxKDY2VlFRUZVmSQXqm91ul9XasKNMCC0A0ATYbLYGHVsA+IKpBuLOnj1biYmJcjqdSkpKOuMR3j+3aNEide7cWU6nU926ddOyZcsaqFIAAOBtpgktCxYs0IQJEzR9+nR9+eWX6tGjh1JTU6u9jrthwwbdeuutuuOOO7R161YNHTpUQ4cO1Y4dOxq4cgAA4A2meWBiUlKS+vbt63nct9vtVkJCgu677z5NmjTpjPbDhg1TYWGhPvroI8+yiy++WD179tRLL710zv54YCIAAHVTX8dQU4xpKSsr05YtWzR58mTPMqvVqpSUFG3cuLHKdTZu3KgJEyZUWpaamqolS5ZU2b60tFSlpaWe97m5uZJO7XgAAFBzp4+d3j4vYorQkp2dLZfLpejo6ErLo6OjtWvXrirXSU9Pr7J9enp6le1nzpypRx555IzlCQkJdawaAIDm7fjx4woLC/Pa9kwRWhrC5MmTK52ZycnJUdu2bXXw4EGv7nBULy8vTwkJCTp06BCX5BoI+7zhsc8bHvu84eXm5qpNmzZq0aKFV7dritASGRkpm82mjIyMSsszMjI8Eyv9XExMTK3aOxwOORyOM5aHhYXxS97AQkND2ecNjH3e8NjnDY993vC8PY+LKe4estvt6t27t1auXOlZ5na7tXLlSiUnJ1e5TnJycqX2krRixYpq2wMAgMbNFGdaJGnChAkaNWqU+vTpo379+mnWrFkqLCzU6NGjJUkjR45UfHy8Zs6cKUn64x//qMsvv1zPP/+8Bg8erPnz52vz5s165ZVXfPk1AABAHZkmtAwbNkxZWVmaNm2a0tPT1bNnTy1fvtwz2PbgwYOVTkP1799f77zzjqZOnao///nPOu+887RkyRJ17dq1Rv05HA5Nnz69yktGqB/s84bHPm947POGxz5vePW1z00zTwsAAGjeTDGmBQAAgNACAABMgdACAABMgdACAABMoVmHltmzZysxMVFOp1NJSUnatGnTWdsvWrRInTt3ltPpVLdu3bRs2bIGqrTpqM0+f/XVV3XppZcqIiJCERERSklJOef/RjhTbX/PT5s/f74sFouGDh1avwU2QbXd5zk5ORo7dqxiY2PlcDjUqVMn/r7UUm33+axZs3T++ecrICBACQkJGj9+vEpKShqoWvNbu3athgwZori4OFkslmqf6/dTq1ev1kUXXSSHw6GOHTvqzTffrH3HRjM1f/58w263G/PmzTO+/vprY8yYMUZ4eLiRkZFRZfv//ve/hs1mM5555hlj586dxtSpUw1/f39j+/btDVy5edV2nw8fPtyYPXu2sXXrVuObb74xfve73xlhYWHG4cOHG7hy86rtPj9t3759Rnx8vHHppZca119/fcMU20TUdp+XlpYaffr0Ma655hpj/fr1xr59+4zVq1cbaWlpDVy5edV2n7/99tuGw+Ew3n77bWPfvn3Gxx9/bMTGxhrjx49v4MrNa9myZcaUKVOMxYsXG5KM999//6zt9+7dawQGBhoTJkwwdu7cafztb38zbDabsXz58lr122xDS79+/YyxY8d63rtcLiMuLs6YOXNmle1/+9vfGoMHD660LCkpybj77rvrtc6mpLb7/OcqKiqMkJAQ46233qqvEpucuuzziooKo3///sZrr71mjBo1itBSS7Xd53PnzjXat29vlJWVNVSJTU5t9/nYsWONK664otKyCRMmGAMGDKjXOpuqmoSWhx56yLjwwgsrLRs2bJiRmppaq76a5eWhsrIybdmyRSkpKZ5lVqtVKSkp2rhxY5XrbNy4sVJ7SUpNTa22PSqryz7/uaKiIpWXl3v9AVxNVV33+aOPPqqoqCjdcccdDVFmk1KXff7hhx8qOTlZY8eOVXR0tLp27aonn3xSLperoco2tbrs8/79+2vLli2eS0h79+7VsmXLdM011zRIzc2Rt46hppkR15uys7Plcrk8s+meFh0drV27dlW5Tnp6epXt09PT663OpqQu+/znJk6cqLi4uDN+8VG1uuzz9evX6/XXX1daWloDVNj01GWf7927V6tWrdJtt92mZcuW6fvvv9cf/vAHlZeXa/r06Q1RtqnVZZ8PHz5c2dnZuuSSS2QYhioqKnTPPffoz3/+c0OU3CxVdwzNy8tTcXGxAgICarSdZnmmBebz1FNPaf78+Xr//ffldDp9XU6TlJ+frxEjRujVV19VZGSkr8tpNtxut6KiovTKK6+od+/eGjZsmKZMmaKXXnrJ16U1WatXr9aTTz6pOXPm6Msvv9TixYu1dOlSPfbYY74uDefQLM+0REZGymazKSMjo9LyjIwMxcTEVLlOTExMrdqjsrrs89Oee+45PfXUU/r000/VvXv3+iyzSantPt+zZ4/279+vIUOGeJa53W5Jkp+fn3bv3q0OHTrUb9EmV5ff89jYWPn7+8tms3mWdenSRenp6SorK5Pdbq/Xms2uLvv84Ycf1ogRI3TnnXdKkrp166bCwkLdddddmjJlSqXn2ME7qjuGhoaG1vgsi9RMz7TY7Xb17t1bK1eu9Cxzu91auXKlkpOTq1wnOTm5UntJWrFiRbXtUVld9rkkPfPMM3rssce0fPly9enTpyFKbTJqu887d+6s7du3Ky0tzfO67rrrNGjQIKWlpSkhIaEhyzeluvyeDxgwQN9//70nIErSt99+q9jYWAJLDdRlnxcVFZ0RTE6HRoPH8dULrx1DazdGuOmYP3++4XA4jDfffNPYuXOncddddxnh4eFGenq6YRiGMWLECGPSpEme9v/9738NPz8/47nnnjO++eYbY/r06dzyXEu13edPPfWUYbfbjXfffdc4duyY55Wfn++rr2A6td3nP8fdQ7VX231+8OBBIyQkxBg3bpyxe/du46OPPjKioqKMxx9/3FdfwXRqu8+nT59uhISEGP/617+MvXv3Gp988onRoUMH47e//a2vvoLp5OfnG1u3bjW2bt1qSDJeeOEFY+vWrcaBAwcMwzCMSZMmGSNGjPC0P33L84MPPmh88803xuzZs7nlubb+9re/GW3atDHsdrvRr18/4/PPP/d8dvnllxujRo2q1H7hwoVGp06dDLvdblx44YXG0qVLG7hi86vNPm/btq0h6YzX9OnTG75wE6vt7/lPEVrqprb7fMOGDUZSUpLhcDiM9u3bG0888YRRUVHRwFWbW232eXl5uTFjxgyjQ4cOhtPpNBISEow//OEPxsmTJxu+cJP67LPPqvz7fHo/jxo1yrj88svPWKdnz56G3W432rdvb7zxxhu17tdiGJwLAwAAjV+zHNMCAADMh9ACAABMgdACAABMgdACAABMgdACAABMgdACAABMgdACAABMgdACAABMgdACAGdhsVhksVi0evXqWn0GwPsILQBqZcaMGZ6D9U9fDodDcXFxSk1N1Wuvvaby8nJflwqgiSG0AKiz6Ohoz8vPz0/Hjh3TJ598ojFjxqh///46efKkr0sE0IQQWgDUWXp6uudVWFioAwcOaMyYMZKkzZs36/777/dxhQCaEkILAK9p06aNXnnlFV1xxRWSpIULF6qgoMDHVQFoKggtALzuqquukiSVlZXpu+++O+Pz/Px8PfXUU0pOTlaLFi3kcDiUkJCgW265RRs3bjzn9j/55BPdcsstatu2rQICAtSiRQt1795d99133xnru91urVy5Uvfff78uvvhitW7dWna7XS1bttTll1+ul156ifE3gEn4+boAAE2PYRien10uV6XP0tLSNGTIEB0+fFiSZLPZFBgYqMOHD2vBggVauHChnnjiCU2ePPmM7RYVFel3v/udFi1a5FkWEhIit9ut7du3a/v27Vq3bp3S0tI8nx88eFApKSme98HBwQoMDNSJEye0du1arV27Vu+8844+/vhjBQQEeGsXAKgHnGkB4HUff/yxpFO3BLdr186z/NixY0pNTdXhw4d14403avPmzSouLlZeXp4yMjL08MMPy2az6c9//rOWLFlyxnZHjx6tRYsWyWq1auLEiTp06JDy8vKUk5OjrKwsvf3220pOTq60jp+fn2677TZ9+OGHOn78uPLz85WTk6P8/Hy98cYbiouL07p16zRlypR63ScAvMAAgFqYPn26Icmo6s/HgQMHjDFjxng+v+666yp9/vvf/96QZAwfPrza7b/wwguGJKNHjx6Vln/66aee7c6ZM8cr38UwDOOLL74wJBlBQUFGcXHxGZ+f7vOzzz6r1WcAvI8zLQDqLCYmxvMKCgpS27Zt9eqrr0qSOnfurDlz5njalpSU6J133pEkTZw4sdptjhw5UpL01VdfKSMjw7N83rx5kqSuXbvq3nvv9dp36NOnj6KiolRYWFjpshKAxocxLQDq7Keh4qdGjhypl19+WU6n07Nsy5YtKikpkSRdeeWVNdr+gQMHFB0dLUnasGGDJOnaa6+tdZ1lZWWaN2+eFi9erB07duj48eMqKys7o93pcTYAGidCC4A6M34YcGsYhtLT0/Xhhx9q0qRJ+vvf/65u3brpgQce8LQ9evSo5+fqws7PFRUVeX5OT0+XJLVt27ZWNWZmZiolJUXbt2/3LHM6nYqMjJTNZpMkZWVlye12q7CwsFbbBtCwuDwE4BezWCyKjY3V3Xffrffff18Wi0UPPfSQVq1a5Wnz07uIiouLZRjGOV8DBw6s1EddjB8/Xtu3b1fLli01b948HTt2TMXFxcrKyvJMjBcXFyep8l1PABofQgsArxo4cKBGjBghwzB03333ecJKTEyMp82BAwdqvd3T69dm3fLyci1evFiS9OKLL2r06NGV6pBOhans7Oxa1wOg4RFaAHjdtGnTZLPZtHPnTr311luSpL59+8put0uS/v3vf9d6m/3796/1ullZWZ5xNL169aqyzfr16z1tADRuhBYAXtehQwcNGzZMkvTYY4+pvLxcQUFBGj58uCTp6aef1sGDB8+6jRMnTlR6f8cdd0iSvv76a82dO7dGdYSGhnouK3311VdnfF5RUcH8LICJEFoA1IvJkyfLYrFo//79ev311yVJTz75pOLi4pSdna3k5GT94x//UH5+vmedrKwsvffee7rhhht06623VtreoEGDdMstt0iSxo0bp8mTJ1e62yc7O1uvvfaaJ9xIp2a/HTBggCRpwoQJWrVqldxutyRpx44duuaaa7R582YFBQXVz04A4F0+mR0GgGmdbXK5n7v++usNSUbr1q2NkpISwzAMY+fOnUanTp0827BarUaLFi2MoKAgzzJJRkpKyhnbKywsNG688cZK7UJDQ42wsDDP+59PSrd58+ZK23Y4HEZISIghyfDz8zP+/ve/G23btjUkGW+88cYZfYrJ5YBGgzMtAOrN6Usvhw8f1ssvvyxJ6tKli7Zt26aXX35ZV155pSIjI5WXlyfDMNSxY0fdfPPNeuWVV7Rw4cIzthcYGKj33ntPH330kW644QbFxcWppKREfn5+6t69u+6//3698sorldbp3bu3Nm3apN/+9reKjIyU2+1WSEiIfvvb32rDhg0aMWJE/e8IAF5hMQzu8QMAAI0fZ1oAAIApEFoAAIApEFoAAIApEFoAAIApEFoAAIApEFoAAIApEFoAAIApEFoAAIApEFoAAIApEFoAAIApEFoAAIApEFoAAIApEFoAAIAp/H9j8jvypeJdGgAAAABJRU5ErkJggg==","text/plain":["<Figure size 600x600 with 1 Axes>"]},"metadata":{},"output_type":"display_data"},{"data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAi0AAAIcCAYAAAA6z556AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACiQUlEQVR4nOzdd3xT9f7H8VeaNklnuuhilA2KDJkCKltELooLFAUUJ6JXBX8qblx4vQ68iiIKMhRFQXCwRPaeoijIhhZK907bNOP8/ji0WAFp07QnST/Px6PX9uQk50MukDff8/1+vjpFURSEEEIIITycn9YFCCGEEEJUhoQWIYQQQngFCS1CCCGE8AoSWoQQQgjhFSS0CCGEEMIrSGgRQgghhFeQ0CKEEEIIryChRQghhBBeQUKLEEIIIbyChBYhhBBCeAWvCC3r169nyJAhJCQkoNPpWLx48UWfs3btWjp27IjRaKR58+bMmjWrxusUQgghRM3xitBisVho3749U6dOrdT5x44dY/DgwfTp04c9e/bw2GOPce+997JixYoarlQIIYQQNUXnbRsm6nQ6Fi1axNChQy94zlNPPcWSJUv4/fffy4/ddttt5Obmsnz58lqoUgghhBDu5q91ATVhy5Yt9O/fv8KxgQMH8thjj13wOVarFavVWv6z0+kkOzubqKgodDpdTZUqhBBC+BxFUSgoKCAhIQE/P/fd1PHJ0JKamkpsbGyFY7GxseTn51NcXExgYOA5z5k8eTKTJk2qrRKFEEIIn5ecnEyDBg3c9no+GVpcMXHiRMaPH1/+c15eHo0aNSI5OZmwsDANKxNCCCFqVmGJjbS8YjILSjmeUcDqfekcSiuocE79iEAuT4zk8saRdEiMICLYUPFF0tKgf39ISiI/MZGGJ04QGhrq1jp9MrTExcWRlpZW4VhaWhphYWHnHWUBMBqNGI3Gc46HhYVJaBFCCOGTiqx20vJKSMtTOJFlZ/UfGfyalAuAMTCEni2iubJVDJ2bRpEQcf7Pz3LBwXDVVbBtG/zwA1xyidunV/hkaOnevTtLly6tcGzlypV0795do4qEEEIIz5JVaOVwagGncopYtz+d7UeyUACdDro1i6JX61iubh1DVOi5/6A/L70eZs+G7Gw4zyCAO3hFaCksLOTw4cPlPx87dow9e/YQGRlJo0aNmDhxIqdOnWLOnDkAPPjgg3zwwQc8+eSTjBkzhtWrV/P111+zZMkSrX4JQgghhEc5lV3EV1tOsP1oFg6nupD48sQI+lwaS6OoYOLCTZiDAv75RY4ehY8+gjfeUEOLXg/16kF+fo3U7BWhZefOnfTp06f857K5J6NHj2bWrFmcPn2apKSk8sebNGnCkiVLePzxx3nvvfdo0KABn376KQMHDqz12oUQQghPYLHa+eV4NjuPZrPjWBZH0grLH7skIYx+beJoGhtCTKiR+PAggk0XiQhHjkDv3nDyJJhM8MorNfsLwAv7tNSW/Px8zGYzeXl5MqdFCCGE17HZnfx+MpedR7PZfjSLfafyykdUyiRGBzOwbTwt40OJCTMRFx5IWOBFRlcADh+GPn3UwNK6NaxZA3Fx5Q/X1GeoV4y0CCGEEKKiIqudHEspceGB6P10OJ0KR9IL2H4kmx1Hs9hzIocSm6PCc+pHBNKlaZQ6sTbcRFZhKdGhRhIi1LBSqYmzhw6pgeXUKbjkEjWw/K3NSE2R0CKEEEJ4EUVRyCiwciLDQnp+CcWHMtiTlMvOo1nkFtkqnBsRbKBzk0g6N42iS9NIEiKCyh8rstpJiHBiDqpkWAE1sPTuDSkpcOmlsHp1rQUWkNAihBBCeA2rzUFyloXkrCJ+3HOKTQczKzweaNBzeWJE+WhKs5gQ/PzOH0iCjP4EVWWRT2kpDByoBpY2bdTAEhNTjV9N1UloEUIIIbxAjqWUExkWTmRZ+HrrCY6kqxNpL2tgplvzaLo0jaJNfTMB/jW0F7LBAO+/Dy++CMuWqauEapmEFiGEEMKD2R1OUnKKSc62cCy9kLmbjpNXZMMUoOeOno25s2djAg01+HGuKGrzFoDBg2HQIHDjfkJVoc1VhRBCCHFRhSU2/jydz5G0ArYfyeKjVYfJK7KREB7IuAEtubJlPQz++porYN8+6NpVXd5cRqPAAjLSIoQQQnispKwiTmcXs3xvSvn8lc5NIhnSMYEGkcE0iw1Ff4E5K9W2b5+6Sig9HR57TG3NrzEJLUIIIYSHSs8rZvqawyRnF6HTwS1dG9IxMZJ6YSaaxYZiqKn5K7//Dn37QkYGdOgAs2bVzHWqSEKLEEII4WFK7U4W7Uhm+ppDWKwOQkz+PNC3OTFhJsKDDDSLDcEUUEO3hf4aWC6/HH7+GSIja+ZaVSShRQghhPAQdoeT5b+d5tM1h0nNKwGgQWQgjw5shVMBc6CB5nGhNTfxdu9eNbBkZkLHjrBypccEFpDQIoQQQmhOURTW7E/j41WHOZFpAaBeqJFr28fToVEETgVCTf60iAsl2FiDH90TJqiBpVMnNbBERNTctVwgoUUIIYTQiKIobD+axbSfD7E/Rd0ZOSwwgNFXNeHmro04lJrP6dxiIoONNI8LvfgmhtX15Zfwf/8H77wD4eE1ey0XSGgRQghR55TanexNVlvf7zyWTUZ+iSZ1OJxqS35Qu9ne3j2RET0aE2I6u2lheJCRFnGhldvI0BXZ2WdvAUVFwcyZNXMdN5DQIoQQwqfZHU6yCq1kFlj55XiOuplgUg5Wm1Pr0gAI0Ou4sXND7rq6KZEhFfvqRwYbCI4MwBxkqJmL794NAwbAK6/AQw/VzDXcSEKLEEIIn6MoCqdyitlxJIttRzLZeSybwhJ7hXMiQwx0bqJuJNg0JqTymwa6WZzZdE5YKVM/MrjmLrx7N/TvDzk5MHcu3H8/+Ht2LPDs6oQQQohKyiq0sutYNjuOZrHjaBapuRVv+QQZ9FzeOJKuTaPorHFQ0dyuXWpgyc2FK66AFSs8PrCAhBYhhPAau45lMW/zCXIsVq1L8TgWq6N81U0Zf72Otg3CuTwxgviIQPpcEktITc0L8SY7dsA116iBpXt3WL4cwsK0rqpSJLQIIYQHsTuc5FhKiQg24K9Xu53uP5XHR6sOsf1IlsbVeb6WcaF0OTOS0iExgkCDf/l7ajLU4B493mL7djWw5OVBz57qbs2hoVpXVWkSWoQQwoPYHQpZhVZCTQGczC7k49WHWbMvDVBHDoZ2asgVzaPq7m2NC9D76WgVH0ZE8LkTVv31ftQLM2lQlQdau1YNLFdeCUuXelVgAQktQgjhcbIKrMzfcoIVe0/jVECng0HtEri3TzMSIoK0Lk94syefhHr14JZbvC6wgIQWIYTwGDmWUmasPczinSexOxUAerWO4YF+LWgaE6JxdcJr7dkDzZtDyJnfQ3ffrWk51SGhRQghNFZYYuPLzSf4cstxikodAFyeGMG4a1pyWYNwbYsT3m3LFhg4UN34cOlSCK7BJdS1QEKLEEJopMTmYOH2JGZvOEZ+sQ2AVvFhDOmYwOD29QmsyT1mhO/btAmuvRYKC8HPT+tq3EL+RAghRC2zO5z8+MspZqw7Qka+unw5MTqYB/o1p3uzaE5kWWSiraiejRth0CA1sPTtCz/8AEHePx9KQosQwidZbQ6MARWXuDqdCkfSC9hxNJtjGYWgaFPbnqQckrOKALUb6r19mnNtu3j89X7YHU6iQoz46yW0CBdt2KAGFosF+vWD77/3icACElqEED6msMTG6dxiLCV2Wtc3k11Yyo6jWeUb4+VYSrUuEYCIYAN3XdWUG7s0xOB/duhelueKavlrYOnfH777zmcCC0hoEUL4iCKrndS8EtLyijmWUcjOo9kcz7SQklNc4TxTgJ7LG0fQpr6ZAL029/nDAgO4pl08wTJnRbhbaCgYjdCjhxpYAgO1rsit5E+MEMKrlZQ6SM8vISW3mFM5FtbtS2fH0ezyOz96Px2X1jfTtWkUXZpFqWHF3zcmJQpxjg4d1Am4iYk+F1hAQosQwkuV2p1k5BeTklNCSm4Rmw5msOlgJo4z/U3aNQrntisS6dYsmmCT/FUnfNiaNRAQoHa5BWjdWtt6apD8SRZCeKXj6YUcTi9gy6FM1u1Pp9ThBODS+mH0axNHq/gw2jYMP2cyrhA+ZdUqGDIE9Hp1hKVdO60rqlESWoQQXkVdAVTIgh1JrPw9leIzzdia1gtmQNt4WsSFEhNmIj48UAKL8G0//6wGlpISGDwYWrXSuqIaJ6FFCOHxUnKK2Xk0S10F9LcVQPUjAhnQNo5LE8KoFxZIQkQgYYEB0udE+LaVK+H669XA8q9/wYIF6gRcHyehRQihiWPphew4moVygV4pCgrHMyzsPJbFyexzVwA1jw3hkoQwOjWJIjrMSEJ4IBHBBgkrwvf99JMaWKxWdaTlm2/qRGABCS1CiFp2KruIT9YcZsXe0xcMLH+n99PRpoGZLk3OrgA6klaAzeEkPiKIyGADfn4SVkQdsH372cByww3w9ddgMGhdVa2R0CKEqDF2h5McSykRwQZyi2x8tu4I3+0+id2hppWuzaIIDwq44PMjQ4x0aRpFh8SIc3qaNI0NxU+nNmMTos5o315tGhcQAPPn16nAAhJahBA1yO5QSMqy8OWWEyzckYTVpq7w6dYsirH9W9A6wezyaxuk14qoi4xGWLgQdLo6F1hAQosQooYUl9qZt+k4X2w+TtGZFT6XNTAztn9LOjWJ1Lg6IbzIjz/CunXw5ptqWKkj81fOR0KLEMKtbHYn3+06yWfrj5BVqK7yaVIvmLH9W3JVq3oyUVaIqvjhB7j5ZrDZoG1bGDVK64o0JaFFCOEWDqfCT3tP88maw+X7/cSHB/KvyxO47YrG0pVWiKr67ju49VY1sNx6K9x+u9YVaU7+FhFCVIuiKGw4kMHHqw5xJL0QgMgQA2OubsbAdvGcyilCLyt7hKiaxYth2DA1sAwfDp9/Dv7yke3WdyA/P5+SkhKioqLQ66UTpRBaK7LaOZhagP1Mi3t3Kyix88WmY/x+Mg+AUJM/d/ZswrArGhFo8KfkzFwWIUQVLFqkBha7HW67DebOlcByhsvvwvHjx1mxYgXr1q1jy5YtnD59GpvNVv642WzmkksuoVevXvTq1Yv+/ftLkBHCzewOJyezi4gONRJiCsDucPL7yTy1c+zRLH4/mVe+gWBNMgb4MbxbInde2YSwwAsvYRZCXERKinobyG6HESNg9mwJLH+hU5TKtncCp9PJ4sWL+fjjj1m1ahWKonCxp5dNuouJiWHMmDHcd999NG7cuFpF14b8/HzMZjN5eXmEhYVpXY4Q57DZnRxNL+SPU7lkF5ay71Qev5zIKd+Lp0ys2USIsYb+0tPB5YmR3HV1U6JDz13R8Nc+LdJPRYhK+uILtU3/jBnqRoheqKY+QysdWr777juefvppDh48WB5UmjVrRrdu3bj88suJjo4mMjKSwMBAsrOzyc7O5tixY2zbto1du3ZhsVjQ6XTo9Xruu+8+XnrpJerVq+e2X4i7SWgRnsxqc3A0vZC1+9OYu/EYfx1MCQ8KoHPTKDo3iaRL0yjqRwZpV6gQonJsNrVhnI/QNLT07t2bDRs2oCgK7du3584772TEiBHEx8dX6iJOp5NVq1bx+eefs3jxYgoKCggLC2Pu3LkMGTKk2r+ImiChRXiqEpuDw2kFHD5dwPsrD2CxOrgkIYz+l8XTtVkkzWJCpaW9EN7k669h0iR1dCUhQetq3KKmPkMrNV67fv16rrnmGrZs2cIvv/zChAkTKh1YAPz8/BgwYACzZ8/m9OnTTJ48GYPBwC+//OJy4ULURcWldg6dzic1t4ivtydhsTpoEBnE5GEduKNnY1rEhUlgEcKbzJ+vzl3Ztw8+/FDrajxepUZatm3bRrdu3dx6YYvFwvHjx2nTpo1bX9ddZKRFeBqL1c7h1AJyi0r5+fdUVv6eSqBBz5P/upTel8QQaJDJekJ4lS+/hDvvBKcT7r4bPvnEa+ew/F1NfYZW6m85dwcWgODgYI8NLEJ4msISG4dTC8krLiUpy8LK31MBuLVbI9o3ipDAIoS3mTcPRo5UA8uYMWpg8ZPJ6hcj75AQHq6wxMbB0wXkF9sAhZnrjgLQ+5IYrmpZj5iwursPiRBe6fPPzwaWe++VwFIFLr9LY8aMYdu2be6sRQhxHnlFNvKKSwkP8ufDnw9RXOqgWUwI17ZLoH5kkCwlFsKblJbCa6+pgeW+++DjjyWwVIHL79SsWbPo0aMH7du358MPPyQ/P9+ddQkh/kKn0/Hl1hOcyCwi1OTPsG6NqB8ZSERw3duaXgivZjDAzz/Diy/CtGkSWKrI5XerZ8+eKIrC3r17eeSRR0hISOCee+6R0RchasCe4zms2ZeODhh1ZRNiwwNJiAiSHZOF8BYnTpz9vn59eOklCSwucPkd27BhA/v37+fxxx8nKiqKoqKiCqMvH330kYy+COEGJ7OL+HZnMgD/urw+DaOCaRARSHBNdbkVQrjXZ59B8+bqaiFRLdWKea1ateLtt9/m5MmTzJs3j969ewOwd+9eHn74YRl9EaKa8opK+e+SfZTanVySEEav1vUIDzYQaw7UujQhRGXMnAn33KPuJbR1q9bVeD23jE0ZDAZuu+02Vq1axcGDB3nyySeJiYmhqKiIzz77TEZfhHCBpcTO45/v4mR2MaEmf8b0aoqCjoaRQQT4y7CyEB7v00/VwKIo8MgjMGWK1hV5Pbf/zdesWTPeeOMNkpOTWbhwId26dUNRFH7//ffy0Zf777+f/fv3u/vSQviMklIHT8zbzb5T+YSa/Lm3TzOcCsSEmYgMkcm3Qni86dPV1UEA//43vPceyBy0aquxf65t2LCBr7/+mj179qDT6co3WSwqKmLGjBm0a9eOxx57DKfTWVMlCOGVbHYnT8/fwy8ncgg2+vP80MsIDzJi9NdTPzJQJt8K4ek+/hgeeED9/tFH1REW+XPrFm4NLRkZGbz55pu0bNmS/v37M3/+fKxWKx07duTTTz8lJyeHb775hquuugqHw8H777/P5MmT3VmCEF7N7nDywsLf2Ho4E2OAH2/f0ZFmsaHo/XQkRAQSYvKdXWCF8Fn79qn/ffxxePddCSxuVKm9hy5m5cqVTJ8+nR9++AGbzYaiKAQFBXH77bfz4IMP0qlTp3OeM336dB588EGaNWvGoUOHqluC28neQ6K2OZ0Kry7+naW/phCg1/HWiI50ax7Nqewi0vNLaNMgHIPMZRHC8ykKfPcd3HBDnQ0sNfUZ6nJoSU1NZebMmcyYMYPjx4+X3/659NJLefDBBxk1atRFC42MjKSwsJDS0lJXSqhRElpEbVIUhbeX7mfB9mT0fjpeH9aeXpfEAmobf4dTwRwkc1mE8Fg//ADXXANG2VYDNN4w8XwaNWqEw+FAURQMBgM333wzDz74IFdddVWlXyMsLIy8vDxXSxDCZ3z08yEWbE9Gp4Pnhl5WHlgAuSUkhKd7/311su2QIfDtt+AvPZRqisvvrN1up0mTJjzwwAOMGTOG6OjoKr/G/PnzKSkpcbUEITxGQbGNQIO+wj5A+cU2dh3LZufRLP44lYfdcf5J53anwvEMCwBPDr6UQe0TaqVmIYQbvPcePPaY+n2bNqDXa1qOr3M5tCxbtoyBAwdW6+LdunWr1vOF8ATp+SUkZ1lICA/kZE4xO45kseNoFgdO5+Osws3XR65pyY1dGtZcoUII95oyRZ1sCzBxoroRYh2dw1JbXA4tl1xyCadOnaJ+/fqVOj8lJQW73U6jRo1cvaQQHictr5jfknL4cssJDqUWYHNUTCmJ0cF0aRpFx8YRBJsu/MctJsxEk3ohNV2uEMJd3n0Xxo9Xv3/2WXjlFQkstcDl0NK4cWPi4+M5depUpc7v2bMnycnJ2O12Vy8phMdQFIXTuSUcTstn/tYk9p1SOz3XCzXSpWkUnZtG0rlpFDFhJo0rFUK43f/+dzawPP88TJokgaWWVGu2UFUXHrlhdbUQmlMUhVPZRRzLtLDpQAa/n8zD30/Ha8Pac3XrGGn+JoSv69gRgoNhwgR1t2b5M19ram2Kc0lJCf4yo1p4OadT4WR2EcczLaTkFPHDL+pI49DODWjfKEICixB1wZVXwh9/QGKi1pXUObXSqSolJYWMjAyioqJq43JC1AinUyEpy8KxjEIUxcms9UdxKnB5YgT/6lAfc5AsTRbCZ02ZAr/+evZnCSyaqPTQx/r161m7dm2FY4WFhbz88ssXfI6iKOTm5rJ06VIURZHVQsJrOZwKJzItJGdZCDX5M3XlIXKLbMSZTdx2RSINooJklEUIX/Xaa/DccxAVpbboj4nRuqI6q9KhZc2aNUyaNKnCX8wWi4VJkyZd9LmKomAymZg4caJrVQqhsYz8Ek5kFhIZbGDZr6f541QeBn8/buueSJOYEGkAJ4SvevVVdbItqMubJbBoqtKhpXHjxvTq1av853Xr1hEQEED37t0v+Bw/Pz/CwsK47LLLGD16NM2bN69etUJoxOFU0Ol0HEor4LtdJwG4tWtDWsWHERceqHF1Qoga8fLL8OKL6vevvQbPPKNtPcL1vYf8/PyIi4sjJSXF3TV5BNl7SPzVqewidh7L4oOfDlJQYueqVvX41+X1ubS+mXqyrFkI3zNpkroyCGDyZHj6aU3L8TYet/fQZ599RmCg/AtT1A0Op8KXm09QUGKnYVQQA9vGExNmIipENkcTwufMmnU2sLzxBjz1lJbViL9wObSMHj3anXUI4dHmbT7O8UwLpgA99/RqSpDJn/qRQfj5yeRbIXzOLbfAzJnqBoj/939aVyP+QhqnCHERX289weIz81jG9GqCMUBPQnggYYEy+VYInxQSAqtWQYD8Gfc0lQotY8aMASA+Pp7XXnutwrGq0Ol0zJgxo8rPE0IrP/5yineW/QlAvzaxtIwPI0CvJ14m3wrhOxRFXSFkNJ5dKSSBxSNVaiKun58fOp2OVq1asW/fvgrHKjOPt+w8nU6Hw+GoftW1QCbiitV/pPLcN7/iVOBfHRK4okU0AXo/LkkwE2OWybdC+ARFUTc8nDxZ/XnbNujaVduafICmE3FHjRqFTqcjPj7+nGNC+KLNBzN4YeFvOBUY0rE+o69swu+n8kgINxIVKpNvhfAJigITJ8J//qP+/N57Elg8nMtLnn2djLTUXbuPZ/P43F1Y7U76XxbHpJvbkZpbzIksC23qmzEHGbQuUQhRXYqirgr673/Vn99/Hx5+WNuafIjHLXkWwhf9cTKXJ77YjdXupGfLerx0U1v0fjr0fjoSwgMlsAjhCxRFXRX09tvqzx98AOPGaVuTqBSXN0w8efKkO+sQQnOH0wp4/PNdFJU66NwkkteHtcdfr/4RiQsPJDE6WOMKhRBusWnT2cAydaoEFi/icmhp3Lgx/fv3Z86cOVgsFnfWdF5Tp06lcePGmEwmunXrxvbt2//x/ClTptCqVSsCAwNp2LAhjz/+OCUlJTVep/A+DqfCnhM5/HvOTvKL7VzWwMybt1+OMUBf4TyZwyWEj7jySvjf/+Cjj+Chh7SuRlRBtdr4l/0lHhgYyI033sjIkSMZMGCA2/9ynz9/PqNGjWLatGl069aNKVOm8M0333DgwAFizrN51bx58xgzZgwzZ86kR48eHDx4kLvuuovbbruNd955p1LXlDktvsPucJJZYCXHUkrz2FD89TqSs4rYfjSLHUez2H0sm4ISOwAt40L54K4u0oNFCF+jKGCxqD1YRI2rqc9Ql0PLmjVrmDNnDt9++y0FBQXlQSUuLo477riDkSNH0rZtW7cU2a1bN7p06cIHH3wAgNPppGHDhjzyyCM8fZ79IB5++GH279/PqlWryo9NmDCBbdu2sXHjxkpdU0KL93M4FbIKraRkF5OeV8yBtAKyCqzsPp5Den7FUbcQkz9XNI9m/KDWREprfiF8i6LAo4/Cxo3w888QGal1RT7P40JLmZKSEhYvXsycOXNYuXIlDoejPMC0a9eO0aNHc/vttxMbG+vS65eWlhIUFMSCBQsYOnRo+fHRo0eTm5vLd999d85z5s2bx0MPPcRPP/1E165dOXr0KIMHD2bkyJE8c4FdOq1WK1artfzn/Px8GjZsKKHFCzmdCjmWUlJyisgosPLLiRxW7j1NbpGt/JwAvY52jSLo0jSKzk0jaR0fVj5/RQjhQxQF/v1vdbKtTgfffAM336x1VT7PY0PLX6WnpzNv3jw+//xzdu/erV5Ap0Ov19O/f39Gjx7N8OHDq/SaKSkp1K9fn82bN9O9e/fy408++STr1q1j27Zt533e//73P5544gkURcFut/Pggw/y0UcfXfA6L730EpMmTTrnuIQW76EoCrlFNk7nFJFeYOX3pFx++v006flqGA0PCuDa9gl0bxFN+4YRmAz6i7yiEMKrKYq6jPnDD9XA8umn4EI3d1F1XhFa/mr//v3MmTOHefPmkZycrF7MhY64roSWtWvXctttt/Hqq6/SrVs3Dh8+zKOPPsp9993H82Utmv9GRlq8W5HVTnJWEWl5xfx5Op+Vv6eSnFUEQKjJn35tYrmyZQydmkYSaJCV/kL4PKdTDSwffaQGlhkz4O67ta6qzvC6Pi2XXHIJkydP5pZbbmHs2LHs3LnTpdeJjo5Gr9eTlpZW4XhaWhpxcXHnfc7zzz/PyJEjuffeewFo27YtFouF+++/n2effRY/v3NvAxiNRoxGmcvgbZxOhYyCEk5kFrH/VC4rf0/lcFohAIEBevq0iaVb0yhizCbqRwRJYBGiLnA61WXM06apgeWzz2D0aK2rEm5QI3+Dnzp1ii+++IK5c+eW71UEEODCBlQGg4FOnTqxatWq8jktTqeTVatW8fAFuhcWFRWdE0z0evVWgDQA9h0Wq52kTAvp+SX8mpTDvM0nAHW+ytWtYujeMpo4cyD1I4OIDjES4C9zVoSoE9LT4Ycf1MAyaxaMGqV1RcJN3BZaLBYLCxcuZO7cuaxduxan01keEDp37syoUaO4/fbbXXrt8ePHM3r0aDp37kzXrl2ZMmUKFouFu88M9Y0aNYr69esz+cyGV0OGDOGdd97h8ssvL7899PzzzzNkyJDy8CK8l8OpkJ5fQlKmhRKbg6PphXy5RQ0sXZpG0q9NHAkRQSSEm6gXZjqn34oQwsfFxcGaNbB7N1RxHqXwbNUKLYqisHLlSubMmcPixYspLi4uDyoNGzbkzjvvZNSoUbRq1apaRQ4fPpyMjAxeeOEFUlNT6dChA8uXLy9fkZSUlFRhZOW5555Dp9Px3HPPcerUKerVq8eQIUN47bXXqlWH0J6lxE5SloW0/BKCDHpO5xbz6dojKAp0bRrF7d0TSYgIJNYcKBNthahLnE747Tfo0EH9uUUL9Uv4FJcn4j7xxBN8+eWXpKamAmqACQ0N5eabb2bUqFH07t3bnXXWOunT4nky8ks4kl6I1eYgKsTAodQC3l72J3aHwuWJEdzbuxmtE8wEm2TeihB1itMJ994LX3wBixfDoEFaV1TnedxE3LLOsmXLmUeOHMmNN95IYGCg24oToozFaudYhgUUhViziSNpBby34gB2h0LbhuGM6NmYZrGhEliEqGscDjWwzJoFfn6Qm6t1RaIGufw3fLt27Rg5ciR33HHHBVfxCOEODqdCUqaF4lI7sWYTSVkW3l76JyU2J60Twhh+RSOa1QshPFh2YBaiTnE41L4rc+aAXq+OtMgcFp/mcmjZs2ePG8sQ4sLScotJyysmOtTI6dxi3lryJ0WlDprHhjCieyKNooKJC5cRPiHqFIdD7bsyd64aWObNg2HDtK5K1DAZSxceLb/YRlJWESEmf3KKSvnvj/vJL7aRGB3EqKsaExMWSGJ0MH5+sgOzEHWGwwF33QWff64Glq++gltu0boqUQsktAiPZXc4Scq0UGp3Ajr+++N+si2lJIQH8kDf5gQZAmhSL1iWNAtRV/n7q4FF9hKqMyoVWpo2bQpA8+bN+emnnyocqwqdTseRI0eq/DxRN6XkFJNZYMVk8OPNH/eTnm+lXqiRR69Vl9An1gvGHCTzWISoc/R6deLtww9Dt25aVyNqUaVCy/HjxwEwmUznHKuKst2fhbiYXEspJ7OLCNDDlGUHSMkpJjwogCeua41TUWgQGURsmOniLySE8A12O3zyCdx/vxpa9HoJLHVQpULLZ599BoDZbD7nmBDuVmp3ciLTQrHNzuz1xzieaSHU5M+T/7oUnZ8fUUEBJEaHyDwWIeoKux3uuAO+/hp27VJ3axZ1UqVCy+jzbDR1vmNCVJeiKJzMLiI9v5ivtiRxMLWAQIOeJwZfQpBRD+hoXC8Eg+wjJETdYLOpgeWbbyAgAK6/XuuKhIZkIq7wKNmWUpKzLCzckcwfp/Iw+vvx+LWtCDb6g6KjaWwIYYFV33hTCOGFbDa4/XZYuFANLAsXwpAhWlclNOTyP1fHjBnD+PHjK33+k08+yT333OPq5UQdYLU5OJZeyNdbT7DnRC7+eh0PD2hBaGAAIcYALqkfRozMYxGibrDZ4Lbb1KBiMMC330pgEa7vPeTn50dcXBwpKSmVOr9JkyYkJSXhcDhcuVytk72Hal92oZVJi/ay7XAWfjp4oG8LEqODiTWbaFIvRDZAFKIuuf12dTmzwQCLFsF112ldkagCj9t7qKpczEbCxzmdCgdTC9h5NIv1f6bzW3IuOuDOno1pGhtCo8gg6kcG4a+XOSxC1CkjR8LSpWpwkQ0QxRm1FloyMzMJCgqqrcsJD1U20Xbn0Wx2HM1i1/Fs8ops5Y/rgJu7NqRTkyiaxIRQL9QoS+WFqIuuuw6OHYPISK0rER6kxkNLXl4en376KUVFRbRr166mLyc82O8nc3lp4W+czC6ucDzIoOfyxpG0aWDGHBhAs9hQmsbIhFsh6hSrFR55BJ58Epo3V49JYBF/U+nQMmnSJF5++eUKx9LS0tDrKzfPQKfTcbO0Wq6zSkodvLjgN07lFOOv19G2QTidm0bSuWkUbeqb8df7YbHaycgvIS48EJO05hei7rBa1Vb8S5bAunXwxx9qi34h/qZKvyv+Oi9Fp9NVep6KwWBg5MiRPP3001WrTviMmeuOcCqnmHphRj4f2+O87feDjf4E1wvRoDohhGZKStTAsnQpBAbChx9KYBEXVOnfGXfddRe9e/cG1PDSt29fIiMjWbhw4QWf4+fnR1hYGC1btiQwMLDaxQrvdCi1gC82Hwfg/wZfKvsFCSFUJSVw002wbJkaWH78Efr21boq4cEqHVoSExNJTEws/7lRo0bExsbSq1evGilM+AaHU+GNH/7A4VTofUkMV7eO0bokIYQnKCmBG2+E5cvVwLJkCfTpo3VVwsO5PAbnyoaJou75dkcSf5zMI9joz/jrLtG6HCGEp5g4UQ0sQUFqYDkzki/EP5HmF6LGpOeV8NHPhwB4qH8L6WYrhDjr+efhyivVuSwSWEQlVWqkJSkpCYCAgADi4+MrHKuqRo0aufQ84X3eXrqfolIHbRuGc2PnhlqXI4TQmsMBZStOIyNh/XqQPkyiCioVWpo0aQJA69at+eOPPyocqwqdTofdbq/y84T3sDuc5FhK+S05l3V/pqP30/H0kEvx85O/mISo04qK1B2ab7oJHnpIPSaBRVRRpUJL2dLmvy5xdqUtv7Ty9312h0JyloV3l/4JwMgrm9AsNlTjqoQQmrJY1M0O16yB7dvhllsgRibli6qrVGg5duwYoN4e+vsxIf5uwfZkMgutNIwK4u6rm2pdjhBCSxYL/OtfsHYthIaqk28lsAgXVSq0/HWp8z8dE+KPk7ms2ZcGwFP/uhSjdLYVou6yWGDwYLXLbWgorFgB3btrXZXwYrJ6SLhNqd3JW0v3owDXtounc9MorUsSQmilsFDd9HDdOggLg59+ksAiqq3GeiXb7Xb27t2Ln58f7dq1k516fZzd4eT5Bb9yLMNCqMmfsf1aaF2SEEJLCxeqq4PKAku3blpXJHyAy6HlwIEDzJ8/n8aNGzNq1KgKj61du5YRI0aQlqbeJmjYsCHz5s2jR48e1atWeCSnU+G17/5g3f50AvQ6xvZrIa36hajrRo+G1FS1y23XrlpXI3yEy7eH5syZw6RJk87p15KTk8PNN99MamoqiqKgKApJSUkMHjyY1NTUahcsPIuiKLy1dD/Lfk1B76fjpZvacWkDs9ZlCSG0UFCg3hYq89RTEliEW7kcWlavXg3AzTffXOH4jBkzyMnJITExkZUrV7Jx40batm1Lfn4+//vf/6pXrfAoiqIwdeVBvt2RjE4HL97Ulp4t62ldlhBCC/n5MHCgOvHWYtG6GuGjXA4tp06dAqBZs2YVjn/33XfodDomT55Mv3796NGjBx999BGKorBixYrqVSs8ymfrj/L5puOAulLomrbx2hYkhNBGXp4aWLZsgb17QVpiiBqiU1zs+BYYGEhQUBBZWVnlx2w2G6GhoSiKQnZ2NsHBweWPGQwGAgMDycvLq37VtSA/Px+z2UxeXh5hYWFal+Nx5m85wbvL1QZyjw5sxe09GgNnO+JGBBvw18viNCF8Xllg2bYNIiLg55+hY0etqxIaq6nPUJc/Vfz8/LD8bQjwl19+obS0lPbt21cILABmsxmr1erq5YQH+WH3yfLAcm/vZuWBBcBf70e9MJMEFiHqgtxcuOYaNbBERsKqVRJYRI1y+ZOlQYMG2Gw29u/fX35syZIlAPTs2bPCuYqikJ+fT3R0tKuXEx7AUmLn2x3JvP69uv/UiB6Nuad3s4s8Swjhk8oCy/btEBUFq1fD5ZdrXZXwcS4vee7VqxeHDh1iwoQJzJo1i5SUFKZNm4ZOp+O6666rcO6BAwew2WwkJCRUu2BRszILrORYrLSIC8Nmd/L7yVx2HM1ix9Fs9p3Kw+FU7yYO7dSAR65pKf13hKirTp2CI0fUwLJqFbRvr3VFog5wObRMmDCBuXPnsmLFCuLj1QmYiqLQoUMHBgwYUOHc5cuXA9BVlr55tPxiG78l5bDzaBYpuSXsOZFDic1R4ZwGkUEMbBvPmN7NJLAIUZe1aaOGFT8/aNdO62pEHeFyaGnVqhXff/89Y8eO5ejRo/j5+dG/f38+/fTTc8797LPPAOjTp4/rlYoaVWJzcCg1n/+tOEBqXkn58YhgA12aRtKlaRSdm0YRHx6oYZVCCE1lZ8Phw2d7r3TooGk5ou6pVhv/AQMGcPjwYTIyMggNDcVkMp1zjs1mK+/P0qVLl+pcTtQQu8PJ8fRCfth9ktS8EoKN/tzbuxldmkXRLCZERlSEEGpg6d8fDh1Sd2r+29xFIWqDW/Yeqlfvwg3FAgIC6NWrlzsuI2qAoiiczC7i95N5rPpD3Xbh1m6NKqwIEkLUcVlZamDZswdiYiA8XOuKRB0l61LruPT8EpIyLfzwyylsDoVmsSEMbi9N4oQQZ2RmQr9+amCJjYU1a9T5LEJowC0jLU6nk0OHDpGdnY3NZvvHc6+++mp3XFK4Qa6llGPpFn5LzuXA6XwC9Dru6N6YemaZtyKEADIy1MCyd+/ZwHLJJVpXJeqwaoWW06dPM3HiRBYsWEBxcfFFz9fpdNjt9upcUrhJcamdo+mF5BWVsnjXSQD6tomlbaNwTAF6jasTQmguK+tsYImLUwNL69ZaVyXqOJdDS0pKCt26dSMlJYXK7gTg4o4Bws3sDifH0gspKLGxYu9pCkvsJEQEcm27BOqFnjuZWghRB4WEQGKientozRpo1UrrioRwfU7LSy+9xKlTpwgJCeF///sfJ06cwGaz4XQ6//FLaEtRFJKyikjLLyEtr5jNhzLRAUM7N6BBZBAmg4yyCCEAoxEWLIDNmyWwCI/hcmhZtmwZOp2OGTNm8PDDD9OwYUP0evnA83Sldifp+SUEBujLd2i+unUMreLCZJRFiLouLQ3+8x8oGxU3GqFxY01LEuKvXL49lJGRgb+/P0OHDnVjOaKmKWf+Z/lvp0nPtxIRHEDvS2OJDw+UURYh6rLUVOjbF/bvB6sVXnhB64qEOIfLIy0xMTEEBgbi7++WBUiiFqXkFPHT3lRA7ckSGWygXphR46qEEJo5fRr69FEDS4MGcMcdWlckxHm5HFr69+9PQUEBhw4dcmc9ooY5nArztyXhVBQ6NYmkab1Q4swmAg0SPoWok8oCy59/QsOGsHYtNJPd24Vncjm0PPPMMwQHB/PUU0+5sx5Rw3785RQnMi2YAvTc1LkBJoOeGLPMZRGiTkpJgd694cABaNRIAovweC6HlubNm/P999+zbt06BgwYwJo1a7BYLO6sTbiZxWpn1vqjANzQqT56Pz/iZZRFiLqptFRtzX/woLq0ee1aaNpU66qE+Ecuf1r9daXQ6tWrWb169UWfI83ltPXl5uPkWEqJDjXSuUkkAf566oXJKIsQdZLBAM89B88/D6tWySoh4RVcHmlRFMWlL6GNrEIrX2w+DsC/OtSnxOYkzmwiyCijLELUWSNGwB9/SGARXsPlT6w1a9a4sw5Rw2auPUJxqYNLEsJo3ygcnU5HjIyyCFG3JCXBAw/AjBmQkKAeM8nfA8J7uBxaevXq5c46RA1KyrKU7y90f9/m+Pv5US/MKKMsQtQlJ06oq4SOHYN774WlS7WuSIgqc/n2kPAeH686hMOp0KNFNF2aRhFi8pdRFiHqkhMn1FVCx46pq4M+/ljrioRwidtCi6IoZGZmkpSU5K6XFG7wx8lcVv2Rhk4HDw1oib/ej9YJYTLKIkRdcfy4GliOH4fmzdVVQg0baluTEC6qdmjZvXs3N910E2azmdjYWJr+bclcTk4ODzzwAA8++CDFxcXVvZyoAkVR+GDlQQAGtU+geWwooK7iEkLUAceOnQ0sLVqogaVBA42LEsJ11frn9ty5c7n33nux2WwXPCciIoIjR46wZs0aevfuzW233VadS4oq2HIok1+O52Dw9+P+Ps21LkcIUdvuv1+9NdSyJaxeDfXra12RENXi8kjLvn37uO+++7DZbPz73/9m586dREdHn/fc0aNHoygKy5Ytc7lQUTUOp8LUM6Mst3ZtRFx4oMYVCSFq3axZ8K9/wZo1EliET3B5pOWdd96htLSUcePGMWXKFKBiw7m/6tevHwC7du1y9XKiipb/lsKR9EJCTf6MuqqJ1uUIIWpLcTEEnvlHSv368MMP2tYjhBu5PNKyZs0adDpdpfYeSkhIIDAwkOTkZFcvJ6rAanMwffVhAEZf1RRzkEHjioQQteLwYbjkEvjyS60rEaJGuBxaUlJSCA4OpkElJ3UFBQXJRNxa8s22JNLySogJM3FLt0ZalyOEqA2HDqmTbk+cgMmT4R/mGgrhrVwOLUajkdLS0kq15rdareTm5hIeHu7q5cRfWG0OSmyO8z62+3g2szeomyLe37c5poDz37ITQviQgwfVwHLqFFx6KaxcCQEBWlclhNu5HFqaNm2KzWbj4MGDFz13xYoVOBwO2rRp4+rlxF8kZVlIzyupcOzPlHwem7uThz7bQUGJnRZxoQxqn6BRhUKIWnPggBpYUlKgTRt1lVBsrNZVCVEjXA4t1113HYqilE/CvZCCggKefvppdDod119/vauXE2cUWe1kFZQC6gjXiUwLz369h7s+3sLWw1no/XTc1KUh743shN5P+rEI4dP+/FNtzX/6NFx2mQQW4fNcXj302GOPMXXqVKZPn050dDQTJkyo8HhxcTHLli3j2Wef5cCBA8THx3P//fdXu+C6LrfIRkGJjcwCHXM3HWfpnhQcTgWdDq5pG899fZrTIDJI6zKFELXhyy/VwNK2LaxaBfXqaV2REDVKp1RmUsoF/Pzzz9xwww2UlJTg7++P0+nE6XQSGxtLZmYmDocDRVEICQlhxYoVdO/e3Z2116j8/HzMZjN5eXmEhYVpXQ4AdoeTvcm5fLsjibX707E51P/rrmxVjwf6tqBFXKjGFQohapWiwH//C3ffLYFFeJSa+gytVhv//v37s3XrVnr37o3NZisPKampqdjtdhRFoXfv3mzZssWrAounyiu2cTyjkJW/p2FzKFzeOILp93TlrREdJbAIUVccPQpWq/q9TgdPPimBRdQZ1d41r23btqxatYoTJ06wadMmUlJScDgcxMXF0bNnT5o3l/bx7pKZb2Vvch4AbRqY+fCuLrKPkBB1yR9/QN++0K0bfPMNGI1aVyRErXLbVr+JiYkkJia66+XE31isdrItVvYm5wLQs0W0BBYh6pLff1cDS0YGnDwJRUUSWkSdU+1dnkXtyCm0kpxVRHJ2EX466NYsSuuShBC1Ze9edZVQRgZ07Ag//wwREVpXJUStczm0lJaWkpSURGpq6jmPFRYW8sQTT9C+fXsuv/xynn/+eemGWw12h5P0fCv7U9RbQy3iQgmT1vxC1A2//qoGlsxM6NRJDSyRkVpXJYQmXL499Omnn/LII48wevRoZs6cWeGxwYMHs3HjxvJuub/99hsbNmwo369IVE3emWXOv57IBaBdowiCjG67syeE8FS//gr9+kFWFnTuDD/9JCMsok5zeaRlxYoVAIwYMaLC8e+//54NGzag0+m44447uPfeewkICGDDhg3MnTu3etXWQYqikJ5fQnp+MSm5xfj76ejUOJIQCS1C+L7CQigpgS5d1Nb8ElhEHedyaNm/fz8AnTp1qnB83rx55bs/z507l+nTpzNlyhQURWHevHnVq7YOsljt5FhK2XcqH4BWCWHEhQdilD2FhPB9PXvCmjXqCIvs3SaE66ElIyODoKAgIv6W/NesWQPAvffeW35s5MiRAPz666+uXq7Oyi4sxWq3s/tYDgCXNTATESwboQnhs3bvhj17zv7cpYsEFiHOcDm0WCwW/PwqPv348eNkZGTQsGFDmjRpUn48ODiY8PBwsrOzXa+0DrLZnaTnl5BTaCMtv4QAvR/tG4UTLLeGhPBNu3apc1j69YN9+7SuRgiP43JoiYyMpLCwkNzc3PJjq1evBqBHjx7nnG+32wkJCXH1cnVSblEpFqud3870ZmnTIIzIYBNBBgktQvicnTuhf3/IzYXWraFBA60rEsLjuBxaOnbsCMCMGTMAcDqdzJgxA51OR58+fSqcm5GRQWFhIXFxcdUotW5RFIWM/BL0OthxNAuAtg3CiQwx4Ce7NwvhW3bsOBtYevaE5cvBQ/Y8E8KTuBxaRo8ejaIoPP300wwaNIiuXbuyZcsWQkJCuPXWWyucu2HDBgAuueSS6lVbhxSW2MkpKiWzsJSswlKMAX60ig8jNFDmswjhU7ZvhwEDIC8PrrwSli2DUNlLTIjzcTm0DB8+nLvuuguHw8GKFSvYvXs3JpOJadOmEf63SWPz588/7wiMuLDsQis2u8KuY+o8oHYNwwkLMsh8FiF8ya+/ng0sV10lgUWIi6hWG/+ZM2eyYcMG/vOf//Dxxx/z+++/c/vtt1c4p7S0FLPZzKhRo7juuutcvtbUqVNp3LgxJpOJbt26sX379n88Pzc3l3HjxhEfH4/RaKRly5YsXbrU5evXplK72gE3yOB39tZQw3DCAwMw+MvOC0L4jGbNoH17uPpqWLoUZN6fEP+o2v9s79mzJz179rzg4waDgenTp1frGvPnz2f8+PFMmzaNbt26MWXKFAYOHMiBAweIiYk55/zS0lIGDBhATEwMCxYsoH79+pw4ceKcESBPlV9so6jUTnahldwiG0EGPU3rhRAeLK37hfApISFqWNHpIDhY62qE8Hheca/hnXfe4b777uPuu+8GYNq0aSxZsoSZM2fy9NNPn3P+zJkzyc7OZvPmzQQEqHNAGjduXJslV0t+sQ0dOnYcVW8NdUhU2/YHm7zi/y4hxD/ZtAk2boSnnlJ/ltEVISrN4+81lJaWsmvXLvr3719+zM/Pj/79+7Nly5bzPuf777+ne/fujBs3jtjYWC677DJef/11HA7HBa9jtVrJz8+v8KUFh1Mh11JKgL+u/NZQu0bhBBn9CTJIF1whvNrGjTBwIDz9NHz+udbVCOF1KhVaBg8ezK5du9x20eLiYt566y0++uiji56bmZmJw+EgNja2wvHY2Njz7jANcPToURYsWIDD4WDp0qU8//zzvP3227z66qsXvM7kyZMxm83lXw0bNqzaL8pNiqx2ikrtJGVaKCixE2ryp1FUMFEhBtlsUghvtmEDXHstWCxq87ibbtK6IiG8TqVCy7Jly+jatSs33HADy5cvx+l0unSxEydO8Oqrr9KkSROeeuopMjMzXXqdi3E6ncTExDB9+nQ6derE8OHDefbZZ5k2bdoFnzNx4kTy8vLKv5KTk2uktosptNqxOxV2HVdvDXVsHIm/n45Qkyx1FsJrrV8PgwapgaV/f/jhBwgK0roqIbxOpSZJrFy5kgkTJvDDDz/w448/Uq9ePW699VauuuoqunbtesH5IkVFRezcuZNt27bx/fffs3nzZkCdnDthwgT+/e9/X/Ta0dHR6PV60tLSKhxPS0u7YLO6+Ph4AgIC0OvP3k655JJLSE1NpbS0FIPh3AmtRqMRo9F40XpqWo6lFB1nlzq3Twwn0OAvS52F8Fbr1sF110FRkbq8+bvvIDBQ66qE8EqV+iTs168fv/zyC7NmzeLNN9/kwIEDfPjhh3z44YcAhIaGEh0dTWRkJEajkZycHLKzs8nIyCgflVEUBZPJxO23384LL7xAYmJipQo0GAx06tSJVatWMXToUEAdSVm1ahUPP/zweZ/Ts2dP5s2bh9PpLN8f6eDBg8THx583sHgKq81BQbGN4xkWLFYH5qAA6kcEEh4cQIAsdRbC+6SmwuDBamAZOBAWLZLAIkQ1VPqTUKfTcffdd7N//37WrFnDbbfdRmRkJIqikJ+fz9GjR9m5cyebNm1i3759pKam4nA48PPzo0uXLrz77rukpKQwY8aMSgeWMuPHj+eTTz5h9uzZ7N+/n7Fjx2KxWMpXE40aNYqJEyeWnz927Fiys7N59NFHOXjwIEuWLOH1119n3LhxVbpubbNY7ZTYHOxJygWgS9MoFHSYgzw3aAkh/kFcHPznP+qtocWLJbAIUU0u3XPo1asXvXr1AmDfvn1s27aNlJQUMjIyKCkpISoqinr16nHppZfSo0ePam+UOHz4cDIyMnjhhRdITU2lQ4cOLF++vHxyblJSUoUdpxs2bMiKFSt4/PHHadeuHfXr1+fRRx/lqbIlhh6qsMSO3eFkz4kcAC5vFI7R348QuTUkhHdRFLX3CsC4cTB2LPjJaKkQ1aVTFEXRughPlJ+fj9lsJi8vj7Ba2LjM6VT4LTmXPSeymbbqMOagAF648TJCTQG0bRguK4eE8BYrV8JLL6mTbSMjta5GCE3U1GeoRH8PUVzqoMhqZ9+pPAAuT4zA7lCICjFKYBHCW/z0E1x/PWzeDJMna12NED5HQouHsFjtlJQ62HMiF1BDi58OQqQLrhDeYcUKNbCUlMCQIfAPfaGEEK6RT0QPkVdcyslcC/nF6l5DidFB+Ov1stRZCG+wfDkMHQpWK9xwA3z9NXjwSkUhvJWMtHgAu8NJXpGNP08VANA+MYJSh0J4UAD+evm/SAiPtnSpGlSsVjW4SGARosbIJ6IHsFjtFFlt/HZmqXOnxhE4nYosdRbC05WWwr//rf73xhth/nwJLELUIAktHsBitXMyp5jMQisGfz9axodiCvCX+SxCeDqDAZYtU5c0S2ARosZJaNGYoihkF5byZ4q6q3TbBmZsDoXQQH9MAbKrsxAeKSvr7PctWsCHH0KA7A8mRE2T0KKxEpuDwhI7vyerS507Nomk1O6kXqhJljoL4Ym+/x4aN1bnsgghapWEFo1ZrA5OZltIyS1G76ejZVwowcYAzEHyrzYhPM5338Ett0BhoXo7SAhRqyS0aCy/2MYfp9RbQ5ckhOFUIDrUiFFuDQnhWRYtUgOLzQa33QYzZmhdkRB1TrVnehYVFfHpp5+yYsUKTpw4QXFxMUeOHCl/PC8vjyVLlqDT6bj99turezmf4nAq5FpK2XcqFzjbUC4yWCbzCeFRvv0Whg8Hux1uvx3mzAF/mSgvRG2r1p+6PXv2cMMNN3Dy5EnKtjD6+zyMsLAwXn31VQ4cOEBsbCx9+/atziV9SpHVTkpuEScyi9ABLeJCCQ00EBoot4aE8BgLF6qBxeGAO+6AWbMksAihEZdvD2VlZTF48GCSk5Pp2LEjb7311nk3RdLpdNxzzz0oisL3339frWJ9jcVqL+/N0jwuFIO/HzFhJvR+MgFXCI+xZIkaWO68E2bPlsAihIZcDi3vvvsup0+fpl+/fmzbto3x48cTGBh43nMHDx4MwJYtW1y9nE/KtpSWb5DYrmE4pgB/wmUCrhCe5ZNPYPp0dYRFL3PNhNCSy6Hlhx9+QKfT8eabb+Ln988v06pVKwICAirMdanrrDYHp3OKOZpeCEDLuBAigg0EyV5DQmhv82Z1dAXUoHLffRJYhPAALoeWo0ePYjAY6NChw0XP1el0hIWFkZ+f7+rlfI7FaueXE9k4FWgUFUR4sJHoUKPWZQkhvvwSrroK7rrrbHARQngEl0OL0+nE39+/Ug3QFEWhsLCQ4OBgVy/ncwpL7PxxUr011KaBmWCjv/RmEUJr8+apc1ecTrUlvzR4FMKjuBxa6tevT1FREenp6Rc9d8eOHVitVpo0aeLq5XyKoiik5BZzKFXd1blVXBgxYSbZ0VkILX3+OYwcqQaWe+9V57Jc5Na3EKJ2ufwnsnfv3gB89tlnFz130qRJ6HQ6BgwY4OrlfEqJzcHu49nYnQoxYUYaRAUSIb1ZhNDO3LkwerQaWO67Dz7+WAKLEB7I5T+Vjz76KDqdjtdff52ff/75vOekpaVxxx13sGzZMgwGA+PGjXO5UF9SYnPy64kcQL01FB5klB2dhdDKnDlnA8v998O0aRJYhPBQLv/JbNOmDa+//joFBQUMHDiQzp07k5enztEYMWIEPXv2JDExka+++gqA9957j0aNGrmnai+XX2xj/5ldnS+pbyYmTDZHFEIz0dHqDs0PPggffSSBRQgPVq1/3j/55JNERUXxxBNPsHv37vLj8+fPL++QGx4ezpQpUxg1alT1KvUh249kUmp3Yg4KoEVsKGEyAVcI7Vx3HezYAZddJoFFCA9X7XsS99xzD8OHD2fhwoVs2rSJlJQUHA4HcXFx9OzZk1tvvRWz2eyOWn2CoijsOXNrqHW8OgHXJJsjClG7vvgCunaFFi3Un9u107YeIUSluGUiRUhICKNHj2b06NHueDmfZrU5OZVTDED9iEAiQ6Q3ixC16tNP1cm29evDrl0QG6t1RUKISnJ5LHT9+vVs3bq10udv376d9evXu3o5n1Fic5Caq4aWpjGhhMnmiELUnunT1cACcPPNEBOjbT1CiCpxeaSld+/exMfHc+rUqUqdP3z4cJKTk7Hb7a5e0ifkWErJLbIB0LahWTZHFKK2fPyxOtkW4NFH4d13pXmcEF6mWrPOyibb1tT5vuhIutpQLtTkT4NI6RAsRK346KOzgeXxxyWwCOGlam2qvMViISCgbt8KURSFw6nqBolx4YEYA2SlghA1bv58eOgh9fvx4+HttyWwCOGlaqWj2YEDB8jMzKRBgwa1cTmPVWp3kpxtAdRJuNK2X4haMGAAXH459OsHb74pgUUIL1bp0PLdd9/x3XffVTiWl5fHmDFjLvgcRVHIzc1lw4YN6HQ6rrrqKtcr9QElNgenz0zCTYyWW0NC1IrISNiwAYKCJLAI4eUqHVr27NnDrFmz0Ol05XNTiouLmTVrVqWeX69ePV588UWXivQVVpuTtLwSAJrGhGhcjRA+7H//A70eyrYOkR3mhfAJlQ4tHTp0qNCHZfbs2QQGBjJs2LALPsfPz4+wsDAuu+wybr75ZsLDw6tVrLfLLbKSbSkFJLQIUWPefVeduwLQqRNccYW29Qgh3KbSoeWGG27ghhtuKP959uzZmM3mSu3yLFSHUwtRFAg06KkXKk3lhHC7d96BCRPU7599Frp107YeIYRbuTwRd82aNRgMBnfW4tNsdicnsooAiDObMErrfiHc6+234Ykn1O+ffx4mTZI5LEL4GJdDS69evdxZh88rsTk4laOGlvjwQAz+ElqEcJv//heefFL9/sUX4aWXNC1HCFEzamXJs6jYvr9BZJB0whXCXbZsORtYXnpJDS1CCJ9U7dCSmprKzJkz2bhxIydPnsRisVyw861Op+PIkSPVvaRXKi51kJ6vrhxqIpNwhXCf7t3VsKLTwQsvaF2NEKIGVSu0LFq0iNGjR180qJQ9pqvD95dzLFYyC6wANJPQIkT12WxQ1mVbRleEqBNcbsm6b98+RowYQWFhIddddx0ffvghAGazmU8//ZRXX32V3r17oygK0dHRfPDBB8ycOdNthXsTu8NJclYRTgUM/n7EhwdqXZIQ3u3VV6F/fygs1LoSIUQtcjm0vPvuu1itVu68805++OEHHjyzGVlgYCBjxozhmWeeYfXq1SxZsoSioiJmz57NiBEj3Fa4N7HanCRnq5NwY8Nk5ZAQ1fLKK+rqoPXr4W9duoUQvs3l0LJ27Vp0Oh0TJ078x/MGDRrE22+/zY4dO5gyZYqrl/NqJTYHKTnqJNy48EAMsueQEK6ZNOnsvJU33oA77tC2HiFErXL50/PUqVP4+/tzySWXlB/T6XRYrdZzzh05ciR6vZ6vvvrK1ct5tRKbg4wzk3ATIkwE+EtoEaLKXnrp7FLm//wHnnpKy2qEEBpweSKuwWAgoGwS3BkhISHk5eVht9vx9z/70kFBQYSGhtbZlUP5xTbSz0zCTYwKluXOQlSFoqhh5eWX1Z//+9+zTeSEEHWKy//kT0hIID8/H6fTWX6scePGKIrCr7/+WuHcnJwccnNzKS0tdb1SL+VwKhQU20jPk+XOQrgkLQ2mTlW//2vXWyFEneNyaGnZsiV2u50///yz/FjPnj1RFIW33nqrwrnPPfccAK1atXL1cl6rxObgdF4xdqeCv15HwyjZbVaIKomLg1Wr1OBSthGiEKJOcjm09OvXD0VRWL58efmxBx98ED8/P77++msuu+wy7rjjDtq1a8e0adPQ6XSMGTPGLUV7k79Owo0JNREoK4eEuDhFgWPHzv7cvj089JB29QghPILLoWXYsGGMHj2akpKS8mPt2rVjypQp+Pn5sW/fPr788kt+//13FEXhtttu45FHHnFL0d7EanOWd8KNNZswyCRcIf6ZosDEidC2LWzcqHU1QggP4vJE3NjYWD777LNzjj/88MP079+fBQsWkJycjNls5tprr6Vv377VKtRbFZbYyMhXJ+HGhwfKyiEh/omiqKuC/vtf9ee9e+HKK7WtSQjhMWpkw8TWrVuXz2Opy5xOhYISW/lIS0Kk9GgR4oIURd34sGxO3AcfwNix2tYkhPAoLn+C9u3bl379+tXZZcyVYbU7sNocpJWtHKoXgp8sdxbiXIqirgoqCywffgjjxmlbkxDC47g80rJx40YCAgJo1qyZO+vxKSU2J+n5Vqx2J346SIwK0rokITyPoqirgso6Zn/0EZzZFkQIIf7K5ZGW2NhYDAaDO2vxOSV/GWWJDjURYgq4yDOEqIPsdigbsf34YwksQogLcjm0XH311eTn53Po0CF31uNTLCU2MgrKVg4ZZRKuEOcTEADffANLl8L992tdjRDCg7n8KfrEE0/g7+/PhAkTUBTFnTX5BEVRKCixk1WgdgGOM8skXCHKKQosXKj+F8BohEGDtK1JCOHxXP4Uvfzyy/nyyy9Zu3YtPXv2ZNGiRaSlpUmAOcNqd2K1OUk7s3IoPjxQerQIAWpQefhhuOUW6XArhKgSlyfi6vVnO7tu27aNW2655aLP0el02O12Vy/pVaw2B1abndRctRtug0gJLULgdKqB5aOPQKeDdu20rkgI4UVcDi0yovLPSmwO8kvsFJU60OmgcXQIOp0sdxZ1mNOptuL/+GM1sMycCXfdpXVVQggv4nJoWbNmjTvr8DkWq4OMM7eGokKMhAfLyiFRhzmdaqO46dPVwDJrFowapXVVQggv43Jo6dWrlzvr8DmFJTayCtX2/TFhRgz+slGiqMPGjTsbWGbPhpEjta5ICOGFZJJFDbA7nGc2SiwLLbJRoqjjrrpKXdo8Z44EFiGEy2pk76G6zmp3YnM4yxvLycohUeeNGKFufNiokdaVCCG8mHyS1gDbmdCSmqeuHKofESi3h0Td4nDAc8/BqVNnj0lgEUJUk4SWGlBqd2Kx2skvVpd3N4gMIkAvK4dEHeFwwD33wGuvwTXXgM2mdUVCCB8ht4dqQInNQfqZW0MRwQbMQQZZ7izqBocDxoxR567o9fDSS+pcFiGEcAMJLTXAYrWT+ZeVQ8FGeZtFHeBwqH1XPv9cDSxffaV2vRVCCDeRT1M3UxSFEpuDjIKzK4eMAXIXTvg4hwNGj4YvvgB/fzWw3Hyz1lUJIXyMhBY3K7U7sdqd5beH1OXOMglX+Lhnnz0bWObPh5tu0roiIYQPkiEANyu1O7E7nOV7DiVEyO7Oog7497+hTRv4+msJLEKIGuO2kRZFUcjKyqKoqIhGdXhpY6ndSWGJnZwidcVEQoT0aBE+SlHUDrcACQmwZ4860iKEEDWk2p+mu3fv5qabbsJsNhMbG0vTpk0rPJ6Tk8MDDzzAgw8+SHFxcXUv5/FKHU7SC9RbQ+bAAMKDDPjLcmfha2w2tWHcvHlnj0lgEULUsGqFlrlz59K9e3cWL15MYWEhiqKcs/tzREQER44c4ZNPPuG7776rVrHeoLjUQUbZfBaziSCDvyx3Fr7FZoPbb1cn2957L6Smal2REKKOcDm07Nu3j/vuuw+bzca///1vdu7cSXR09HnPHT16NIqisGzZMpcL9RYWq420M7s7x5pNBBllEq7wITYb3HYbLFwIBgN88w3ExWldlRCijnB5PPedd96htLSUcePGMWXKFAD0+vN/QPfr1w+AXbt2uXo5r1C2UWLqmZGWOLMJo6wcEr6itFQNLIsWgdGo/nfQIK2rEkLUIS6HljVr1qDT6Xjqqacuem5CQgKBgYEkJye7ejmvYHOoew6dzlHn7sSZAwmQSbjCF5SWwrBh8N13amBZvBiuvVbrqoQQdYzLn6gpKSkEBwfToEGDSp0fFBTk8xNxS+1OcgqtFJTY0QH1I2XlkPARn39+NrB8950EFiGEJlweaTEajZSUlKAoykUnmlqtVnJzc4mIiHD1cl7BandyOle9NRQdaiTYGCA9WoRvuPtu2L8fBgxQN0EUQggNuPyJ2rRpU2w2GwcPHrzouStWrMDhcNCmTRtXL+cVSu1n57PEh6ujLHJ7SHgtq1X9ArUfy3//K4FFCKEplz9Rr7vuOhRFKZ+EeyEFBQU8/fTT6HQ6rr/+elcv5xWKrPaKK4cMMglXeKmSErWz7S23nA0uQgihMZdDy2OPPYbZbGb69Ok8//zz5ObmVni8uLiYb7/9lq5du/Lnn38SFxfH/fffX916PZaiKFisdtLOjLTUCzMSJLs7C29UUgI33ghLl8KqVfDHH1pXJIQQQDVCS3R0NN988w0mk4nXX3+d2NhYMjMzAXW1kNls5tZbb+XAgQOEhISwYMECgoOD3Va4p7E51N2dy/YcijPLJFzhhUpKYOhQWL4cAgNhyRLo2FHrqoQQAqhmR9z+/fuzdetWevfujc1mw+FwoCgKqamp2O12FEWhd+/ebNmyhe7du7urZo9ksztJzy/Banfi76cjJsyIUUKL8CbFxXDDDbBiBQQFqSMtffpoXZUQQpSr9v2Ltm3bsmrVKk6cOMGmTZtISUnB4XAQFxdHz549ad68uTvqBGDq1Kn897//JTU1lfbt2/P+++/TtWvXiz7vq6++4vbbb+eGG25g8eLFbqvnr6x2Byll/VnCTZgM/pgCZE6L8BJlgWXlyrOBpVcvrasSQogK3DbpIjExkcTERHe93Dnmz5/P+PHjmTZtGt26dWPKlCkMHDiQAwcOEBMTc8HnHT9+nCeeeIKrrrqqxmqDMyuH/nJryBSgl9tDwnscOACbN0NwsBpYrr5a64qEEOIcLn+qbtq0yZ11XNQ777zDfffdx913382ll17KtGnTCAoKYubMmRd8jsPh4I477mDSpEnn7D7tbiU2R/ly55gwI2GBAbJRovAeHTqo81iWLZPAIoTwWC6HlquuuooWLVrw8ssvc/ToUXfWdI7S0lJ27dpF//79y4/5+fnRv39/tmzZcsHnvfzyy8TExHDPPfdc9BpWq5X8/PwKX1Xx15VDseZAgmWjROHpiorUhnFlrrwSanhEUgghqqNa9y+OHDnCpEmTaNGiBVdeeSWffPIJeXl57qqtXGZmJg6Hg9jY2ArHY2NjSU1NPe9zNm7cyIwZM/jkk08qdY3JkydjNpvLvxo2bFjp+pxOhYISG+lnerTEm00yn0V4NosF/vUvNaj8+qvW1QghRKW4HFoOHz7Miy++SLNmzVAUhc2bN/Pggw8SFxfHsGHD+OGHH3A4HO6stdIKCgoYOXIkn3zyCdHR0ZV6zsSJE8nLyyv/qsrmjqV2JynZJTgVCDToqRdmwiihRXgqiwUGD4Y1a8BmU0dchBDCC1Srjf+LL77IwYMHywNLREQEVquVBQsWMHToUBISEnjsscfYuXNntYqMjo5Gr9eTlpZW4XhaWhpxcXHnnH/kyBGOHz/OkCFD8Pf3x9/fnzlz5vD999/j7+/PkSNHznmO0WgkLCyswldlWe0OTmZbAHWUJdDgL8udhWcqLITrroN16yAsDH76CXy8HYEQwne45ZP1iiuu4MMPP+T06dMsWrSIG2+8EYPBQEZGBu+//z7dunWjTZs2/Oc//3Hp9Q0GA506dWLVqlXlx5xOJ6tWrTpv/5fWrVuzd+9e9uzZU/51/fXX06dPH/bs2VOlWz+VYXMopJxZORRjNhEa6C+TcIXnKSiAQYNg/fqzgeWKK7SuSgghKs2twwEBAQHccMMNLFy4kNOnT/PRRx/Ro0cPFEVh//79PPPMMy6/9vjx4/nkk0+YPXs2+/fvZ+zYsVgsFu6++24ARo0axcSJEwEwmUxcdtllFb7Cw8MJDQ3lsssuw2AwuOXXW6bU7vjLJFwTwdK+X3iassCycSOYzWo/lm7dtK5KCCGqpMY+XcPDw7nnnnuoV68eJSUl7Nq1q1qvN3z4cDIyMnjhhRdITU2lQ4cOLF++vHxyblJSEn5+2tySKbLay5c7l/VoEcKj+PmBXn82sHTponVFQghRZTpFURR3v+iWLVuYO3cuX3/9NTk5OYC6oWBMTMwFV/t4mvz8fMxmM3l5eRed37LlUCaPf66GstdubU/PlvUwyQ7PwtMUFsKxY9C2rdaVCCF8XFU+Q6vCbSMtR48e5fPPP+fzzz8vn+iqKApGo5EhQ4YwatQoBg0a5K7LeQy7w0lyljoJ1xwYQGSIAWOATMIVHiAvDxYsgLI+RSEhEliEEF6tWqElNzeXr7/+mjlz5pQ3eSsbuOnZsyejRo1i2LBhmM3m6lfqoax2J8lZ6pLRWLOJUJNMwhUeIC8PBg6EbdsgOxv+7/+0rkgIIarN5dByyy23sGTJEkpLS8uDSrNmzRg5ciQjR46kSZMmbivSk5XanZzKORtagk0BGlck6rzcXDWwbN8OkZHwl07SQgjhzVwOLd9++y0AERERDBs2jJEjR9KjRw+3FeYtSu1n9xyKD5dJuEJjublwzTWwY4caWFatUvcVEkIIH+ByaLn++usZOXIkQ4YMcfsSYm9SUuoo3925QWQQJpnPIrSSk6MGlp07ISpKDSzt22tdlRBCuI3LoWXx4sVuLMN7nc4tpqjUgQ5oFBWM0V9GWoQGbLazgSU6Wg0s7dppXZUQQriVDAtUg6IoHE4vACAq1EhkiAE/P5mEKzQQEAB33QX16sHq1RJYhBA+SUJLNVjtTk5mqbeGYs0mQmQSrtDSuHFw8KAsaxZC+KxKhRa9Xo9er6dNmzbnHKvKl7+/b7W3t/1l5VCc2STzWUTtysqCUaPU/5YJD9esHCGEqGmVShFlS5r/2jy3Bhrpep1Su5PTuerKIXUSrsxnEbUkM1Ndyvzrr+r3S5dqXZEQQtS4SoWWNWvWABAUFHTOsbqs2HZ2o8RG0cESWkTtyMyEfv3gt98gLg7eeUfrioQQolZUKrT06tWrUsfqmhOZhdgcTvz9dDSNDpFJuKLmZWSogWXvXjWwrFkDrVtrXZUQQtQKmYRRDUfSCgGIMZswB8skXFHD0tOhb181sMTHw9q1EliEEHWKy6Glb9++3HrrrZU+//bbb6dfv36uXs7j2B1OTmSqGyXGmU0Y5daQqGmjR8Pvv0NCghpYWrXSuiIhhKhVLi/nWbt2LXFxcZU+f+vWrSQlJbl6OY/z1z2HEiKCCJTQImra++/DnXfC3LnQooXW1QghRK2rtTXITqfTp3Y/LrU7SclRe7Q0igqSkRZRMxwO0J/5vdW8OWzZAj7050gIIaqiVua0OBwO0tPTCQ4Oro3L1QqL1U5mgRWAFnGh6GUSrnC306ehU6eKy5klsAgh6rBKj7Tk5+eTm5tb4ZjD4SA5OfmCPVsURSE3N5fPPvsMq9VKOx9qLX4soxCnAoEBehpFBV38CUJURUoK9Omjdrh97DEYMEBt1S+EEHVYpUPLu+++y8svv1zhWGZmJo0bN67U83U6HSNHjqxScZ6sbOVQXLgJk8G3Ov0KjZ06pQaWQ4egUSNYvlwCixBCUMU5LX8dUdHpdJXuilu/fn0efPBBHn744apV58GOZaihJT48UJrKCff5a2BJTFT7sDRponVVQgjhESodWh577DHuuusuQA0vTZs2pV69emzfvv2Cz/Hz8yMsLAyz2VztQj2JoigkZ6srhxpK+37hLidPqoHl8GE1sKxdC5UcyRRCiLqg0qHFbDZXCB9XX3010dHRJCYm1khhnszuUEjJVlcONY0NkUm4wj2mTlUDS+PG6giLBBYhhKigWn1a6qrCEhs5RaUAtIoL07ga4TNefVVd4jxunDrSIoQQogKZQeqC9DNLnf31OqJDjRpXI7xaWhpER6u9WPR6ePNNrSsSQgiPVanQsn79ekDd5blz584VjlXV1Vdf7dLzPEl6vrqzc1hgAIGycki46sQJdQ5Lz54wa9bZJnJCCCHOq1KfuL1790an09G6dWv++OOPCseqQqfTYbfbq16lh8k8E1rMgQEYA2TPSeGC48fVwHL8OPj5QVYWxMRoXZUQQni0Sg8TKIqC0+k851hVVPV8T5VZqM5niQw24q+X0CKq6NgxNbCcOKHuIbRmjQQWIYSohEqFlr+HlQsdqyvKRlpkPouosqNH1cCSlHQ2sNSvr3VVQgjhFWRChguyzoy0REloEVVx9Cj07g3JydCypRpYEhK0rkoIIbyG3NuoIkVRyLGcCS0hBo2rEV7lyBF1tVCrVmrjOAksQghRJTU20pKRkcHGjRvx8/OjV69ehIeH19SlapXdoZBbJCMtwgUDBsCSJdCmDcTHa12NEEJ4HZdHWnbu3MmYMWN4++23z3nsq6++onHjxtxyyy3cdNNNNGrUiEWLFlWrUE9hdzrJL7YBUE9Ci7iYQ4fUrzL9+0tgEUIIF7kcWubNm8fs2bPx86v4EikpKdxzzz0UFxejKAqKolBYWMiIESM4cuRItQvWWonNQWGJumw7JtSkcTXCox06pM5hKdtPSAghRLW4HFrKmstdf/31FY5Pnz6d4uJi2rVrx6FDh0hOTqZXr16Ulpbyv//9r3rVeoDMAisKoNNBpIy0iAs5cAB69YKUFAgPhzDZ7kEIIarL5dBy+vRpdDrdORsmLlmyBJ1Ox6uvvkqzZs2oX78+7733HoqisHr16moXrLXMfLWFf6gpAKO/zGMW53HggDq6cvo0XHYZrF4tfViEEMINXP7UzcrKIjw8HH//s3N5i4uL2bNnD0ajkWuuuab8eLt27TAYDBw/frxaxXqCjDP7DpkDA2R3Z3GuP/9UbwmdPg1t20pgEUIIN3I5tPj7+5Ofn1/h2I4dO3A4HHTu3BmDoeJy4JCQEJ9o4Z9xprFceHBAlbcxED7uwAE1sKSmQrt2amCpV0/rqoQQwme4HFoaN26Mw+Fgx44d5ce+//57dDodPXv2rHCuw+EgLy+PGB/4F2dGoTrSEhEs81nE39Srp/Zead8eVq1Sd28WQgjhNi73aRkwYAD79u1j3LhxvP/++5w+fZrp06cDMGTIkArn7t27F4fDQYMGDapXrcYURSH7TGiRxnLiHJGR8PPPoCgQFaV1NUII4XNcHml54oknCA8PZ9euXfTo0YObb76ZwsJC+vTpQ48ePSqcWzY5t3v37tUuWEsOp0JukdqjJTpERloE8Pvv8MknZ3+OjJTAIoQQNcTl0FK/fn3WrFlDnz59MJlMxMXFcd9997Fw4cIK5ymKwmeffYaiKPTp06faBWvJ5nCSdya0SDdcwd696iqh+++Hr77SuhohhPB51Wrj3759e37++ed/PMfpdLJq1SpADTrezO5QyrvhSmip4377Dfr1g8xM6NQJ/rJaTgghRM2o8V2e9Xr9Ob1cvFWp3SEt/AX8+qsaWLKyoHNn+OkniIjQuiohhPB5bg0tDoeD7OxsACIjI9Hr9e58ec3lWmw4nAogoaXO2rNHDSzZ2dClixpYfGQzUCGE8HTVbulaVFTEO++8Q5cuXQgKCiIuLo64uDiCgoLo2rUrU6ZMoaioyB21ai6zUO3REmjQE2io8UEq4WnS0s4Glq5dYeVKCSxCCFGLqvXJe+DAAYYMGcKRI0dQFKXCYzabjZ07d7Jr1y4++ugjfvjhB1q2bFmtYrWWlqcudw4LDMBfLy3865zYWHjsMViyBFasALNZ64qEEKJOcTm0FBQUcM0115CcnIy/vz833XQTAwYMKO/FcvLkSX7++WcWLlzIoUOHGDhwIHv37iUkJMRtxde2jAJ1pEVa+Ndhzz8PTz4JRrk9KIQQtc3l0DJlyhSSk5NJSEjgxx9/pEOHDuecc8899/Drr78yePBgkpKSeO+993j22WerU6+mMs/sOxQeJKGlztixA159Fb74AsoCtwQWIYTQhMv3OBYvXoxOp+Pjjz8+b2Ap0759e6ZPn46iKHz77beuXk5zdoezvLFcpDSWqxu2b4cBA+D77+GFF7SuRggh6jyXQ8vhw4cxGo0MHjz4oucOGjQIk8nE4cOHXb2c5uwOhbyiUgAipYW/79u2TQ0seXlw5ZUwaZLWFQkhRJ3ncmix2Wzn7OR8ITqdDoPBgM1mc/VymvtrN1xp4e/jtm5Vm8Xl58NVV8GyZRAaqnVVQghR57kcWho0aEBBQQH79u276Lm///47+fn5Xr1hot351264Jo2rETVmy5azgeXqq2Hp0rNzWYQQQmjK5dDSr18/FEVh7NixlJSUXPC8kpISHnroIXQ6Hf3793f1cpqzOZzkl0g3XJ9ms8Gdd0JBAfTuLYFFCCE8jMuh5f/+7/8wGo1s3LiR9u3bM2PGDI4fP47NZsNms3Hs2DE+/fRT2rdvz8aNGzEYDDzxxBPurL1WWUpsWG1OAKLDJLT4pIAA+PZbuOUW+PFHCA7WuiIhhBB/4fKS56ZNmzJ79mxGjhzJoUOHuP/++897nqIoBAQEMHv2bJo2bepyoVpLy1eXO/vrdYSZpBuuTykuhsBA9fv27eGbb7StRwghxHlVq63rsGHD2LJlCwMHDgTUgPLXL51Ox6BBg9i6dSvDhg1zS8FaSc9Tb4GFmQII8LE9leq0DRugaVPYuFHrSoQQQlxEtYcMOnbsyLJly8jLy2P37t2kp6cDEBMTQ8eOHTH7SKvz8m640ljOd6xfD9ddBxYLvPOOurRZCCGEx3LbfQ6z2UyfPn3c9XIexe5wkmNRe7SEBRrw10to8Xrr1qmBpahIXS30xRdaVySEEOIiZNe/SlAby6krh6SFvw9Yu/ZsYBk4EBYvPjunRQghhMdyy0jLrl27+Oqrr9i5c2eF20OdO3dm+PDhdO7c2R2X0Yzd6ST3TDfciGADOp2EFq+1ejX861/q5Ntrr4VFi8AkfXeEEMIbVCu05OXlcc8997Bo0SJAnYhbZv/+/axfv5533nmHoUOH8umnnxIREVG9ajVicyjklTWWk2643m36dDWwXHcdLFwogUUIIbyIy6HFarXSt29f9uzZg6IoNGjQgN69e1O/fn0ATp06xbp160hOTmbx4sUcP36czZs3Y/TCHXJtDicF5d1wva9+8RezZ0O7djBhguzWLIQQXsbl0PLWW2/xyy+/YDKZ+OCDD7j77rvPe9tk1qxZPPTQQ+zZs4e3336bZ555ploFa8HuUCgotgMQI43lvM/+/dC6Neh0alDxwt+DQgghqjER98svv0Sn0zFlyhTGjBlzwXked911F1OmTEFRFL7w0hUaxaV2LFY1tMhmiV5mxQq4/HJ49FH4y+1LIYQQ3sfl0HL06FH8/f0ZPXr0Rc8dPXo0AQEBHDt2zNXLaSo9vwQF9R/qERJavMfy5XDDDWC1QlIS2O1aVySEEKIaXL49FBISgsPhqNQcFaPRSEhICHov7SSbfqaFf4jRH4O/rBL3CsuWwY03qoFl6FCYP1/dW0gIIYTXcvkTuFOnTuTm5pKSknLRc0+dOkVOTg5dunRx9XKasTucZBeqoSUsMAB/6dHi+ZYuVYOK1aoGl6+/BoNB66qEEEJUk8uhZfz48QBMmDDhouc+8cQT6HS68ud4E7tTIfdMN1xp4e8FfvxRDSqlpXDzzTLCIoQQPsTl0DJgwAA++OADvv32W/r168eaNWuw2Wzlj9vtdtasWUP//v1ZtGgRH3zwAf369XNL0bXJ7nCSe6YbbligQUKLpyssVOeu3HILfPmlBBYhhPAhOkVxbUlF06ZNAUhPT6e4uBgAf39/oqOjAcjMzMR+ZuJjUFAQ9erVO38BOh1HjhxxpYQalZ+fj9ls5kRKBu/8fJyth7O4tl08z9/YVoKLp1u/Hrp3l8AihBAaKfsMzcvLIywszG2v6/JE3OPHj59zzGazcfr06XOOWywWLBbLeV/H01vi2x3O8h4t4UEy0uKRli1TG8adaWzI1VdrW48QQoga4XJo+eyzz9xZh8eyORTyS6SFv8datAiGDYMmTWDTJrjAiJ4QQgjv53JoqUx/Fl9gczjKW/jXC5UVKB7l229h+HB1DkvnzuCle1sJIYSoHGk6chElpQ4KStTbQ/Wkhb/nWLhQHWGx22HECJgzB/zdsmm5EEIIDyWh5SKyi2w4nOpc5ajQQI2rEQB88406wuJwwJ13SmARQog6QkLLReQUqI3lAg16ggze2dHXp/zwA9x+uxpYRo6EWbPASzstCyGEqBr55+lF5BSpjeVCTQHo9bJySHOdOkGzZuqS5hkzJLAIIUQdIqHlIvLKG8v5Swt/T5CQoK4SioiQwCKEEHWMhJaLyCsuCy0B+PvJ3TRNzJsHigJ33KH+fKaBoRBCiLpFQstFFJzp0WKWFv7a+OILGDVK/b5ZM7jiCm3rEUIIoRkZOriIwjPLnc3BAfjLnJbaNXeuGlicTrjnHujaVeuKhBBCaEhCy0UUnrk9FCE7PNeu2bNh9Gg1sDzwAEybBnJ7Tggh6jSv+hSYOnUqjRs3xmQy0a1bN7Zv337Bcz/55BOuuuoqIiIiiIiIoH///v94/oUUlKojLZEhRo/fJ8lnzJoFd9+tzmN58EH48EMJLEIIIaofWk6ePMn48eNp06YNISEh+P+tyVdOTg6vv/46kydPLt/12RXz589n/PjxvPjii+zevZv27dszcOBA0tPTz3v+2rVruf3221mzZg1btmyhYcOGXHPNNZw6dapK1y0baZF9h2rJtm0wZowaWMaOhalTJbAIIYQAQKcoiuLqk1euXMmwYcPIz8+n7GV0Oh0Oh6PCeV27dmXXrl0sWrSI66+/3qVrdevWjS5duvDBBx8A4HQ6adiwIY888ghPP/30RZ/vcDiIiIjggw8+YFTZxM6/sFqtWK3W8p/z8/Np2LAhnZ5aiL8xmE/v7cZlDcNdql1UgaLA44+DzQYffAAyuiWEEF4nPz8fs9lMXl4eYWFhbntdl/8Jm5yczC233EJeXh5DhgxhwYIFRFxgw7oxY8agKApLlixx6VqlpaXs2rWL/v37lx/z8/Ojf//+bNmypVKvUVRUhM1mIzIy8ryPT548GbPZXP7VsGHD8scC9DrCgwJcql1UUll21ung3XclsAghhDiHy6Hl7bffpqCggGHDhrF48WJuuukmDIbz74I8cOBAAHbs2OHStTIzM3E4HMTGxlY4HhsbS2pqaqVe46mnniIhIaFC8PmriRMnkpeXV/6VnJxc/lioKQB/vdyiqDHTp8MNN0DZSJdOJ4FFCCHEOVzu07JixQp0Oh2vvPLKRc9t0qQJRqORY8eOuXq5annjjTf46quvWLt2LSaT6bznGI1GjMbzz1sJDZSVQzXm44/VybYAn3+uLm0WQgghzsPl4YOkpCQCAwNp0aJFpc4PCQnBYrG4dK3o6Gj0ej1paWkVjqelpREXF/ePz33rrbd44403+Omnn2jXrp1L1w81+ctIS0346KOzgeXxx9UJuEIIIcQFuPxJ7Ofnh9PprNS5drud/Px8lyfjGAwGOnXqxKpVq8qPOZ1OVq1aRffu3S/4vDfffJNXXnmF5cuX07lzZ5euDWCWkRb3+/BDeOgh9fsJE+Dtt+WWkBBCiH/kcmhJTEzEarWSlJR00XPXr1+PzWar9KjM+YwfP55PPvmE2bNns3//fsaOHYvFYuHuu+8GYNSoUUycOLH8/P/85z88//zzzJw5k8aNG5OamkpqaiqFhYVVvrY5yCCbJbrT1Kkwbpz6/f/9H/z3vxJYhBBCXJTLoaVsQuu0adP+8Tybzcazzz6LTqdj0KBBrl6O4cOH89Zbb/HCCy/QoUMH9uzZw/Lly8sn5yYlJXH69Ony8z/66CNKS0u55ZZbiI+PL/966623qnxts3TDdZ/0dCgLl08+Cf/5jwQWIYQQleJyn5YTJ07QunVrnE4nH374Iffccw/x8fGkp6eX92nZvXs3jz/+OBs2bCAsLIzDhw8T7SU79JatMe/01EL+PbgDd/RsIsHFXTZuhJ9/hhdflMAihBA+yOP6tCQmJvLpp5/icDi4//77iY2NJScnB4AePXpQv359unTpwoYNG/D392fOnDleE1j+LjxIdniutszMs99feSW89JIEFiGEEFVSrSUxd9xxB8uWLaNZs2ZkZGRQWlqKoihs3bqV06dPoygKzZs3Z/ny5S53wvUE0dLCv3reeQdat4Y9e7SuRAghhBdzuU9LmQEDBnDgwAHWr1/Ppk2bSElJweFwEBcXR8+ePenTpw96vd4dtWrCTwdRoedvmicq4a231Mm2AMuXQ4cOmpYjhBDCe1U7tIC631CvXr3o1auXO17Oo4QYAwg0eG/o0tR//6tOtgV1/kol9ogSQgghLkQ6pl1EiMkffy8eKdLMf/5zNrC89JL6JYQQQlSDhJaLCDEFSI+Wqpo8+eyoyqRJ6iiLEEIIUU0u3x7q27dvlZ+j0+kqdLX1BqEmPXq9hJZKs9lgxQr1+1degeee07YeIYQQPsPl0LJ27dpKnac7s6xVUZTy771JqIy0VE1AAPz4IyxaBCNHal2NEEIIH+JyaHnxIkP+eXl5bNu2jS1bthAVFcXYsWO9chVRmHTDrZx166BsInZIiAQWIYQQbldjoaXM6tWruemmm9i3bx8LFixw9XKaMQca8PeTqT//aNIkdaLtpEnwwgtaVyOEEMJH1fincd++fXnvvfdYtGgRn376aU1fzu0aRATJSMuFKIo6ybZsZZDJpGk5QgghfFutDCEMHz4cvV7vlaElKsyIv0zEPVdZYHn5ZfXnN988u8RZCCGEqAFuaS53MSaTieDgYPbv318bl3Mrg17nlROIa5SiqLeBXn1V/fmtt2DCBG1rEkII4fNqZaTl1KlT5OXl4eKG0poK0Mt8lnM8//zZwPL22xJYhBBC1IoaH2kpLi7moYceAqBt27Y1fTm3MwR434qnGpeQoP733Xfhscc0LUUIIUTd4XJoeblsLsMFlJSUkJyczIoVK8jKykKn0zFu3DhXL6cZg4y0nOuhh+DKK6FdO60rEUIIUYe4HFpeeumlSs31UBQFPz8/nnvuOUaMGOHq5TQjjeVQ57C8/z7ccQdERanHJLAIIYSoZS6HlquvvvofQ4u/vz8RERG0b9+eYcOG0aJFC1cvpak6v9xZUdRVQW+9BbNmwdatYDBoXZUQQog6qMbb+Hs7fV2+PaQo8H//p062Bbj3XgksQgghNFMrS569WZ0daVEUdVXQu++qP3/0ETz4oLY1CSGEqNNcHkbw8/PD39+fw4cPu7Mej1MnQ4uiwOOPnw0s06ZJYBFCCKE5l0daAgMDCQgIoHnz5u6sx+PUyYm4r7wC772nfj99Otx3n7b1CCGEEFRjpKVBgwbYbDZ31uKR6uRIy4gR0LAhfPKJBBYhhBAew+XQMnjwYEpKSli3bp076/E4/nVxIm7z5rB/vzrxVgghhPAQLn8iT5w4kXr16jF27FhOnz7tzppEbXM61c62P/549lhwsGblCCGEEOejU1zcEGj9+vUcOnSIxx9/HL1ez8iRI+nZsycxMTHo9RdufX/11Ve7XGxtys/Px2w2k5eXR1hYmNbl1BynE8aNUyfbmkxw9CjEx2tdlRBCCC9WU5+hlQ4tc+bMITAwkFtvvRVQVw9VdfdjnU6H3W6vepUaqBOhxemEsWPVybY6HcyeDSNHal2VEEIIL6d5aPHz8yM+Pp5Tp06V/+wKp9Pp0vNqm8+HFqdTXcb8ySfg56cGljvv1LoqIYQQPqCmPkOrtOT5r/nGW8KHOA+nE+6/H2bMUAPLnDnqvkJCCCGEB5OOuHXR7NlnA8vcueoSZyGEEMLDSWipi0aNgg0bYMAAuP12rasRQgghKkVCS13hcKj/1evVr5kzta1HCCGEqKI62DmtDnI44O674a67zoYXIYQQwstUaaQlLS3tH3uwXIw3LXn2GQ4HjB4NX3yhjrCMGwdXXKF1VUIIIUSVVfn2kIu96IQW7HY1sMybB/7+8NVXEliEEEJ4rSqFluDgYCZMmFBTtQh3stvVRnFffaUGlq+/hhtv1LoqIYQQwmVVCi0hISG8+OKLNVWLcBe7XW0UN3++Gli++QaGDtW6KiGEEKJaZPWQL/r1V1i0CAIC1MByww1aVySE8GKKomCz2aSpaB2m1+sJCAjQugwJLT6pUydYvFgdcRkyROtqhBBeqrS0lPT0dIqKinDIysM6z2g0Eh0drenWNhJafIXNBqmp0LCh+vOgQdrWI4TwakVFRSQnJ6PX64mIiCAwMBC9Xl/ljXKF9ysbacvLyyvff1Cr4CKhxRfYbHDbbbBtG6xdC82ba12REMLLZWZmEhAQQGJiYrVaXQjfEBgYSGhoKCdPniQzM1Oz0CLN5bxdaSkMHw7ffgsZGXDkiNYVCSG8nN1ux2KxEBkZKYFFlNPpdJjNZqxWKzabTZMaKj3SIhOwPFBpKQwbBt99B0ajOo9l4ECtqxJCeLmyJqBGo1HjSoSnKZuM63A4NJmYK7eHvJXVCrfeCj/8oAaW776TwCKEcCuZvyL+TuvfExJavJHVCrfcAj/+CCaTGliuuUbrqoQQQogaJaHFGxUXQ0qKGli+/x4GDNC6IiGEEKLGSWjxRuHhsHIl7NsHV16pdTVCCCFErZDVQ96ipES9DVQmMlICixBC1LLi4mJeeOEFWrZsiclkIiEhgTFjxpT3L6mKlStXMnjwYOrVq0dAQABRUVFcc801LFq06Lzn9+7dG51Od8Gv5cuXn/Ocl1566R+f8/TTT1e5bi3JSIs3KClRNztcvhw+/BDGjtW6IiGEqHNKSkro27cvW7duJT4+nhtuuIHjx4/z2Wef8eOPP7J161aaNm1aqdeaMmUKjz/+ODqdju7du9OwYUOSk5P5+eefWblyJc888wyvvfbaeZ978803ExIScs7x+vXrX/B6PXv2pPl5enh16tSpUvV6Cgktnq64WN3s8KefICgILrlE64qEEKJOevXVV9m6dSvdu3fnp59+Kg8O77zzDhMmTGDMmDGsXbv2oq+TkZHB008/TUBAACtXrqRXr17lj61fv55rrrmGyZMnc88995w3BL311ls0bty4SrXfe++93HXXXVV6jieS20OerLhY3eywLLAsXQq9e2tdlRBC1DmlpaV88MEHAEydOrXCSMf48eNp164d69atY9euXRd9rW3btmG1Wunbt2+FwAJw9dVXM3DgQBRFYefOne79RfgACS2eqqgIrr9enXAbHAzLlsHffnMLIYSoHZs2bSIvL49mzZpx+eWXn/P4LbfcAsAPP/xw0deqbNO+qKioqhVZB8jtIU9kt6uBZdWqs4Hlqqu0rkoIIeqsX3/9FYCOHTue9/Gy47/99ttFX6tr166Eh4ezevVq1q1bd87toRUrVtCiRQuuusDf+zNmzCArKws/Pz9atmzJ0KFDadSo0T9ec/Xq1ezZs4eSkhIaNGjAoEGDvG4+C0ho8Uz+/uqoyrZtamCRVUJCCA+iKAolNofWZVSaKaD6u1MnJSUB0KBBg/M+Xnb8xIkTF30ts9nMjBkzGDFiBH369KFHjx40aNCAkydPsnnzZnr27MmcOXMwGAznff6rr75a4ecnnniC559/nueff/6C15w7d26Fn59//nluvvlmZs2add5JvZ5KQounev55uOsuaNhQ60qEEKKCEpuDPq+t0rqMSlvzbD8CDdX7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","text/plain":["<Figure size 600x600 with 1 Axes>"]},"metadata":{},"output_type":"display_data"}],"source":["# from utils import get_roc_curve, get_pr_curve, get_confusion_matrix\n","\n","stage='test'\n","comment='patient'\n","pr_plot = get_pr_curve(probs, target, task=task)\n","pr_plot.figure.savefig(f'{output_dir}/{task}_{add_on}_pr.png', dpi=400)\n","pr_plot.figure.savefig(f'{output_dir}/{task}_{add_on}_pr.svg', format='svg')\n","plt.show()\n","\n","pr_plot.figure.clf()\n","\n","roc_plot = get_roc_curve(probs, target, task=task)\n","roc_plot.legend(loc='lower right', fontsize=15)\n","roc_plot.figure.savefig(f'{output_dir}/{task}_{add_on}_roc.png', dpi=400)\n","roc_plot.figure.savefig(f'{output_dir}/{task}_{add_on}_roc.svg', format='svg')\n","plt.show()\n","\n","roc_plot.figure.clf()"]},{"cell_type":"code","execution_count":6,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Optimal Threshold test patient: 0.7783203125\n"]},{"data":{"image/png":"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314ff/yxbrjhhvLOCAAA4FLmNS/Dhw9XQUGBkpKSlJ6ervT0dCUlJcnpdGr48OEVkREAAMClzDMvX375pbZt26aoqCjXWFRUlN555x117NixXMMBAABcrswzL/Xq1SvxZnRFRUWqU6dOuYQCAAC4kjKXlzfeeENPPfWUdu7c6RrbuXOnRo8erTfffLNcwwEAAFzOYRiGca2dqlatKofD4Xp97tw5FRYWysvrwlmni/9dpUoVpaenV1zaUuo4dYvZEQBUkLWjbzc7AoAK4lfKxSyl2u1vf/vb74gCAABQfkpVXmJjYys6BwAAQKn85pvUSVJubq7y8/PdxoKDg39XIAAAgKsp84Ldc+fO6cknn1StWrVUpUoVVa1a1e0LAACgIpW5vDz33HNav3693nvvPfn6+uqDDz7QxIkTVadOHc2ePbsiMgIAALiU+bTR8uXLNXv2bN1xxx16+OGH1bFjR0VGRioiIkJz587V4MGDKyInAACApN8w85Kenq5GjRpJurC+5eKl0bfffrs2bdpUvukAAAAuU+by0qhRIx09elSSdOONN2rBggWSLszIXHxQIwAAQEUpc3l5+OGHtW/fPknSuHHj9I9//EN+fn4aM2aMnn322XIPCAAAcKlS3WH3av7zn/9o165dioyM1M0331xeuX4X7rAL/HFxh13gj6tc77B7NREREYqIiPi9hwEAACiVUpWXadOmlfqAo0aN+s1hAAAArqVUp40aNmxYuoM5HDpy5MjvDvV7Td+eYnYEABVkzEieXg/8UZ3f826p9ivVzMvFq4sAAADMVuarjQAAAMxEeQEAALZCeQEAALZCeQEAALZCeQEAALbym8rL5s2bNWTIELVr107Hjx+XJM2ZM0dbtnBnWwAAULHKXF4WLVqkHj16yN/fX3v27FFeXp4kKTMzU6+++mq5BwQAALhUmcvLyy+/rOnTp+v999+Xt7e3a7xDhw7avXt3uYYDAAC4XJnLS3Jysjp16lRsPCQkRBkZGeWRCQAA4IrKXF7Cw8N16NChYuNbtmxRo0aNyiUUAADAlZS5vIwYMUKjR4/Wjh075HA4dOLECc2dO1dxcXF64oknKiIjAACAS6mebXSpcePGyel06q677lJOTo46deokX19fxcXF6amnnqqIjAAAAC6leqp0SfLz83Xo0CFlZ2erWbNmCgwMLO9svxlPlQb+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AAAsyNSZl8TERG3atEnr1q1Tly5d3LatX79effv21ezZszV06FCTEgIAAKsxdeZl3rx5ev7554sVF0m68847NW7cOM2dO9eEZAAAwKpMLS/ffvutevbsecXtd999N0+VBgAAbkwtL+np6QoLC7vi9rCwMJ05c6YSEwEAAKsztbwUFRXJy+vKy248PT1VWFhYiYkAAIDVmbpg1zAMDRs2TL6+viVuz8vLq+REAADA6kwtL7GxsdfchyuNAADApUwtLzNnzjTz4wEAgA2ZuuYFAACgrCgvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVigvAADAVhyGYRhmhwB+q7y8PCUkJGj8+PHy9fU1Ow6AcsTPN66E8gJby8rKUkhIiDIzMxUcHGx2HADliJ9vXAmnjQAAgK1QXgAAgK1QXgAAgK1QXmBrvr6+eumll1jMB/wB8fONK2HBLgAAsBVmXgAAgK1QXgAAgK1QXgAAgK1QXoASbNy4UQ6HQxkZGWZHAWzN4XBo6dKlZsfAHwzlBRVu2LBhcjgceu2119zGly5dKofDYVIqAL/HxZ9rh8Mhb29vhYWFqVu3bvroo4/kdDpd+6Wlpenuu+82MSn+iCgvqBR+fn56/fXXdebMmXI7Zn5+frkdC0DZ9ezZU2lpaUpJSdHq1avVpUsXjR49Wvfee68KCwslSeHh4VzqjHJHeUGl6Nq1q8LDw5WQkHDFfRYtWqTmzZvL19dXDRo00NSpU922N2jQQJMnT9bQoUMVHBys//qv/1JiYqJCQ0O1YsUKRUVFKSAgQAMHDlROTo5mzZqlBg0aqGrVqho1apSKiopcx5ozZ47atm2roKAghYeH68EHH9TPP/9cYd8/8Efk6+ur8PBw1a1bVzExMXr++ef16aefavXq1UpMTJTkftooPz9fTz75pGrXri0/Pz9FRES4/U7IyMjQ8OHDVbNmTQUHB+vOO+/Uvn37XNsPHz6sPn36KCwsTIGBgbrlllv0xRdfuGX65z//qSZNmsjPz09hYWEaOHCga5vT6VRCQoIaNmwof39/tWzZUgsXLqy4PyBUGMoLKoWnp6deffVVvfPOOzp27Fix7bt27dKgQYP0l7/8Rfv379eECRMUHx/v+gV40ZtvvqmWLVtqz549io+PlyTl5ORo2rRp+vjjj7VmzRpt3LhR/fr106pVq7Rq1SrNmTNHM2bMcPslVVBQoMmTJ2vfvn1aunSpUlJSNGzYsIr8IwCuC3feeadatmypxYsXF9s2bdo0LVu2TAsWLFBycrLmzp2rBg0auLb/+c9/1s8//6zVq1dr165diomJ0V133aX09HRJUnZ2tnr16qV169Zpz5496tmzp+677z6lpqZKknbu3KlRo0Zp0qRJSk5O1po1a9SpUyfX8RMSEjR79mxNnz5d33//vcaMGaMhQ4boyy+/rNg/FJQ/A6hgsbGxRp8+fQzDMIzbbrvNeOSRRwzDMIwlS5YYF/8KPvjgg0a3bt3c3vfss88azZo1c72OiIgw+vbt67bPzJkzDUnGoUOHXGOPPfaYERAQYJw9e9Y11qNHD+Oxxx67YsZvvvnGkOR6z4YNGwxJxpkzZ8r+DQPXgUt/ri93//33G9HR0YZhGIYkY8mSJYZhGMZTTz1l3HnnnYbT6Sz2ns2bNxvBwcFGbm6u23jjxo2NGTNmXDFH8+bNjXfeeccwDMNYtGiRERwcbGRlZRXbLzc31wgICDC2bdvmNv7oo48aDzzwwBWPD2ti5gWV6vXXX9esWbOUlJTkNp6UlKQOHTq4jXXo0EEHDx50O93Ttm3bYscMCAhQ48aNXa/DwsLUoEEDBQYGuo1delpo165duu+++1S/fn0FBQWpc+fOkuT6FxyA384wjBIX4w8bNkx79+5VVFSURo0apc8//9y1bd++fcrOzlb16tUVGBjo+jp69KgOHz4s6cLMS1xcnKKjoxUaGqrAwEAlJSW5fm67deumiIgINWrUSA899JDmzp2rnJwcSdKhQ4eUk5Ojbt26uR1/9uzZruPDPrzMDoDrS6dOndSjRw+NHz/+N52mqVKlSrExb29vt9cXr364fOziFRDnzp1Tjx491KNHD82dO1c1a9ZUamqqevTowSJgoBwkJSWpYcOGxcZjYmJ09OhRrV69Wl988YUGDRqkrl27auHChcrOzlbt2rW1cePGYu8LDQ2VJMXFxWnt2rV68803FRkZKX9/fw0cOND1cxsUFKTdu3dr48aN+vzzz/Xiiy9qwoQJ+uabb5SdnS1JWrlyperWret2fBYU2w/lBZXutddeU6tWrRQVFeUai46O1tatW93227p1q5o2bSpPT89y/fwDBw7o119/1WuvvaZ69epJunCuHMDvt379eu3fv19jxowpcXtwcLDuv/9+3X///Ro4cKB69uyp9PR0xcTE6OTJk/Ly8nJbB3OprVu3atiwYerXr5+kCzMxKSkpbvt4eXmpa9eu6tq1q1566SWFhoZq/fr16tatm3x9fZWamuqaaYV9UV5Q6Vq0aKHBgwdr2rRprrFnnnlGt9xyiyZPnqz7779f27dv17vvvqt//vOf5f759evXl4+Pj9555x09/vjj+u677zR58uRy/xzgjy4vL08nT55UUVGRTp06pTVr1ighIUH33nuvhg4dWmz/t956S7Vr11br1q3l4eGhTz75ROHh4QoNDVXXrl3Vrl079e3bV1OmTFHTpk114sQJrVy5Uv369VPbtm3VpEkTLV68WPfdd58cDofi4+Pd7imzYsUKHTlyRJ06dVLVqlW1atUqOZ1ORUVFKSgoSHFxcRozZoycTqduv/12ZWZmauvWrQoODlZsbGxl/tHhd6K8wBSTJk3S/PnzXa9jYmK0YMECvfjii5o8ebJq166tSZMmVcgVQDVr1lRiYqKef/55TZs2TTExMXrzzTfVu3fvcv8s4I9szZo1ql27try8vFS1alW1bNlS06ZNU2xsrDw8ii+pDAoK0pQpU3Tw4EF5enrqlltu0apVq1z7rlq1Si+88IIefvhhnT59WuHh4erUqZPCwsIkXSg/jzzyiNq3b68aNWpo7NixysrKch0/NDRUixcv1oQJE5Sbm6smTZpo3rx5at68uSRp8uTJqlmzphISEnTkyBGFhoa6LvGG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","text/plain":["<Figure size 640x480 with 1 Axes>"]},"metadata":{},"output_type":"display_data"},{"data":{"text/plain":["<Figure size 640x480 with 0 Axes>"]},"metadata":{},"output_type":"display_data"}],"source":["stage = 'test'\n","comment='patient'\n","\n","cm_plot = get_confusion_matrix(probs, target, task=task, threshold_csv_path = threshold_csv_path)\n","\n","plt.show()\n","# cm_plot.figure.set(font_scale=18)\n","cm_plot.savefig(f'{output_dir}/{task}_cm.png', dpi=400)\n","cm_plot.savefig(f'{output_dir}/{task}_cm.svg', format='svg')\n","\n","# plt.savefig(f'{output_dir}/{task}_cm.png', dpi=400)\n","\n","cm_plot.clf()\n","\n","\n","\n"]},{"cell_type":"code","execution_count":7,"metadata":{},"outputs":[],"source":["# print((Path(output_dir)/task).stem)\n","# print(output_dir)\n","# model = 'vit'\n","# task = 'norm_rest'\n","# output_dir = f'/{home}/ylan/workspace/TransMIL-DeepGraft/test/results/{model}/'\n","# out_dir = Path(output_dir)/task\n","# for i in Path(out_dir).iterdir():\n","# if i.is_file():\n","# name = i.name.rsplit('_', 1)[1]\n","# # print(i)\n","# # print(i.parents[0])\n","# new_name = Path(output_dir) / f'{task}_{name}'\n","# print(new_name)\n","# i.rename(new_name)\n"," # print(new_name)\n"]},{"cell_type":"code","execution_count":8,"metadata":{},"outputs":[{"ename":"NameError","evalue":"name 'patient_score' is not defined","output_type":"error","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)","\u001b[1;32m/home/ylan/workspace/TransMIL-DeepGraft/code/utils/export_metrics.ipynb Cell 8\u001b[0m in \u001b[0;36m<cell line: 3>\u001b[0;34m()\u001b[0m\n\u001b[1;32m <a href='vscode-notebook-cell://ssh-remote%2Bdgx2/home/ylan/workspace/TransMIL-DeepGraft/code/utils/export_metrics.ipynb#X10sdnNjb2RlLXJlbW90ZQ%3D%3D?line=0'>1</a>\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mscipy\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mstats\u001b[39;00m \u001b[39mimport\u001b[39;00m bootstrap\n\u001b[1;32m <a href='vscode-notebook-cell://ssh-remote%2Bdgx2/home/ylan/workspace/TransMIL-DeepGraft/code/utils/export_metrics.ipynb#X10sdnNjb2RlLXJlbW90ZQ%3D%3D?line=1'>2</a>\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39msklearn\u001b[39;00m\n\u001b[0;32m----> <a href='vscode-notebook-cell://ssh-remote%2Bdgx2/home/ylan/workspace/TransMIL-DeepGraft/code/utils/export_metrics.ipynb#X10sdnNjb2RlLXJlbW90ZQ%3D%3D?line=2'>3</a>\u001b[0m res \u001b[39m=\u001b[39m bootstrap((patient_score\u001b[39m.\u001b[39mcpu()\u001b[39m.\u001b[39mnumpy(), patient_target\u001b[39m.\u001b[39mcpu()\u001b[39m.\u001b[39mnumpy()), sklearn\u001b[39m.\u001b[39mmetrics\u001b[39m.\u001b[39mroc_auc_score, confidence_level\u001b[39m=\u001b[39m\u001b[39m0.95\u001b[39m, paired\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m, vectorized\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m)\n\u001b[1;32m <a href='vscode-notebook-cell://ssh-remote%2Bdgx2/home/ylan/workspace/TransMIL-DeepGraft/code/utils/export_metrics.ipynb#X10sdnNjb2RlLXJlbW90ZQ%3D%3D?line=4'>5</a>\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39m'\u001b[39m\u001b[39mbootstrap AUC: \u001b[39m\u001b[39m'\u001b[39m, res)\n\u001b[1;32m <a href='vscode-notebook-cell://ssh-remote%2Bdgx2/home/ylan/workspace/TransMIL-DeepGraft/code/utils/export_metrics.ipynb#X10sdnNjb2RlLXJlbW90ZQ%3D%3D?line=5'>6</a>\u001b[0m patient_AUC \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mAUROC(patient_score, patient_target\u001b[39m.\u001b[39msqueeze())\n","\u001b[0;31mNameError\u001b[0m: name 'patient_score' is not defined"]}],"source":["from scipy.stats import bootstrap\n","import sklearn\n","res = bootstrap((patient_score.cpu().numpy(), patient_target.cpu().numpy()), sklearn.metrics.roc_auc_score, confidence_level=0.95, paired=True, vectorized=False)\n","\n","print('bootstrap AUC: ', res)\n","patient_AUC = self.AUROC(patient_score, patient_target.squeeze())"]}],"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.16"},"orig_nbformat":4,"vscode":{"interpreter":{"hash":"e036a9c91377bd599a54855c8808043bcb982545d7d4bb9989918e49d09c4e97"}}},"nbformat":4,"nbformat_minor":2} diff --git a/code/utils/export_metrics.py b/code/utils/export_metrics.py new file mode 100644 index 0000000..2017ebf --- /dev/null +++ b/code/utils/export_metrics.py @@ -0,0 +1,191 @@ +# %% +import argparse +from pathlib import Path +import numpy as np +from tqdm import tqdm + +import cv2 +from PIL import Image, ImageFilter +from matplotlib import pyplot as plt +plt.style.use('tableau-colorblind10') +import pandas as pd +import json +import pprint +import seaborn as sns +import torch + +import torchmetrics +from torchmetrics import PrecisionRecallCurve, ROC +from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve, confusion_matrix +from torchmetrics.utilities.compute import _auc_compute_without_check, _auc_compute + + +# %% +'''TransMIL''' +a = 'features' +add_on = '0' + +# task = 'norm_rest' +# model = 'TransMIL' +# version = '804' +# epoch = '30' +# labels = ['Normal'] + + +task = 'rest_rej' +model = 'TransMIL' +version = '63' +epoch = '14' +labels = ['Rejection'] + +# task = 'norm_rej_rest' +# model = 'TransMIL' +# version = '53' +# epoch = '17' +# labels = ['Normal', 'Rejection', 'Rest'] + +'''ViT''' +# a = 'vit' + +# task = 'norm_rest' +# model = 'vit' +# version = '16' +# epoch = '142' +# labels = ['Disease'] + +# task = 'rej_rest' +# model = 'vit' +# version = '1' +# epoch = 'last' +# labels = ['Rest'] + +# task = 'norm_rej_rest' +# model = 'vit' +# version = '0' +# epoch = '226' +# labels = ['Normal', 'Rejection', 'Rest'] + +'''CLAM''' +# task = 'norm_rest' +# model = 'CLAM' +# labels = ['REST'] + +# task = 'rej_rest' +# model = 'CLAM' +# labels = ['REST'] + +# task = 'norm_rej_rest' +# model = 'CLAM' +# labels = ['NORMAL', 'REJECTION', 'REST'] +# labels = ['Normal', 'Rejection', 'Rest'] +# if task == 'norm_rest' or task == 'rej_rest': +# n_classes = 2 +# PRC = torchmetrics.PrecisionRecallCurve(task='binary') +# ROC = torchmetrics.ROC(task='binary') +# else: +# n_classes = 3 +# PRC = torchmetrics.PrecisionRecallCurve(task='multiclass', num_classes = n_classes) +# ROC = torchmetrics.ROC(task='multiclass', num_classes=n_classes) + + + + +# %% +'''Find Directory''' + +home = Path.cwd().parts[1] +root_dir = f'/{home}/ylan/workspace/TransMIL-DeepGraft/logs/DeepGraft/{model}/{task}/_{a}_CrossEntropyLoss/lightning_logs/version_{version}/test_epoch_{epoch}' +print(root_dir) +patient_result_csv_path = Path(root_dir) / 'TEST_RESULT_PATIENT.csv' +# threshold_csv_path = f'{root_dir}/val_thresholds.csv' + +# patient_result_csv_path = Path(f'/{home}/ylan/workspace/HIA/logs/DeepGraft_Lancet/clam_mb/DEEPGRAFT_CLAMMB_TRAINFULL_{task}/RESULTS/TEST_RESULT_PATIENT_BASED_FULL.csv') +# threshold_csv_path = '' + +output_dir = f'/{home}/ylan/workspace/TransMIL-DeepGraft/test/results/{model}/' +Path(output_dir).mkdir(parents=True, exist_ok=True) + +patient_result = pd.read_csv(patient_result_csv_path) +pprint.pprint(patient_result) +probs = torch.from_numpy(np.array(patient_result[labels])) +# probs = probs.squeeze() +# if task == 'rest_rej': + +# probs = torch.transpose(probs, 0,1).squeeze() +target = torch.from_numpy(np.array(patient_result.yTrue)) +if add_on == '0': + target = -1 * (target-1) + +# +# target = torch.stack((fake_target, target), dim=1) +# print(target.shae) +# print(target) +# target = -1 * (target-1) +# print(target) + + + +# %% +from utils import get_roc_curve, get_pr_curve, get_confusion_matrix + +# %% +from utils import get_roc_curve, get_pr_curve, get_confusion_matrix + +print(probs.shape) +print(target.shape) + +stage='test' +comment='patient' +pr_plot = get_pr_curve(probs, target, task=task) +pr_plot.figure.savefig(f'{output_dir}/{task}_{add_on}_pr.png', dpi=400) +pr_plot.figure.savefig(f'{output_dir}/{task}_{add_on}_pr.svg', format='svg') +plt.show() + +pr_plot.figure.clf() + +roc_plot = get_roc_curve(probs, target, task=task) +roc_plot.figure.savefig(f'{output_dir}/{task}_{add_on}_roc.png', dpi=400) +roc_plot.figure.savefig(f'{output_dir}/{task}_{add_on}_roc.svg', format='svg') +plt.show() + +roc_plot.figure.clf() + +# %% +stage = 'test' +comment='patient' + + +cm_plot = get_confusion_matrix(probs, target, task=task, threshold_csv_path = threshold_csv_path) + +# plt.show() +# cm_plot.figure.set(font_scale=18) +cm_plot.savefig(f'{output_dir}/{task}_cm.png', dpi=400) +cm_plot.savefig(f'{output_dir}/{task}_cm.svg', format='svg') + +# plt.savefig(f'{output_dir}/{task}_cm.png', dpi=400) + +cm_plot.clf() + + + + + +# %% +# print((Path(output_dir)/task).stem) +# print(output_dir) +# model = 'vit' +# task = 'norm_rest' +# output_dir = f'/{home}/ylan/workspace/TransMIL-DeepGraft/test/results/{model}/' +# out_dir = Path(output_dir)/task +# for i in Path(out_dir).iterdir(): +# if i.is_file(): +# name = i.name.rsplit('_', 1)[1] +# # print(i) +# # print(i.parents[0]) +# new_name = Path(output_dir) / f'{task}_{name}' +# print(new_name) +# i.rename(new_name) + # print(new_name) + + + diff --git a/code/utils/utils.py b/code/utils/utils.py index f7781e8..fca7597 100644 --- a/code/utils/utils.py +++ b/code/utils/utils.py @@ -11,13 +11,43 @@ from torchmetrics.classification.accuracy import Accuracy from pytorch_lightning import LightningDataModule, seed_everything, Trainer from pytorch_lightning import LightningModule -from pytorch_lightning.loops.base import Loop -from pytorch_lightning.loops.fit_loop import FitLoop +# from pytorch_lightning.loops.base import Loop +# from pytorch_lightning.loops.fit_loop import FitLoop from pytorch_lightning.trainer.states import TrainerFn from pytorch_lightning.callbacks import LearningRateMonitor from typing import Any, Dict, List, Optional, Type import shutil +from matplotlib import pyplot as plt +plt.style.use('tableau-colorblind10') +import pandas as pd +import json +import pprint +import seaborn as sns + +import torchmetrics +from torchmetrics import PrecisionRecallCurve, ROC +from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve, confusion_matrix +from torchmetrics.utilities.compute import _auc_compute_without_check, _auc_compute + +LABEL_MAP = { + # 'bin': {'0': 0, '1': 1, '2': 1, '3': 1, '4': 1, '5': None}, + # 'tcmr_viral': {'0': None, '1': 0, '2': None, '3': None, '4': 1, '5': None}, + # 'no_viral': {'0': 0, '1': 1, '2': 2, '3': 3, '4': None, '5': None}, + 'no_other': {'0': 'Normal', '1': 'TCMR', '2': 'ABMR', '3': 'Mixed', '4': 'Viral'}, + # 'no_stable': {'0': None, '1': 1, '2': 2, '3': 3, '4': None, '5': None}, + # 'all': {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5}, + 'rejections': {'0': 'TCMR', '1': 'ABMR', '2': 'Mixed'}, + 'norm_rest': {'0': 'Normal', '1': 'Disease'}, + 'rej_rest': {'0': 'Rejection', '1': 'Rest'}, + 'rest_rej': {'0': 'Rest', '1': 'Rejection'}, + 'norm_rej_rest': {'0': 'Normal', '1': 'Rejection', '2': 'Rest'}, + +} +COLOR_MAP = ['#377eb8', '#ff7f00', '#4daf4a', + '#f781bf', '#a65628', '#984ea3', + '#999999', '#e41a1c', '#dede00'] + #---->read yaml import yaml @@ -39,34 +69,53 @@ def load_loggers(cfg): #---->TensorBoard - if cfg.General.server != 'test': + if cfg.General.server == 'train': + # print(cfg.log_path) + if cfg.fine_tune: + cfg.log_path = Path(cfg.log_path) + print('cfg.log_path: ', cfg.log_path) + + tb_logger = pl_loggers.TensorBoardLogger(cfg.log_path, + version = cfg.version, + sub_dir = f'ft_epoch_{cfg.epoch}', + log_graph = True, default_hp_metric = False) - tb_logger = pl_loggers.TensorBoardLogger(cfg.log_path, - # version = f'fold{cfg.Data.fold}' - log_graph = True, default_hp_metric = False) + else: + tb_logger = pl_loggers.TensorBoardLogger(cfg.log_path, + # version = f'fold{cfg.Data.fold}' + log_graph = True, default_hp_metric = False) # print(tb_logger.version) version = tb_logger.version #---->CSV csv_logger = pl_loggers.CSVLogger(cfg.log_path, version = version ) # version = f'fold{cfg.Data.fold}', # print(csv_logger.version) + # wandb_logger = pl_loggers.WandbLogger(project=f'{cfg.Model.name}_{cfg.task}', name=f'{cfg.log_name}', save_dir=cfg.log_path) else: + if cfg.from_finetune: + prefix = 'test_ft_epoch' + else: + prefix = 'test_epoch' cfg.log_path = Path(cfg.log_path) print('cfg.log_path: ', cfg.log_path) tb_logger = pl_loggers.TensorBoardLogger(cfg.log_path, version = cfg.version, - sub_dir = f'test_e{cfg.epoch}', + sub_dir = f'{prefix}_{cfg.epoch}', log_graph = True, default_hp_metric = False) #---->CSV - csv_logger = pl_loggers.CSVLogger(cfg.log_path, - version = cfg.version, ) - + # version = tb_logger.version + csv_logger_path = Path(cfg.log_path) / 'lightning_logs' / f'version_{cfg.version}' / f'test_epoch_{cfg.epoch}' + csv_logger = pl_loggers.CSVLogger(csv_logger_path, + version = cfg.version) + # wandb_logger = pl_loggers.WandbLogger(project=f'{cfg.task}_{cfg.log_name}') print(f'---->Log dir: {cfg.log_path}') # return tb_logger return [tb_logger, csv_logger] + # return wandb_logger + # return [tb_logger, csv_logger, wandb_logger] #---->load Callback @@ -104,33 +153,60 @@ def load_callbacks(cfg, save_path): ) Mycallbacks.append(progress_bar) - if cfg.General.server == 'train' : + if cfg.General.server == 'train': # save_path = Path(cfg.log_path) / 'lightning_logs' / f'version_{cfg.resume_version}' / last.ckpt - Mycallbacks.append(ModelCheckpoint(monitor = 'val_loss', - dirpath = str(output_path), - filename = '{epoch:02d}-{val_loss:.4f}-{val_auc: .4f}-{val_patient_auc:.4f}', - verbose = True, - save_last = True, - save_top_k = 2, - mode = 'min', - save_weights_only = True)) - Mycallbacks.append(ModelCheckpoint(monitor = 'val_auc', - dirpath = str(output_path), - filename = '{epoch:02d}-{val_loss:.4f}-{val_auc:.4f}-{val_patient_auc: .4f}', - verbose = True, - save_last = True, - save_top_k = 2, - mode = 'max', - save_weights_only = True)) - Mycallbacks.append(ModelCheckpoint(monitor = 'val_patient_auc', - dirpath = str(output_path), - filename = '{epoch:02d}-{val_loss:.4f}-{val_auc:.4f}-{val_patient_auc:.4f}', - verbose = True, - save_last = True, - save_top_k = 2, - mode = 'max', - save_weights_only = True)) - + if cfg.fine_tune: + Mycallbacks.append(ModelCheckpoint(monitor = 'val_loss', + dirpath = str(output_path), + + filename = 'ft_{epoch:02d}-{val_loss:.4f}-{val_auc: .4f}-{val_patient_auc:.4f}', + verbose = True, + save_last = True, + save_top_k = 1, + mode = 'min', + save_weights_only = True)) + # Mycallbacks.append(ModelCheckpoint(monitor = 'val_auc', + # dirpath = str(output_path), + # filename = 'ft_{epoch:02d}-{val_loss:.4f}-{val_auc:.4f}-{val_patient_auc: .4f}', + # verbose = True, + # save_last = True, + # save_top_k = 1, + # mode = 'max', + # save_weights_only = True)) + # Mycallbacks.append(ModelCheckpoint(monitor = 'val_patient_auc', + # dirpath = str(output_path), + # filename = 'ft_{epoch:02d}-{val_loss:.4f}-{val_auc:.4f}-{val_patient_auc:.4f}', + # verbose = True, + # save_last = True, + # save_top_k = 1, + # mode = 'max', + # save_weights_only = True)) + else: + Mycallbacks.append(ModelCheckpoint(monitor = 'val_loss', + dirpath = str(output_path), + filename = '{epoch:02d}-{val_loss:.4f}-{val_auc: .4f}-{val_patient_auc:.4f}', + verbose = True, + save_last = True, + save_top_k = 3, + mode = 'min', + save_weights_only = True)) + Mycallbacks.append(ModelCheckpoint(monitor = 'val_accuracy', + dirpath = str(output_path), + filename = '{epoch:02d}-{val_loss:.4f}-{val_accuracy:.4f}-{val_patient_auc: .4f}', + verbose = True, + save_last = True, + save_top_k = 3, + mode = 'max', + save_weights_only = True)) + Mycallbacks.append(ModelCheckpoint(monitor = 'val_patient_auc', + dirpath = str(output_path), + filename = '{epoch:02d}-{val_loss:.4f}-{val_auc:.4f}-{val_patient_auc:.4f}', + verbose = True, + save_last = True, + save_top_k = 3, + mode = 'max', + save_weights_only = True)) + swa = StochasticWeightAveraging(swa_lrs=1e-2) Mycallbacks.append(swa) @@ -150,17 +226,241 @@ def cross_entropy_torch(x, y): return loss #-----> convert labels for task -label_map = { - 'bin': {'0': 0, '1': 1, '2': 1, '3': 1, '4': 1, '5': None}, - 'tcmr_viral': {'0': None, '1': 0, '2': None, '3': None, '4': 1, '5': None}, - 'no_viral': {'0': 0, '1': 1, '2': 2, '3': 3, '4': None, '5': None}, - 'no_other': {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': None}, - 'no_stable': {'0': None, '1': 1, '2': 2, '3': 3, '4': None, '5': None}, - 'all': {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5}, -} + def convert_labels_for_task(task, label): - return label_map[task][label] + return LABEL_MAP[task][label] + + +def get_optimal_operating_point(fpr, tpr, thresholds): + ''' + Returns: + optimal_fpr [Tensor] + optimal_tpr [Tensor] + optimal_threshold [Float] + ''' + + youden_j = tpr - fpr + optimal_idx = torch.argmax(youden_j) + # print(youden_j[optimal_idx]) + optimal_threshold = thresholds[optimal_idx].item() + # print(optimal_threshold) + optimal_tpr = tpr[optimal_idx] + optimal_fpr = fpr[optimal_idx] + + return optimal_fpr, optimal_tpr, optimal_threshold + + + +def get_roc_curve(probs, target, task): + + task_label_map = LABEL_MAP[task] + + if task == 'norm_rest' or task == 'rej_rest' or task == 'rest_rej': + + n_classes = 2 + # PRC = torchmetrics.PrecisionRecallCurve(task='binary') + ROC = torchmetrics.ROC(task='binary') + else: + n_classes = 3 + # PRC = torchmetrics.PrecisionRecallCurve(task='multiclass', num_classes = n_classes) + ROC = torchmetrics.ROC(task='multiclass', num_classes=n_classes) + + fpr_list, tpr_list, thresholds = ROC(probs, target) + + # self.AUROC(out_probs, target.squeeze()) + + fig, ax = plt.subplots(figsize=(6,6)) + + if n_classes > 2: + auroc_score = multiclass_auroc(probs, target, num_classes=n_classes, average=None) + for i in range(len(fpr_list)): + + class_label = task_label_map[str(i)] + color = COLOR_MAP[i] + + fpr = fpr_list[i].cpu().numpy() + tpr = tpr_list[i].cpu().numpy() + # ax.plot(fpr, tpr, label=f'class_{i}, AUROC={auroc_score[i]}') + df = pd.DataFrame(data = {'fpr': fpr, 'tpr': tpr}) + line_plot = sns.lineplot(data=df, x='fpr', y='tpr', label=f'{class_label}={auroc_score[i]:.3f}', legend='full', color=color) + + else: + auroc_score = binary_auroc(probs, target) + color = COLOR_MAP[0] + + optimal_fpr, optimal_tpr, optimal_threshold = get_optimal_operating_point(fpr_list, tpr_list, thresholds) + fpr = fpr_list.cpu().numpy() + tpr = tpr_list.cpu().numpy() + optimal_fpr = optimal_fpr.cpu().numpy() + optimal_tpr = optimal_tpr.cpu().numpy() + + df = pd.DataFrame(data = {'fpr': fpr, 'tpr': tpr}) + line_plot = sns.lineplot(data=df, x='fpr', y='tpr', label=f'{auroc_score:.3f}', legend='full', color=color) #AUROC + # ax.plot([0, 1], [optimal_tpr, optimal_tpr], linestyle='--', color='black', label=f'OOP={optimal_threshold:.3f}') + # ax.plot([optimal_fpr, optimal_fpr], [0, 1], linestyle='--', color='black') + ax.plot([0,1], [0,1], linestyle='--', color='red') + ax.set_xlim([0,1]) + ax.set_ylim([0,1]) + ax.set_xlabel('False positive rate (1-specificity)', fontsize=18) + ax.set_ylabel('True positive rate (sensitivity)', fontsize=18) + # ax.set_title('ROC curve') + ax.legend(loc='lower right', fontsize=15) + + return line_plot + +def get_pr_curve(probs, target, task): + + if task == 'norm_rest' or task == 'rej_rest' or task == 'rest_rej': + n_classes = 2 + PRC = torchmetrics.PrecisionRecallCurve(task='binary') + # ROC = torchmetrics.ROC(task='binary') + else: + n_classes = 3 + PRC = torchmetrics.PrecisionRecallCurve(task='multiclass', num_classes = n_classes) + # ROC = torchmetrics.ROC(task='multiclass', num_classes=n_classes) + + + fig, ax = plt.subplots(figsize=(6,6)) + + + + if n_classes > 2: + + precision, recall, thresholds = multiclass_precision_recall_curve(probs, target, num_classes=n_classes) + task_label_map = LABEL_MAP[task] + + for i in range(len(precision)): + + class_label = task_label_map[str(i)] + color = COLOR_MAP[i] + + re = recall[i] + pr = precision[i] + + partial_auc = _auc_compute(re, pr, 1.0) + df = pd.DataFrame(data = {'re': re.cpu().numpy(), 'pr': pr.cpu().numpy()}) + line_plot = sns.lineplot(data=df, x='re', y='pr', label=f'{class_label}={partial_auc:.3f}', legend='full', color=color) + + baseline = len(target[target==i]) / len(target) + ax.plot([0,1],[baseline, baseline], linestyle='--', label=f'Baseline={baseline:.3f}', color=color) + + else: + # print(fpr_list) + color = COLOR_MAP[0] + precision, recall, thresholds = binary_precision_recall_curve(probs, target) + baseline = len(target[target==1]) / len(target) + + pr = precision + re = recall + partial_auc = _auc_compute(re, pr, 1.0) + # ax.plot(re, pr) + df = pd.DataFrame(data = {'re': re.cpu().numpy(), 'pr': pr.cpu().numpy()}) + line_plot = sns.lineplot(data=df, x='re', y='pr', label=f'{partial_auc:.3f}', legend='full', color=color) + + + ax.plot([0,1], [baseline, baseline], linestyle='--', label=f'Baseline={baseline:.3f}', color=color) + + ax.set_xlim([0,1]) + ax.set_ylim([0,1]) + ax.set_xlabel('Recall', fontsize=18) + ax.set_ylabel('Precision', fontsize=18) + # ax.set_title('PR curve') + ax.legend(loc='lower right', fontsize=15) + + return line_plot + +def get_confusion_matrix(probs, target, task, threshold_csv_path, comment='patient', stage='test'): # threshold + + + if task == 'norm_rest' or task == 'rej_rest' or task == 'rest_rej': + + n_classes = 2 + ROC = torchmetrics.ROC(task='binary') + else: + n_classes = 3 + ROC = torchmetrics.ROC(task='multiclass', num_classes=n_classes) + + + # preds = torch.argmax(probs, dim=1) + # if self.n_classes <= 2: + # probs = probs[:,1] + + # read threshold file + # threshold_csv_path = f'{self.loggers[0].log_dir}/val_thresholds.csv' + # if not Path(threshold_csv_path).is_file(): + # # thresh_dict = {'index': ['train', 'val'], 'columns': , 'data': [[0.5, 0.5], [0.5, 0.5]]} + # thresh_df = pd.DataFrame({'slide': [0.5], 'patient': [0.5]}) + # thresh_df.to_csv(threshold_csv_path, index=False) + + # thresh_df = pd.read_csv(threshold_csv_path) + # if stage != 'test': + # if n_classes <= 2: + # fpr_list, tpr_list, thresholds = ROC(probs, target) + # optimal_fpr, optimal_tpr, optimal_threshold = get_optimal_operating_point(fpr_list, tpr_list, thresholds) + # # print(f'Optimal Threshold {stage} {comment}: ', optimal_threshold) + # thresh_df.at[0, comment] = optimal_threshold + # thresh_df.to_csv(threshold_csv_path, index=False) + # else: + # optimal_threshold = 0.5 + # elif stage == 'test': + + if n_classes == 2: + fpr_list, tpr_list, thresholds = ROC(probs, target) + optimal_fpr, optimal_tpr, optimal_threshold = get_optimal_operating_point(fpr_list, tpr_list, thresholds) + else: + optimal_threshold = 0.5 + # optimal_threshold = thresh_df.at[0, comment] + + print(f'Optimal Threshold {stage} {comment}: ', optimal_threshold) + # optimal_threshold = 0.5 # manually change to val_optimal_threshold for testing + + # print(confmat) + # confmat = self.confusion_matrix(preds, target, threshold=optimal_threshold) + if n_classes == 2: + confmat = confusion_matrix(probs, target, task='binary', threshold=optimal_threshold) + elif n_classes > 2: + confmat = confusion_matrix(probs, target, task='multiclass', num_classes=n_classes) + + cm_labels = LABEL_MAP[task].values() + + # fig, ax = plt.subplots() + figsize=plt.rcParams.get('figure.figsize') + plt.figure(figsize=figsize) + + # df_cm = pd.DataFrame(confmat.cpu().numpy(), index=range(self.n_classes), columns=range(self.n_classes)) + df_cm = pd.DataFrame(confmat.cpu().numpy(), index=cm_labels, columns=cm_labels) + # fig_ = sns.heatmap(df_cm, annot=True, fmt='d', cmap='Spectral').get_figure() + # sns.set(font_scale=1.5) + sns.heatmap(df_cm, annot=True, fmt='d', cmap='Blues', cbar=False, annot_kws={'fontsize': 'x-large', 'multialignment':'center'}) + + plt.yticks(va='center') + plt.ylabel('True label') + plt.xlabel('Predicted label') + + + + + + # cm_plot = + # if stage == 'train': + # self.loggers[0].experiment.add_figure(f'{stage}/Confusion matrix', cm_plot.figure, self.current_epoch) + # if len(self.loggers) > 2: + # self.loggers[2].log_image(key=f'{stage}/Confusion matrix', images=[cm_plot.figure], caption=[self.current_epoch]) + # # self.loggers[0].experiment.add_figure(f'{stage}/Confusion matrix', cm_plot.figure, self.current_epoch) + # else: + # ax.set_title(f'{stage}_{comment}') + # if comment: + # stage += f'_{comment}' + # # fig_.savefig(f'{self.loggers[0].log_dir}/cm_{stage}.png', dpi=400) + # cm_plot.figure.savefig(f'{self.loggers[0].log_dir}/{stage}_cm.png', dpi=400) + + # # fig.clf() + # cm_plot.figure.clf() + return plt + +if __name__ == '__main__': + print(LABEL_MAP) \ No newline at end of file diff --git a/code/visualize_classic.py b/code/visualize_classic.py new file mode 100644 index 0000000..ccbefc7 --- /dev/null +++ b/code/visualize_classic.py @@ -0,0 +1,382 @@ +import argparse +from pathlib import Path +import numpy as np +import glob +import re + +from sklearn.model_selection import KFold +from scipy.interpolate import griddata +from scipy.ndimage import gaussian_filter +from models.model_interface import ModelInterface +import models.vision_transformer as vits +from utils.utils import * + +# pytorch_lightning +import pytorch_lightning as pl +from pytorch_lightning import Trainer +import torch +import torch.nn as nn +from torch.cuda.amp import autocast + +from pytorch_grad_cam import GradCAM, EigenGradCAM, EigenCAM, XGradCAM, ScoreCAM, GradCAMPlusPlus +from pytorch_grad_cam.utils.image import show_cam_on_image +from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget + +import cv2 +from PIL import Image, ImageFilter +from matplotlib import pyplot as plt +import pandas as pd +import json +import pprint + +from models import TransMIL +# from datasets.zarr_feature_dataloader_simple import ZarrFeatureBagLoader +from datasets.feature_dataloader import FeatureBagLoader +from datasets.jpg_dataloader import JPGMILDataloader +from torch.utils.data import random_split, DataLoader +import time +from tqdm import tqdm +import torchmetrics +import models.ResNet as ResNet +import torchvision.models as models +import timm + +from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve + +def make_parse(): + parser = argparse.ArgumentParser() + parser.add_argument('--stage', default='test', type=str) + parser.add_argument('--config', default='../DeepGraft/TransMIL.yaml',type=str) + parser.add_argument('--version', default=0,type=int) + parser.add_argument('--epoch', default='0',type=str) + parser.add_argument('--gpus', default = 0, type=int) + parser.add_argument('--loss', default = 'CrossEntropyLoss', type=str) + parser.add_argument('--fold', default = 0) + parser.add_argument('--bag_size', default = 10000, type=int) + parser.add_argument('--total_classes', default = 2, type=int) + + + args = parser.parse_args() + return args + +def check_home(cfg): + # replace home directory + + home = Path.cwd().parts[1] + + x = cfg.General.log_path + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.General.log_path = '/' + str(new_path) + + x = cfg.Data.data_dir + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.data_dir = '/' + str(new_path) + + x = cfg.Data.label_file + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.label_file = '/' + str(new_path) + + return cfg + + + +class Visualize(): + + def __init__(self, checkpoint_path, task, classic=False): + super().__init__() + + home = Path.cwd().parts[1] + + self.jpg_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides/TEST' + self.roi_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides/ROI' + self.save_path = Path(f'/{home}/ylan/workspace/TransMIL-DeepGraft/test/classic_model/') + self.output_path = self.save_path + # output_path = save_path / str(target.item()) + + + checkpoint = torch.load(checkpoint_path) + self.hparams = checkpoint['hyper_parameters'] + self.n_classes = self.hparams['model']['n_classes'] + self.model_name = self.hparams['model']['name'] + self.in_features = self.hparams['model']['in_features'] + + self.output_path = self.save_path / self.model_name / task + self.label_path = self.hparams['data']['label_file'] + self.data_root = self.hparams['data']['data_dir'] + + self.model = None + self.cam = None + self.topk_dict = {} + self.device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + + self._load_model_from_checkpoint(checkpoint) + self._get_cam_object(self.model_name) + + + def _load_model_from_checkpoint(self, checkpoint): + + if self.model_name == 'resnet18': + self.model = models.resnet18(weights='IMAGENET1K_V1') + self.model.fc = nn.Sequential(nn.Linear(self.model.fc.in_features, self.n_classes)) + elif self.model_name == 'resnet50': + self.model = models.resnet50(weights='IMAGENET1K_V1') + self.model.fc = nn.Sequential(nn.Linear(self.model.fc.in_features, self.n_classes),) + elif self.model_name == 'vit': + home = Path.cwd().parts[1] + self.model = timm.create_model('vit_base_patch16_224', pretrained=True, num_classes=self.n_classes) + # model = timm.create_model(“vit_base_patch16_224”, pretrained=True) + outputs_attrs = self.n_classes + num_inputs = self.model.head.in_features + last_layer = nn.Linear(num_inputs, outputs_attrs) + self.model.head = last_layer + + model_weights = checkpoint['state_dict'] + + for key in list(model_weights): + model_weights[key.replace('model.', '')] = model_weights.pop(key) + + self.model.load_state_dict(model_weights) + # self.model.eval() + + + + # def _reshape_transform(self, tensor): + # H = tensor.shape[1] + # _H, _W = int(np.ceil(np.sqrt(H))), int(np.ceil(np.sqrt(H))) + # add_length = _H * _W - H + # tensor = torch.cat([tensor, tensor[:,:add_length,:]],dim = 1) + # result = tensor[:, :, :].reshape(tensor.size(0), _H, _W, tensor.size(2)) + # result = result.transpose(2,3).transpose(1,2) + # return result + def _reshape_transform(self, tensor, height=14, width=14): + result = tensor[:, 1 : , :].reshape(tensor.size(0), + height, width, tensor.size(2)) + + # Bring the channels to the first dimension, + # like in CNNs. + result = result.transpose(2, 3).transpose(1, 2) + return result + + def _get_position_dict(self, batch_coords): + coords = [] + position_dict = {} + batch_coords = batch_coords.squeeze(0) + for i in range(batch_coords.shape[0]): + c = batch_coords[i, :] + x = c[0] + y = c[1] + coords.append((int(x),int(y))) + + for i, (x,y) in enumerate(coords): + if x not in position_dict.keys(): + position_dict[x] = [(y, i)] + else: position_dict[x].append((y, i)) + return position_dict, coords + # return coords + + def _get_cam_object(self, model_name): + if model_name == 'resnet18' or model_name == 'resnet50': + target_layers = [self.model.layer4[-1]] + self.cam = GradCAM(model=self.model, target_layers=target_layers, use_cuda=True) + elif model_name == 'vit': + target_layers = [self.model.blocks[-1].norm1] + self.cam = GradCAM(model=self.model, target_layers=target_layers, use_cuda=True, reshape_transform=self._reshape_transform) + + def _get_topk(self): + + for n in range(self.n_classes): + tpk_csv_path = Path(cfg.log_path) / f'test_epoch_{cfg.epoch}' / f'test_c{n}_top_patients.csv' + tpk_df = pd.read_csv(tpk_csv_path) + self.topk_dict[str(n)] = {'patients': list(tpk_df.head(5)['Patient']), 'labels': [n] * len(list(tpk_df.head(5)['Patient']))} + + def _save_attention_map(self, wsi_name, batch_coords, grayscale_cam, input_h=224): + + position_dict, coords = self._get_position_dict(batch_coords) + x_max = max([x[0] for x in coords]) + y_max = max([x[1] for x in coords]) + wsi = torch.ones([(y_max+1)*input_h, (x_max+1)*input_h, 3]) + + roi = torch.zeros([(y_max+1)*input_h, (x_max+1)*input_h]) + mask = torch.zeros(roi.shape) + for i in range(x_max+1): + if i in position_dict.keys(): + for j in position_dict[i]: + y_coord = int(j[0]) + x_coord = int(i) + co = coords[j[1]] + tile_path = Path(self.jpg_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(tile_path)).astype(np.uint8) + img = img / 255.0 + img = torch.from_numpy(img) + wsi[y_coord*input_h:(y_coord+1)*input_h, x_coord*input_h:(x_coord+1)*input_h, :] = img + + roi_path = Path(self.roi_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(roi_path)).astype(np.uint8) + img = img / 255.0 + img = torch.from_numpy(img) + + roi[y_coord*input_h:(y_coord+1)*input_h, x_coord*input_h:(x_coord+1)*input_h] = img + W, H = wsi.shape[0], wsi.shape[1] + #---------------------------------------------- + # Get mask from gradcam + #---------------------------------------------- + + # attention_map = (attention_map-attention_map.min()) / (attention_map.max() - attention_map.min()) + print(W, H) + if self.model_name == 'vit': + # attention_map = torch.from_numpy(grayscale_cam) + print(grayscale_cam.shape) + attention_map = torch.from_numpy(grayscale_cam[0, :, :].squeeze()) + input_h = 44 + mask = torch.zeros(( int(W/input_h), int(H/input_h))) + print(mask.shape) + print(attention_map.shape) + for i, (x,y) in enumerate(coords): + mask[y][x] = attention_map[i] + mask = mask.unsqueeze(0).unsqueeze(0) + + mask = F.interpolate(mask, (W,H), mode='bilinear') + mask = mask.squeeze(0).permute(1,2,0) + + mask = (mask - mask.min())/(mask.max()-mask.min()) + mask = mask.numpy() + # wsi_cam = show_cam_on_image(wsi.numpy(), mask) + # wsi_cam = ((wsi_cam-wsi_cam.min())/(wsi_cam.max()-wsi_cam.min()) * 255.0).astype(np.uint8) + + # size = (20000, 20000) + + # img = Image.fromarray(wsi_cam) + # img = img.convert('RGB') + # img.thumbnail(size, Image.Resampling.LANCZOS) + else: + attention_map = torch.from_numpy(grayscale_cam) + mask = torch.zeros(roi.shape) + for i, (x,y) in enumerate(coords): + # print(attention_map[i, :, :].shape) + mask[y*input_h:(y+1)*input_h, x*input_h:(x+1)*input_h] = attention_map[i] + # if attention_map[i].mean() != 0: + # print(i) + mask = mask.unsqueeze(0).unsqueeze(0) + + # mask = F.interpolate(mask, (W,H), mode='bilinear') + mask = mask.squeeze(0).permute(1,2,0) + + mask = (mask - mask.min())/(mask.max()-mask.min()) + mask = mask.numpy() + # mask = gaussian_filter(mask, sigma=15) + + wsi_cam = show_cam_on_image(wsi.numpy(), mask, use_rgb=True, image_weight=0.6) + + #---------------------------------------------- + # Use ROI to filter image + #---------------------------------------------- + # roi_idx = (roi==0) + # wsi_cam[roi_idx] = 255 + + size = (30000, 30000) + + print('Save GradCAM overlay.') + img = Image.fromarray(wsi_cam) + img = img.convert('RGB') + img.save(f'{self.output_path}/{wsi_name}_gradcam.jpg') + + + def run(self, target_label): + + patient_slide_dict_path = f'/{home}/ylan/data/DeepGraft/training_tables/patient_slide_dict.json' + + self._get_topk() + + + with open(patient_slide_dict_path, 'r') as f: + patient_slide_dict = json.load(f) + slides = [] + for p in self.topk_dict[str(target_label)]['patients']: + slides += patient_slide_dict[p] + self.output_path = self.output_path / str(target_label) + self.output_path.mkdir(parents=True, exist_ok=True) + + # print(slides) + + test_dataset = JPGMILDataloader(file_path=self.data_root, label_path=self.label_path, mode='test', cache=False, n_classes=self.n_classes, model=self.model_name, slides=slides) + dl = DataLoader(test_dataset, batch_size=1, num_workers=4, pin_memory=True) + + for item in tqdm(dl): + + bag, label, (name, batch_coords, patient) = item + label = torch.Tensor(label) + # idx = top_patients.index(patient[0]) + + slide_name = name[0] + # print(slide_name) + + bag = bag.to(self.device).squeeze(0) + # for i in bag.shape[1]: + + # with torch.cuda.amp.autocast(): + # features = self.feature_model(bag.squeeze()) + # instance_count = bag.size(0) + # bag = bag.detach() + cam_target = [ClassifierOutputTarget(target_label)] + self.cam.batch_size = bag.size(0) + grayscale_cam = self.cam(input_tensor=bag.squeeze(0), targets=cam_target) # + # print(grayscale_cam.max()) + # print(target_label) + self._save_attention_map(slide_name, batch_coords, grayscale_cam) + + # for t in test_dataset: + + +if __name__ == '__main__': + + # device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + + args = make_parse() + cfg = read_yaml(args.config) + + #---->update + cfg.config = args.config + cfg.General.gpus = [args.gpus] + cfg.General.server = args.stage + cfg.Data.fold = args.fold + cfg.Loss.base_loss = args.loss + cfg.Data.bag_size = args.bag_size + cfg.version = args.version + cfg.epoch = args.epoch + + cfg = check_home(cfg) + + config_path = '/'.join(Path(cfg.config).parts[1:]) + log_path = Path(cfg.General.log_path) / str(Path(config_path).parent) + + Path(cfg.General.log_path).mkdir(exist_ok=True, parents=True) + log_name = f'_{cfg.Model.backbone}' + f'_{cfg.Loss.base_loss}' + task = '_'.join(Path(cfg.config).name[:-5].split('_')[2:]) + # task = Path(cfg.config).name[:-5].split('_')[2:][0] + cfg.task = task + cfg.log_path = log_path / f'{cfg.Model.name}' / task / log_name / 'lightning_logs' / f'version_{cfg.version}' + + home = Path.cwd().parts[1] + + ckpt_pth = Path(cfg.log_path) / 'checkpoints' + model_paths = list(ckpt_pth.glob('*.ckpt')) + + if cfg.epoch == 'last': + epoch = 'last' + # model_paths = [str(model_path) for model_path in model_paths if f'last' in str(model_path)] + + elif int(cfg.epoch) < 10: + epoch = f'epoch=0{cfg.epoch}' + else: + epoch = f'epoch={cfg.epoch}' + model_paths = [str(model_path) for model_path in model_paths if epoch in str(model_path)] + # print(model_paths) + # for i in range(args.total_classes): + + target_label = 1 + + visualizer = Visualize(checkpoint_path=model_paths[0], task=cfg.task) + visualizer.run(target_label) diff --git a/code/visualize_dff.py b/code/visualize_dff.py new file mode 100644 index 0000000..8740e39 --- /dev/null +++ b/code/visualize_dff.py @@ -0,0 +1,521 @@ +import argparse +from pathlib import Path +import numpy as np +import glob +import re + +from sklearn.model_selection import KFold +from scipy.interpolate import griddata +from scipy.ndimage import gaussian_filter +from models.model_interface import ModelInterface +import models.vision_transformer as vits +from utils.utils import * + +# pytorch_lightning +import pytorch_lightning as pl +from pytorch_lightning import Trainer +import torch +import torch.nn as nn +from torch.cuda.amp import autocast + +from pytorch_grad_cam.utils.image import show_factorization_on_image +from pytorch_grad_cam import GradCAM, EigenGradCAM, EigenCAM, XGradCAM, ScoreCAM, GradCAMPlusPlus, HiResCAM, DeepFeatureFactorization +from pytorch_grad_cam.utils.image import show_cam_on_image, preprocess_image, deprocess_image +from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget + +import cv2 +from PIL import Image, ImageFilter +from matplotlib import pyplot as plt +import pandas as pd +import json +import pprint + +from models import TransMIL +# from datasets.zarr_feature_dataloader_simple import ZarrFeatureBagLoader +from datasets.feature_dataloader import FeatureBagLoader +from datasets.jpg_dataloader import JPGMILDataloader +from torch.utils.data import random_split, DataLoader +import time +from tqdm import tqdm +import torchmetrics +import models.ResNet as ResNet + +from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve + + + +def check_home(cfg): + # replace home directory + + home = Path.cwd().parts[1] + + x = cfg.General.log_path + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.General.log_path = '/' + str(new_path) + + x = cfg.Data.data_dir + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.data_dir = '/' + str(new_path) + + x = cfg.Data.label_file + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.label_file = '/' + str(new_path) + + return cfg + + + +class Visualize(): + + def __init__(self, checkpoint_path, task): + super().__init__() + + home = Path.cwd().parts[1] + + self.jpg_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides_extended/BLOCKS' + self.roi_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides_extended/ROI' + self.save_path = Path(f'/{home}/ylan/workspace/TransMIL-DeepGraft/test/mil_model_features/') + + + self.checkpoint = torch.load(checkpoint_path) + self.hparams = self.checkpoint['hyper_parameters'] + self.n_classes = self.hparams['model']['n_classes'] + self.model_name = self.hparams['model']['name'] + self.in_features = self.hparams['model']['in_features'] + + self.output_path = self.save_path / self.model_name / task + self.label_path = self.hparams['data']['label_file'] + # print(Path(self.label_path).parts[3]) + if Path(self.label_path).parts[3] != 'data': + new_path = Path('/' + '/'.join(Path(self.label_path).parts[1:3])) / 'data' / Path('/'.join(Path(self.label_path).parts[3:])) + a, b = str(new_path).split('.') + # new_path = a + '_ext.' + b + self.label_path = new_path + # else: self.label_path = + # print(Path(new_path)) + # Path(home).joinpath(*Path(x).parts[2:]) + # cfg.General.log_path = '/' + str(new_path) + + + # Add '_extended' to label file + a, b = str(self.label_path).split('.') + + + self.label_path = a + '_ext.' + b + print(self.label_path) + # self.label_path = '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_norm_rej_rest_ext.json' + + # self.label_path = new_path + self.data_root = self.hparams['data']['data_dir'] + + self.mil_model = None + self.feat_model = None + self.cam = None + self.feature_cam = None + self.topk_dict = {} + self.device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + + # self._load_model_from_checkpoint(checkpoint) + # self._load_feature_model() + + + + def _load_model_from_checkpoint(self, checkpoint): + + if self.model_name == 'TransMIL': + mil_model = TransMIL(n_classes=self.n_classes, in_features=self.in_features) + + model_weights = checkpoint['state_dict'] + + for key in list(model_weights): + model_weights[key.replace('model.', '')] = model_weights.pop(key) + + mil_model.load_state_dict(model_weights) + return mil_model + # self.mil_model = mil_model + + def _load_feature_model(self, model_name='RetCCL'): + + if model_name == 'RetCCL': + feature_model = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) + feature_model.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) + feature_model.fc = torch.nn.Identity() + + feature_model.to(self.device) + feature_model.eval() + + return feature_model + # self.feature_model = feature_model + + def _reshape_transform(self, tensor): + H = tensor.shape[1] + _H, _W = int(np.ceil(np.sqrt(H))), int(np.ceil(np.sqrt(H))) + add_length = _H * _W - H + tensor = torch.cat([tensor, tensor[:,:add_length,:]],dim = 1) + result = tensor[:, :, :].reshape(tensor.size(0), _H, _W, tensor.size(2)) + result = result.transpose(2,3).transpose(1,2) + return result + + def _get_position_dict(self, batch_coords): + coords = [] + position_dict = {} + batch_coords = batch_coords.squeeze(0) + for i in range(batch_coords.shape[0]): + c = batch_coords[i, :] + x = c[0] + y = c[1] + coords.append((int(x),int(y))) + + + + for i, (x,y) in enumerate(coords): + if x not in position_dict.keys(): + position_dict[x] = [(y, i)] + else: position_dict[x].append((y, i)) + return position_dict, coords + # return coords + + def _get_cam_object(self, model_name, model): + if model_name == 'TransMIL': + target_layers = [model.norm] + self.cam = GradCAM(model=model, target_layers = target_layers, use_cuda=True, reshape_transform=self._reshape_transform) + else: + target_layers = [model[0].layer4[-1]] + self.feature_cam = GradCAM(model=model, target_layers=target_layers, use_cuda=True) + + def _get_topk(self): + + for n in range(self.n_classes): + tpk_csv_path = Path(cfg.log_path) / f'test_epoch_{cfg.epoch}' / f'test_c{n}_top_patients.csv' + tpk_df = pd.read_csv(tpk_csv_path) + self.topk_dict[str(n)] = {'patients': list(tpk_df.head(5)['Patient']), 'labels': [n] * len(list(tpk_df.head(5)['Patient']))} + + + def assemble(self, wsi_name, batch_coords, grayscale_cam, mil_grayscale_cam, input_h=224): + + position_dict, coords = self._get_position_dict(batch_coords) + x_max = max([x[0] for x in coords]) + y_max = max([x[1] for x in coords]) + + mean_cam = torch.mean(mil_grayscale_cam, dim=2) + # print(mean_cam.shape) + _, topk_indices = torch.topk(mean_cam, 20, dim=1) + batch_coords = torch.index_select(batch_coords.squeeze(), 0, topk_indices[0]) + grayscale_cam = torch.index_select(grayscale_cam.squeeze(), 0, topk_indices[0]) + + feature_cam = torch.zeros([(y_max+1)*224, (x_max+1)*224]) + # print('batch_coords:', batch_coords.shape) + # print(coords.shape) + for i,( c, img) in enumerate(zip(batch_coords.squeeze(0), grayscale_cam)): + c = c.squeeze() + x = c[0].item() + y = c[1].item() + # print(x, y) + + # print(img.shape) + # if i in topk_indices: + feature_cam[y*224:y*224+224, x*224:x*224+224] = img + feature_cam = (feature_cam - feature_cam.min())/(feature_cam.max()-feature_cam.min()) + wsi = torch.ones([(y_max+1)*224, (x_max+1)*224, 3]) + roi = np.zeros([(y_max+1)*224, (x_max+1)*224]) + for i in range(x_max+1): + if i in position_dict.keys(): + for j in position_dict[i]: + y_coord = int(j[0]) + x_coord = int(i) + co = coords[j[1]] + tile_path = Path(self.jpg_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(tile_path)).astype(np.uint8) + img = img / 255.0 + img = torch.from_numpy(img) + wsi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224, :] = img + + roi_path = Path(self.roi_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(roi_path)).astype(np.uint8) + img = img / 255.0 + # img = torch.from_numpy(img) + roi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224] = img + W, H = wsi.shape[0], wsi.shape[1] + + + + # mil_attention_map = mil_grayscale_cam[:, :, 1].squeeze() + # mil_attention_map = (mil_attention_map-mil_attention_map.min()) / (mil_attention_map.max() - mil_attention_map.min()) + # mask = torch.zeros(( int(W/input_h), int(H/input_h))) + # for i, (x,y) in enumerate(coords): + # mask[y][x] = mil_attention_map[i] + # mask = mask.unsqueeze(0).unsqueeze(0) + + # mask = F.interpolate(mask, (W,H), mode='bilinear') + # mask = mask.squeeze() + + # mask = (mask - mask.min())/(mask.max()-mask.min()) + # # mask[mask<0.1] = 0 + + # feature_cam[mask==0] = 0 + + # mask = mask + feature_cam + + # mask = (mask - mask.min())/(mask.max()-mask.min()) + + + + mask = gaussian_filter(feature_cam, sigma=15) + + wsi_cam = show_cam_on_image(wsi.numpy(), mask, use_rgb=True, image_weight=0.6) + + + roi_idx = (roi==0) + wsi_cam[roi_idx] = 255 + + size = (30000, 30000) + + print('Save GradCAM overlay.') + img = Image.fromarray(wsi_cam) + img = img.convert('RGB') + img.save(f'{self.output_path}/{wsi_name}_gradcam.jpg') + + + def _save_attention_map(self, wsi_name, batch_coords, mil_grayscale_cam, input_h=224): + + position_dict, coords = self._get_position_dict(batch_coords) + x_max = max([x[0] for x in coords]) + y_max = max([x[1] for x in coords]) + wsi = torch.ones([(y_max+1)*224, (x_max+1)*224, 3]) + roi = np.zeros([(y_max+1)*224, (x_max+1)*224]) + for i in range(x_max+1): + if i in position_dict.keys(): + for j in position_dict[i]: + y_coord = int(j[0]) + x_coord = int(i) + co = coords[j[1]] + tile_path = Path(self.jpg_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(tile_path)).astype(np.uint8) + img = img / 255.0 + img = torch.from_numpy(img) + wsi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224, :] = img + + roi_path = Path(self.roi_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(roi_path)).astype(np.uint8) + img = img / 255.0 + # img = torch.from_numpy(img) + roi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224] = img + W, H = wsi.shape[0], wsi.shape[1] + #---------------------------------------------- + # Get mask from gradcam + #---------------------------------------------- + mil_attention_map = mil_grayscale_cam[:, :, 1].squeeze() + mil_attention_map = (mil_attention_map-mil_attention_map.min()) / (mil_attention_map.max() - mil_attention_map.min()) + mask = torch.zeros(( int(W/input_h), int(H/input_h))) + for i, (x,y) in enumerate(coords): + mask[y][x] = mil_attention_map[i] + mask = mask.unsqueeze(0).unsqueeze(0) + + mask = F.interpolate(mask, (W,H), mode='bilinear') + mask = mask.squeeze(0).permute(1,2,0) + + mask = (mask - mask.min())/(mask.max()-mask.min()) + mask = mask.numpy() + mask = gaussian_filter(mask, sigma=15) + + wsi_cam = show_cam_on_image(wsi.numpy(), mask, use_rgb=True, image_weight=0.6) + + #---------------------------------------------- + # Use ROI to filter image + #---------------------------------------------- + roi_idx = (roi==0) + wsi_cam[roi_idx] = 255 + + size = (30000, 30000) + + print('Save GradCAM overlay.') + img = Image.fromarray(wsi_cam) + img = img.convert('RGB') + img.save(f'{self.output_path}/{wsi_name}_gradcam.jpg') + + def create_labels(self, concept_scores, top_k=2): + + labels = {0: 'Normal', 1: 'Disease'} + # labels = eval(requests.get(imagenet_categories_url).text) + concept_categories = np.argsort(concept_scores, axis=1)[:, ::-1][:, :top_k] + concept_labels_topk = [] + for concept_index in range(concept_categories.shape[0]): + categories = concept_categories[concept_index, :] + concept_labels = [] + for category in categories: + score = concept_scores[concept_index, category] + label = f"{labels[category].split(',')[0]}:{score:.2f}" + concept_labels.append(label) + concept_labels_topk.append("\n".join(concept_labels)) + return concept_labels_topk + + def run(self, target_label): + + patient_slide_dict_path = f'/{home}/ylan/data/DeepGraft/training_tables/patient_slide_dict_ext.json' + + self._get_topk() + + + feature_model = self._load_feature_model() + mil_model = self._load_model_from_checkpoint(self.checkpoint) + + + + + model = torch.nn.Sequential(feature_model, mil_model).to(self.device) + # print(model) + # self._get_cam_object(self.model_name, model[1]) + # self._get_cam_object('Resnet50', model) + n_components = 2 + topk = 2 + classifier = model[1]._fc + # print(classifier) + dff = DeepFeatureFactorization(model=model, target_layer=model[0].layer4, + computation_on_concepts=mil_model._fc.to(self.device)) + + + with open(patient_slide_dict_path, 'r') as f: + patient_slide_dict = json.load(f) + slides = [] + for p in self.topk_dict[str(target_label)]['patients']: + slides += patient_slide_dict[p] + self.output_path = self.output_path / str(target_label) + self.output_path.mkdir(parents=True, exist_ok=True) + + # # print(slides) + + test_dataset = JPGMILDataloader(file_path=self.data_root, label_path=self.label_path, mode='test', cache=False, n_classes=self.n_classes, model=self.model_name, slides=slides) + dl = DataLoader(test_dataset, batch_size=1, num_workers=4) + cam_target = [ClassifierOutputTarget(target_label)] + + for item in tqdm(dl): + + bag, label, (name, batch_coords, patient) = item + bag = bag.squeeze(0) + # print(bag.shape) + # rgb_bag_floag = bag/255.0 + # input_tensor = preprocess_image(bag, + # mean=[0.485, 0.456, 0.406], + # std=[0.229, 0.224, 0.225]) + concepts, batch_explanations, concept_outputs = dff(bag, n_components) + concept_outputs = torch.softmax(torch.from_numpy(concept_outputs), axis=-1).numpy() + concept_label_strings = create_labels(concept_outputs, top_k=top_k) + visualization = show_factorization_on_image(bag, + batch_explanations[0], + image_weight=0.3, + concept_labels=concept_label_strings) + result = np.hstack((bag, visualization)) + print(result.shape) + # if result.shape[0] > 500: + # result = cv2.resize(result, (result.shape[1]//4, result.shape[0]//4)) + # img = Image.fromarray(result) + # img = img.convert('RGB') + # img.save(f'{self.output_path}/{wsi_name}_dff.jpg') + # bag, label, (name, batch_coords, patient) = item + # # label = torch.Tensor(label) + # # # idx = top_patients.index(patient[0]) + + # slide_name = name[0] + # print(slide_name) + # # if slide_name != 'Aachen_KiBiDatabase_KiBiAcRLKM530_01_006_HE': + # # # continue + # # # else: + + + # bag = bag.float().squeeze(0).to(self.device) + # # features = model[0](bag.squeeze()) + # with torch.no_grad(): + # features = model[0](bag.squeeze()) + # # scores = model[1](features) + # # print(scores) + # instance_count = bag.size(0) + # bag = bag.detach() + # features = features.detach() + # # + # # with torch.cuda.amp.autocast(): + # # pred = model(bag) + # # print(pred.shape) + + # grayscale_cam = self.feature_cam(input_tensor=bag.squeeze(0), targets=cam_target, eigen_smooth=True) + # grayscale_cam = torch.Tensor(grayscale_cam) + + + # mil_grayscale_cam = self.cam(input_tensor=features.unsqueeze(0), targets=cam_target) + # mil_grayscale_cam = torch.Tensor(mil_grayscale_cam)[:instance_count, :] + # # print(mil_grayscale_cam.shape) + + # # print(grayscale_cam.shape) + + # # # bag = bag.detach() + # # # print(target_label) + # # # self._save_attention_map(slide_name, batch_coords, grayscale_cam) + # # print(grayscale_cam.max()) + # # print(grayscale_cam.min()) + # self.assemble(slide_name, batch_coords, grayscale_cam, mil_grayscale_cam) + + # for t in test_dataset: + +def make_parse(): + parser = argparse.ArgumentParser() + parser.add_argument('--stage', default='test', type=str) + parser.add_argument('--config', default='../DeepGraft/TransMIL_feat_norm_rest.yaml',type=str) + parser.add_argument('--version', default=0,type=int) + parser.add_argument('--epoch', default='0',type=str) + parser.add_argument('--gpus', default = 0, type=int) + parser.add_argument('--loss', default = 'CrossEntropyLoss', type=str) + parser.add_argument('--fold', default = 0) + parser.add_argument('--bag_size', default = 10000, type=int) + parser.add_argument('--total_classes', default = 2, type=int) + + + args = parser.parse_args() + return args + +if __name__ == '__main__': + + # device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + + args = make_parse() + cfg = read_yaml(args.config) + + #---->update + cfg.config = args.config + cfg.General.gpus = [args.gpus] + cfg.General.server = args.stage + cfg.Data.fold = args.fold + cfg.Loss.base_loss = args.loss + cfg.Data.bag_size = args.bag_size + cfg.version = args.version + cfg.epoch = args.epoch + + cfg = check_home(cfg) + + config_path = '/'.join(Path(cfg.config).parts[1:]) + log_path = Path(cfg.General.log_path) / str(Path(config_path).parent) + + Path(cfg.General.log_path).mkdir(exist_ok=True, parents=True) + log_name = f'_{cfg.Model.backbone}' + f'_{cfg.Loss.base_loss}' + task = '_'.join(Path(cfg.config).name[:-5].split('_')[2:]) + # task = Path(cfg.config).name[:-5].split('_')[2:][0] + cfg.task = task + cfg.log_path = log_path / f'{cfg.Model.name}' / task / log_name / 'lightning_logs' / f'version_{cfg.version}' + + home = Path.cwd().parts[1] + + ckpt_pth = Path(cfg.log_path) / 'checkpoints' + model_paths = list(ckpt_pth.glob('*.ckpt')) + if cfg.epoch == 'last': + model_paths = [str(model_path) for model_path in model_paths if f'last' in str(model_path)] + else: + model_paths = [str(model_path) for model_path in model_paths if f'epoch={cfg.epoch}' in str(model_path)] + + # for i in range(args.total_classes): + + target_label = 1 + + # for target_label in range(args.total_classes): + visualizer = Visualize(checkpoint_path=model_paths[0], task=cfg.task) + visualizer.run(target_label) diff --git a/code/visualize_feature.py b/code/visualize_feature.py new file mode 100644 index 0000000..ec3c3a8 --- /dev/null +++ b/code/visualize_feature.py @@ -0,0 +1,551 @@ +import argparse +from pathlib import Path +import numpy as np +import glob +import re + +# from sklearn.model_selection import KFold +# from scipy.interpolate import griddata +from scipy.ndimage import gaussian_filter +# from models.model_interface import ModelInterface +# import models.vision_transformer as vits +from utils.utils import * + +# pytorch_lightning +import pytorch_lightning as pl +from pytorch_lightning import Trainer +import torch +import torch.nn as nn +from torch.cuda.amp import autocast + +from pytorch_grad_cam import GradCAM, EigenGradCAM, EigenCAM, XGradCAM, ScoreCAM, GradCAMPlusPlus, HiResCAM +from pytorch_grad_cam.utils.image import show_cam_on_image +from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget + +import cv2 +from PIL import Image, ImageFilter +from matplotlib import pyplot as plt +import pandas as pd +import json +import pprint + +from models import TransMIL +# from datasets.zarr_feature_dataloader_simple import ZarrFeatureBagLoader +from datasets.feature_dataloader import FeatureBagLoader +from datasets.jpg_dataloader import JPGMILDataloader +from torch.utils.data import random_split, DataLoader +import time +from tqdm import tqdm +import torchmetrics +import models.ResNet as ResNet + +from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve + + + +def check_home(cfg): + # replace home directory + + home = Path.cwd().parts[1] + + x = cfg.General.log_path + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.General.log_path = '/' + str(new_path) + + x = cfg.Data.data_dir + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.data_dir = '/' + str(new_path) + + x = cfg.Data.label_file + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.label_file = '/' + str(new_path) + + return cfg + + + +class Visualize(): + + def __init__(self, checkpoint_path, task): + super().__init__() + + home = Path.cwd().parts[1] + + self.jpg_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides_extended/BLOCKS' + self.roi_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides_extended/ROI' + self.save_path = Path(f'/{home}/ylan/workspace/TransMIL-DeepGraft/test/mil_model_features/') + + + self.checkpoint = torch.load(checkpoint_path) + self.hparams = self.checkpoint['hyper_parameters'] + self.n_classes = self.hparams['model']['n_classes'] + self.model_name = self.hparams['model']['name'] + self.in_features = self.hparams['model']['in_features'] + + self.output_path = self.save_path / self.model_name / task + self.label_path = self.hparams['data']['label_file'] + + # print(Path(self.label_path).parts[3]) + if Path(self.label_path).parts[3] != 'data': + new_path = Path('/' + '/'.join(Path(self.label_path).parts[1:3])) / 'data' / Path('/'.join(Path(self.label_path).parts[3:])) + a, b = str(new_path).split('.') + # new_path = a + '_ext.' + b + self.label_path = new_path + # else: self.label_path = + # print(Path(new_path)) + # Path(home).joinpath(*Path(x).parts[2:]) + # cfg.General.log_path = '/' + str(new_path) + + + # Add '_extended' to label file + a, b = str(self.label_path).split('.') + if a.rsplit('_', 1)[1] != 'ext': + + self.label_path = a + '_ext.' + b + # print(self.label_path) + if task == 'norm_rej_rest': + self.label_path = '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_norm_rej_rest_ext.json' + + # self.label_path = new_path + self.data_root = self.hparams['data']['data_dir'] + + self.mil_model = None + self.feat_model = None + self.cam = None + self.feature_cam = None + self.topk_dict = {} + self.device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + + + + # self._load_model_from_checkpoint(checkpoint) + # self._load_feature_model() + + + + def _load_model_from_checkpoint(self, checkpoint): + + if self.model_name == 'TransMIL': + mil_model = TransMIL(n_classes=self.n_classes, in_features=self.in_features) + + model_weights = checkpoint['state_dict'] + + for key in list(model_weights): + model_weights[key.replace('model.', '')] = model_weights.pop(key) + + mil_model.load_state_dict(model_weights) + return mil_model + # self.mil_model = mil_model + + def _load_feature_model(self, model_name='RetCCL'): + + if model_name == 'RetCCL': + feature_model = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) + feature_model.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) + feature_model.fc = torch.nn.Identity() + + # feature_model.to(self.device) + feature_model.eval() + + return feature_model + # self.feature_model = feature_model + + def _reshape_transform(self, tensor): + H = tensor.shape[1] + _H, _W = int(np.ceil(np.sqrt(H))), int(np.ceil(np.sqrt(H))) + add_length = _H * _W - H + tensor = torch.cat([tensor, tensor[:,:add_length,:]],dim = 1) + result = tensor[:, :, :].reshape(tensor.size(0), _H, _W, tensor.size(2)) + result = result.transpose(2,3).transpose(1,2) + return result + + def _get_position_dict(self, batch_coords): + coords = [] + position_dict = {} + batch_coords = batch_coords.squeeze(0) + for i in range(batch_coords.shape[0]): + c = batch_coords[i, :] + x = c[0] + y = c[1] + coords.append((int(x),int(y))) + + + + for i, (x,y) in enumerate(coords): + if x not in position_dict.keys(): + position_dict[x] = [(y, i)] + else: position_dict[x].append((y, i)) + return position_dict, coords + # return coords + + def _get_cam_object(self, model_name, model): + + if model_name == 'TransMIL': + target_layers = [model.norm] + cam = GradCAM(model=model, target_layers = target_layers, use_cuda=True, reshape_transform=self._reshape_transform) + else: + target_layers = [model[0].layer4[-1]] + cam = GradCAM(model=model, target_layers=target_layers, use_cuda=True) + + return cam + + def _get_topk(self): + + for n in range(self.n_classes): + tpk_csv_path = Path(cfg.log_path) / f'test_epoch_{cfg.epoch}' / f'test_c{n}_top_patients.csv' + tpk_df = pd.read_csv(tpk_csv_path) + self.topk_dict[str(n)] = {'patients': list(tpk_df.head(5)['Patient']), 'labels': [n] * len(list(tpk_df.head(5)['Patient']))} + + + def assemble(self, wsi_name, batch_coords, grayscale_cam, mil_grayscale_cam, input_h=224): + + Path(f'{self.output_path}/tiles/{wsi_name}').mkdir(parents=True, exist_ok=True) + position_dict, coords = self._get_position_dict(batch_coords) + x_max = max([x[0] for x in coords]) + y_max = max([x[1] for x in coords]) + + mean_cam = torch.mean(mil_grayscale_cam, dim=2) + # print(mean_cam.shape) + # print(mean_cam.shape) + percentage_shown = 0.4 + topk = int(mean_cam.shape[1] * percentage_shown) # + print(topk) + + _, topk_indices = torch.topk(mean_cam, topk, dim=1) + batch_coords = torch.index_select(batch_coords.squeeze(), 0, topk_indices[0]) + grayscale_cam = torch.index_select(grayscale_cam.squeeze(), 0, topk_indices[0]) + + feature_cam = torch.zeros([(y_max+1)*224, (x_max+1)*224]) + # print('batch_coords:', batch_coords.shape) + # print(coords.shape) + for i,( c, img) in enumerate(zip(batch_coords.squeeze(0), grayscale_cam)): + c = c.squeeze() + x = c[0].item() + y = c[1].item() + # print(x, y) + + # print(img.shape) + # if i in topk_indices: + feature_cam[y*224:y*224+224, x*224:x*224+224] = img + # feature_cam = (feature_cam - feature_cam.min())/(feature_cam.max()-feature_cam.min()) + wsi = torch.ones([(y_max+1)*224, (x_max+1)*224, 3]) + roi = np.zeros([(y_max+1)*224, (x_max+1)*224]) + for i in range(x_max+1): + if i in position_dict.keys(): + for j in position_dict[i]: + y_coord = int(j[0]) + x_coord = int(i) + co = coords[j[1]] + tile_path = Path(self.jpg_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(tile_path)).astype(np.uint8) + img = img / 255.0 + img = torch.from_numpy(img) + + wsi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224, :] = img + + # save tile level gradcam + tile_features = feature_cam[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224] + mask = gaussian_filter(tile_features, sigma=15) + tile_cam = show_cam_on_image(img.numpy(), tile_features, use_rgb=True, image_weight=0.6, colormap=cv2.COLORMAP_JET) + img_cam = Image.fromarray(tile_cam) + img_cam = img_cam.convert('RGB') + img_cam.save(f'{self.output_path}/tiles/{wsi_name}/{wsi_name}_({co[0]}-{co[1]})_gradcam.jpg') + + + + roi_path = Path(self.roi_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(roi_path)).astype(np.uint8) + img = img / 255.0 + # img = torch.from_numpy(img) + roi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224] = img + W, H = wsi.shape[0], wsi.shape[1] + + + + + + # mil_attention_map = mil_grayscale_cam[:, :, 1].squeeze() + # mil_attention_map = (mil_attention_map-mil_attention_map.min()) / (mil_attention_map.max() - mil_attention_map.min()) + # mask = torch.zeros(( int(W/input_h), int(H/input_h))) + # for i, (x,y) in enumerate(coords): + # mask[y][x] = mil_attention_map[i] + # mask = mask.unsqueeze(0).unsqueeze(0) + + # mask = F.interpolate(mask, (W,H), mode='bilinear') + # mask = mask.squeeze() + + # mask = (mask - mask.min())/(mask.max()-mask.min()) + # # mask[mask<0.1] = 0 + + # feature_cam[mask==0] = 0 + + # mask = mask + feature_cam + + # mask = (mask - mask.min())/(mask.max()-mask.min()) + + mask = gaussian_filter(feature_cam, sigma=15) + mask = (mask - mask.min())/(mask.max()-mask.min()) + + wsi_cam = show_cam_on_image(wsi.numpy(), mask, use_rgb=True, image_weight=0.6, colormap=cv2.COLORMAP_JET) + + roi_idx = (roi==0) + wsi_cam[roi_idx] = 255 + + size = (30000, 30000) + + print('Save GradCAM overlay.') + img = Image.fromarray(wsi_cam) + img = img.convert('RGB') + img.save(f'{self.output_path}/{wsi_name}_gradcam.jpg') + + del wsi_cam + del mask + del wsi + del roi + + + def _save_attention_map(self, wsi_name, batch_coords, mil_grayscale_cam, input_h=224): + + position_dict, coords = self._get_position_dict(batch_coords) + x_max = max([x[0] for x in coords]) + y_max = max([x[1] for x in coords]) + wsi = torch.ones([(y_max+1)*224, (x_max+1)*224, 3]) + roi = np.zeros([(y_max+1)*224, (x_max+1)*224]) + for i in range(x_max+1): + if i in position_dict.keys(): + for j in position_dict[i]: + y_coord = int(j[0]) + x_coord = int(i) + co = coords[j[1]] + tile_path = Path(self.jpg_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(tile_path)).astype(np.uint8) + img = img / 255.0 + img = torch.from_numpy(img) + wsi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224, :] = img + + roi_path = Path(self.roi_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(roi_path)).astype(np.uint8) + img = img / 255.0 + # img = torch.from_numpy(img) + roi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224] = img + W, H = wsi.shape[0], wsi.shape[1] + #---------------------------------------------- + # Get mask from gradcam + #---------------------------------------------- + mil_attention_map = mil_grayscale_cam[:, :, 1].squeeze() + mil_attention_map = (mil_attention_map-mil_attention_map.min()) / (mil_attention_map.max() - mil_attention_map.min()) + mask = torch.zeros(( int(W/input_h), int(H/input_h))) + for i, (x,y) in enumerate(coords): + mask[y][x] = mil_attention_map[i] + mask = mask.unsqueeze(0).unsqueeze(0) + + mask = F.interpolate(mask, (W,H), mode='bilinear') + mask = mask.squeeze(0).permute(1,2,0) + + mask = (mask - mask.min())/(mask.max()-mask.min()) + mask = mask.numpy() + mask = gaussian_filter(mask, sigma=15) + + wsi_cam = show_cam_on_image(wsi.numpy(), mask, use_rgb=True, image_weight=0.6) + + #---------------------------------------------- + # Use ROI to filter image + #---------------------------------------------- + roi_idx = (roi==0) + wsi_cam[roi_idx] = 255 + + size = (30000, 30000) + + print('Save GradCAM overlay.') + img = Image.fromarray(wsi_cam) + img = img.convert('RGB') + img.save(f'{self.output_path}/{wsi_name}_gradcam.jpg') + + + def run(self, target_label): + + patient_slide_dict_path = f'/{home}/ylan/data/DeepGraft/training_tables/patient_slide_dict_ext.json' + + self._get_topk() + + feature_model = self._load_feature_model().to(self.device) + mil_model = self._load_model_from_checkpoint(self.checkpoint).to(self.device) + + model = torch.nn.Sequential(feature_model, mil_model).to(self.device) + # print(model) + # print(self.model_name) + mil_cam = self._get_cam_object(self.model_name, mil_model) + feature_cam = self._get_cam_object('Resnet50', model) + + with open(patient_slide_dict_path, 'r') as f: + patient_slide_dict = json.load(f) + slides = [] + for p in self.topk_dict[str(target_label)]['patients']: + slides += list(set(patient_slide_dict[p])) + # print(slides) + self.output_path = self.output_path / str(target_label) + self.output_path.mkdir(parents=True, exist_ok=True) + slides_done = [x.stem.rsplit('_', 1)[0] for x in list(self.output_path.iterdir()) if Path(x).suffix == '.jpg'] + slides_done += ['29.61s/it]Aachen_KiBiDatabase_KiBiAcDKIK860_01_018_PAS', 'Aachen_KiBiDatabase_KiBiAcDKIK860_01_018_PAS', 'Aachen_KiBiDatabase_KiBiAcLAXK110_01_007_PAS'] + # slides_done += ['Aachen_KiBiDatabase_KiBiAcZXRC970_01_018_PAS', 'Aachen_KiBiDatabase_KiBiAcZXRC970_01_006_HE', 'Aachen_KiBiDatabase_KiBiAcSVXX412_01_006_HE', 'Aachen_KiBiDatabase_KiBiAcUAYM660_01_008_Jones'] + # slides_done += ['Aachen_KiBiDatabase_KiBiAcDKIK860_01_018_PAS', 'Aachen_KiBiDatabase_KiBiAcLAXK110_01_007_PAS', 'Aachen_KiBiDatabase_KiBiAcLAXK110_01_008_Jones'] + # slides_done += ['Aachen_KiBiDatabase_KiBiAcFLGQ191_01_018_PAS', 'Aachen_KiBiDatabase_KiBiAcFLGQ191_01_004_PAS', 'Aachen_KiBiDatabase_KiBiAcFLGQ191_01_008_Jones', ] + # slides_done += ['Aachen_KiBiDatabase_KiBiAcLAXK110_01_007_PAS', 'Aachen_KiBiDatabase_KiBiAcLAXK110_01_008_Jones', 'Aachen_KiBiDatabase_KiBiAcZXRC970_01_018_PAS', 'Aachen_KiBiDatabase_KiBiAcDKIK860_01_018_PAS'] + slides = [s for s in slides if s not in slides_done] + + try: + len(slides) != 0 + except: + print('No Slides available. Please check directory.') + # print(slides) + # self.slides_done += ['Aachen_KiBiDatabase_KiBiAcRLKM530_01_006_HE', 'Aachen_KiBiDatabase_KiBiAcRLKM530_01_008_Jones', 'Aachen_KiBiDatabase_KiBiAcRLKM530_01_018_PAS', 'Aachen_KiBiDatabase_KiBiAcUAYM660_01_008_Jones', + # 'Aachen_KiBiDatabase_KiBiAcUAYM660_01_014_PAS',] + + # print('Slides already processed: ', slides_done) + # self.slides_done.append(['Aachen_KiBiDatabase_KiBiAcDKIK860_01_018_PAS','Aachen_KiBiDatabase_KiBiAcDOST921_01_008_Jones']) + + #skip for norm_rej_rest: + + # print(slides) + + test_dataset = JPGMILDataloader(file_path=self.data_root, label_path=self.label_path, mode='test', cache=False, n_classes=self.n_classes, model=self.model_name, slides=slides) + dl = DataLoader(test_dataset, batch_size=1, num_workers=4) + cam_target = [ClassifierOutputTarget(target_label)] + + + c = 0 + for item in tqdm(dl): + + bag, label, (name, batch_coords, patient) = item + + # label = torch.Tensor(label) + # # idx = top_patients.index(patient[0]) + + slide_name = name[0] + print(slide_name) + # if slide_name != 'Aachen_KiBiDatabase_KiBiAcRLKM530_01_006_HE': + # # continue + # # else: + # if slide_name in self.slides_done: + # continue + + + bag = bag.float().squeeze(0).to(self.device) + # features = model[0](bag.squeeze()) + # with torch.no_grad(): + # features = feature_model(bag.squeeze()) + # scores = model[1](features) + # print(scores) + instance_count = bag.size(0) + # bag = bag.detach() + # features = features.detach() + # + # with torch.cuda.amp.autocast(): + # pred = model(bag) + # print(pred.shape) + # target_layers = [feature_model.layer4[-1]] + # with GradCAM(model=feature_model, target_layers=target_layers, use_cuda=True) as cam: + # cam = self._get_cam_object('Resnet50', model) + grayscale_cam = feature_cam(input_tensor=bag.detach(), targets=cam_target) + grayscale_cam = torch.Tensor(grayscale_cam) + + with torch.no_grad(): + features = feature_model(bag.squeeze()) + + + + + # mil_cam = self._get_cam_object(self.model_name, model[1]) + + # mil_grayscale_cam = mil_cam(input_tensor=features.unsqueeze(0), targets=cam_target) + # mil_grayscale_cam = torch.Tensor(mil_grayscale_cam)[:instance_count, :] + # target_layers = [mil_model.norm] + # cam = GradCAM(model=model, target_layers = target_layers, use_cuda=True, reshape_transform=self._reshape_transform) + # with GradCAM(model=mil_model, target_layers = target_layers, use_cuda=True, reshape_transform=self._reshape_transform) as cam: + + mil_grayscale_cam = mil_cam(input_tensor=features.unsqueeze(0), targets=cam_target) + mil_grayscale_cam = torch.Tensor(mil_grayscale_cam)[:instance_count, :] + + # del mil_cam + # del bag + # del features + # torch.cuda.empty_cache() + + # print(mil_grayscale_cam.shape) + + # print(grayscale_cam.shape) + + # # bag = bag.detach() + # # print(target_label) + # # self._save_attention_map(slide_name, batch_coords, grayscale_cam) + # print(grayscale_cam.max()) + # print(grayscale_cam.min()) + self.assemble(slide_name, batch_coords, grayscale_cam, mil_grayscale_cam) + + # for t in test_dataset: + +def make_parse(): + parser = argparse.ArgumentParser() + parser.add_argument('--stage', default='test', type=str) + parser.add_argument('--config', default='../DeepGraft/TransMIL_feat_norm_rest.yaml',type=str) + parser.add_argument('--version', default=0,type=int) + parser.add_argument('--epoch', default='0',type=str) + parser.add_argument('--gpus', default = 0, type=int) + parser.add_argument('--loss', default = 'CrossEntropyLoss', type=str) + parser.add_argument('--fold', default = 0) + parser.add_argument('--bag_size', default = 10000, type=int) + parser.add_argument('--target_label', default = 1, type=int) + + + args = parser.parse_args() + return args + +if __name__ == '__main__': + + # device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + + args = make_parse() + cfg = read_yaml(args.config) + + #---->update + cfg.config = args.config + cfg.General.gpus = [args.gpus] + cfg.General.server = args.stage + cfg.Data.fold = args.fold + cfg.Loss.base_loss = args.loss + cfg.Data.bag_size = args.bag_size + cfg.version = args.version + cfg.epoch = args.epoch + + cfg = check_home(cfg) + + config_path = '/'.join(Path(cfg.config).parts[1:]) + log_path = Path(cfg.General.log_path) / str(Path(config_path).parent) + + Path(cfg.General.log_path).mkdir(exist_ok=True, parents=True) + log_name = f'_{cfg.Model.backbone}' + f'_{cfg.Loss.base_loss}' + task = '_'.join(Path(cfg.config).name[:-5].split('_')[2:]) + # task = Path(cfg.config).name[:-5].split('_')[2:][0] + cfg.task = task + cfg.log_path = log_path / f'{cfg.Model.name}' / task / log_name / 'lightning_logs' / f'version_{cfg.version}' + + home = Path.cwd().parts[1] + + ckpt_pth = Path(cfg.log_path) / 'checkpoints' + model_paths = list(ckpt_pth.glob('*.ckpt')) + if cfg.epoch == 'last': + model_paths = [str(model_path) for model_path in model_paths if f'last' in str(model_path)] + else: + model_paths = [str(model_path) for model_path in model_paths if f'epoch={cfg.epoch}' in str(model_path)] + + # for i in range(args.total_classes): + + target_label = args.target_label + print(task) + + # for target_label in range(args.total_classes): + visualizer = Visualize(checkpoint_path=model_paths[0], task=cfg.task) + visualizer.run(target_label) diff --git a/code/visualize_mil.py b/code/visualize_mil.py new file mode 100644 index 0000000..822df65 --- /dev/null +++ b/code/visualize_mil.py @@ -0,0 +1,374 @@ +import argparse +from pathlib import Path +import numpy as np +import glob +import re + +from sklearn.model_selection import KFold +from scipy.interpolate import griddata +from scipy.ndimage import gaussian_filter +from models.model_interface import ModelInterface +import models.vision_transformer as vits +from utils.utils import * + +# pytorch_lightning +import pytorch_lightning as pl +from pytorch_lightning import Trainer +import torch +import torch.nn as nn +from torch.cuda.amp import autocast + +from pytorch_grad_cam import GradCAM, EigenGradCAM, EigenCAM, XGradCAM, ScoreCAM, GradCAMPlusPlus +from pytorch_grad_cam.utils.image import show_cam_on_image +from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget + +import cv2 +from PIL import Image, ImageFilter +from matplotlib import pyplot as plt +import pandas as pd +import json +import pprint + +from models import TransMIL +# from datasets.zarr_feature_dataloader_simple import ZarrFeatureBagLoader +from datasets.feature_dataloader import FeatureBagLoader +from datasets.jpg_dataloader import JPGMILDataloader +from torch.utils.data import random_split, DataLoader +import time +from tqdm import tqdm +import torchmetrics +import models.ResNet as ResNet + +from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve + + + +def check_home(cfg): + # replace home directory + + home = Path.cwd().parts[1] + + x = cfg.General.log_path + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.General.log_path = '/' + str(new_path) + + x = cfg.Data.data_dir + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.data_dir = '/' + str(new_path) + + x = cfg.Data.label_file + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.label_file = '/' + str(new_path) + + return cfg + + + +class Visualize(): + + def __init__(self, checkpoint_path, task): + super().__init__() + + home = Path.cwd().parts[1] + + self.jpg_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides_extended/TEST' + self.roi_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides_extended/ROI' + self.save_path = Path(f'/{home}/ylan/workspace/TransMIL-DeepGraft/test/mil_model_extended/') + + + self.checkpoint = torch.load(checkpoint_path) + self.hparams = self.checkpoint['hyper_parameters'] + self.n_classes = self.hparams['model']['n_classes'] + self.model_name = self.hparams['model']['name'] + self.in_features = self.hparams['model']['in_features'] + + self.output_path = self.save_path / self.model_name / task + self.label_path = self.hparams['data']['label_file'] + # print(Path(self.label_path).parts[3]) + if Path(self.label_path).parts[3] != 'data': + new_path = Path('/' + '/'.join(Path(self.label_path).parts[1:3])) / 'data' / Path('/'.join(Path(self.label_path).parts[3:])) + a, b = str(new_path).split('.') + self.label_path = new_path + # else: self.label_path = + # print(Path(new_path)) + # Path(home).joinpath(*Path(x).parts[2:]) + # cfg.General.log_path = '/' + str(new_path) + + + # Add '_extended' to label file + a, b = str(self.label_path).split('.') + # self.label_path = a + '_ext.' + b + if a.rsplit('_', 1)[1] != 'ext': + self.label_path = a + '_ext.' + b + if task == 'norm_rej_rest': + self.label_path = '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_norm_rej_rest_ext.json' + print(self.label_path) + # self.label_path = '/home/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_Grocott_norm_rej_rest_ext.json' + + # self.label_path = new_path + self.data_root = self.hparams['data']['data_dir'] + + self.mil_model = None + self.feat_model = None + self.cam = None + self.topk_dict = {} + self.device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + + # self._load_model_from_checkpoint(checkpoint) + # self._load_feature_model() + + + + def _load_model_from_checkpoint(self, checkpoint): + + if self.model_name == 'TransMIL': + mil_model = TransMIL(n_classes=self.n_classes, in_features=self.in_features) + + model_weights = checkpoint['state_dict'] + + for key in list(model_weights): + model_weights[key.replace('model.', '')] = model_weights.pop(key) + + mil_model.load_state_dict(model_weights) + return mil_model + # self.mil_model = mil_model + + def _load_feature_model(self, model_name='RetCCL'): + + if model_name == 'RetCCL': + feature_model = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) + feature_model.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) + feature_model.fc = torch.nn.Identity() + + feature_model.to(self.device) + feature_model.eval() + + return feature_model + # self.feature_model = feature_model + + def _reshape_transform(self, tensor): + H = tensor.shape[1] + _H, _W = int(np.ceil(np.sqrt(H))), int(np.ceil(np.sqrt(H))) + add_length = _H * _W - H + tensor = torch.cat([tensor, tensor[:,:add_length,:]],dim = 1) + result = tensor[:, :, :].reshape(tensor.size(0), _H, _W, tensor.size(2)) + result = result.transpose(2,3).transpose(1,2) + return result + + def _get_position_dict(self, batch_coords): + coords = [] + position_dict = {} + batch_coords = batch_coords.squeeze(0) + for i in range(batch_coords.shape[0]): + c = batch_coords[i, :] + x = c[0] + y = c[1] + coords.append((int(x),int(y))) + + + + for i, (x,y) in enumerate(coords): + if x not in position_dict.keys(): + position_dict[x] = [(y, i)] + else: position_dict[x].append((y, i)) + return position_dict, coords + # return coords + + def _get_cam_object(self, model_name, model): + if model_name == 'TransMIL': + target_layers = [model.norm] + self.cam = GradCAM(model=model, target_layers = target_layers, use_cuda=True, reshape_transform=self._reshape_transform) + # target_layers = [model.layer4[-1]] + # self.cam = GradCAM(model=model, target_layers=target_layers, use_cuda=True) + + def _get_topk(self): + + for n in range(self.n_classes): + tpk_csv_path = Path(cfg.log_path) / f'test_epoch_{cfg.epoch}' / f'test_c{n}_top_patients.csv' + tpk_df = pd.read_csv(tpk_csv_path) + self.topk_dict[str(n)] = {'patients': list(tpk_df.head(5)['Patient']), 'labels': [n] * len(list(tpk_df.head(5)['Patient']))} + + def _save_attention_map(self, wsi_name, batch_coords, mil_grayscale_cam, input_h=224): + + position_dict, coords = self._get_position_dict(batch_coords) + x_max = max([x[0] for x in coords]) + y_max = max([x[1] for x in coords]) + wsi = torch.ones([(y_max+1)*224, (x_max+1)*224, 3]) + roi = np.zeros([(y_max+1)*224, (x_max+1)*224]) + for i in range(x_max+1): + if i in position_dict.keys(): + for j in position_dict[i]: + y_coord = int(j[0]) + x_coord = int(i) + co = coords[j[1]] + tile_path = Path(self.jpg_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(tile_path)).astype(np.uint8) + img = img / 255.0 + img = torch.from_numpy(img) + wsi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224, :] = img + + roi_path = Path(self.roi_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(roi_path)).astype(np.uint8) + img = img / 255.0 + # img = torch.from_numpy(img) + roi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224] = img + W, H = wsi.shape[0], wsi.shape[1] + #---------------------------------------------- + # Get mask from gradcam + #---------------------------------------------- + mil_attention_map = mil_grayscale_cam[:, :, 1].squeeze() + mil_attention_map = (mil_attention_map-mil_attention_map.min()) / (mil_attention_map.max() - mil_attention_map.min()) + mask = torch.zeros(( int(W/input_h), int(H/input_h))) + for i, (x,y) in enumerate(coords): + mask[y][x] = mil_attention_map[i] + mask = mask.unsqueeze(0).unsqueeze(0) + + mask = F.interpolate(mask, (W,H), mode='bilinear') + mask = mask.squeeze(0).permute(1,2,0) + + mask = (mask - mask.min())/(mask.max()-mask.min()) + mask = mask.numpy() + # mask = gaussian_filter(mask, sigma=15) + + wsi_cam = show_cam_on_image(wsi.numpy(), mask, use_rgb=True, image_weight=0.6, colormap=cv2.COLORMAP_JET) + + #---------------------------------------------- + # Use ROI to filter image + #---------------------------------------------- + roi_idx = (roi==0) + wsi_cam[roi_idx] = 255 + + size = (30000, 30000) + + print('Save GradCAM overlay.') + img = Image.fromarray(wsi_cam) + img = img.convert('RGB') + img.save(f'{self.output_path}/{wsi_name}_gradcam.jpg') + + + def run(self, target_label): + + patient_slide_dict_path = f'/{home}/ylan/data/DeepGraft/training_tables/patient_slide_dict_ext.json' + + self._get_topk() + + feature_model = self._load_feature_model() + mil_model = self._load_model_from_checkpoint(self.checkpoint) + self._get_cam_object(self.model_name, mil_model) + + with open(patient_slide_dict_path, 'r') as f: + patient_slide_dict = json.load(f) + slides = [] + for p in self.topk_dict[str(target_label)]['patients']: + slides += patient_slide_dict[p] + self.output_path = self.output_path / str(target_label) + self.output_path.mkdir(parents=True, exist_ok=True) + skip_slides = [x.stem.rsplit('_', 1)[0] for x in list(self.output_path.iterdir()) if Path(x).suffix == '.jpg'] + skip_slides += ['Aachen_KiBiDatabase_KiBiAcDKIK860_01_006_HE'] + slides = [s for s in slides if s not in skip_slides] + + try: + len(slides) != 0 + except: + print('No Slides available. Please check directory.') + + # print(slides) + + test_dataset = JPGMILDataloader(file_path=self.data_root, label_path=self.label_path, mode='test', cache=False, n_classes=self.n_classes, model=self.model_name, slides=slides) + dl = DataLoader(test_dataset, batch_size=1, num_workers=4, pin_memory=True) + + for item in tqdm(dl): + + bag, label, (name, batch_coords, patient) = item + label = torch.Tensor(label) + # idx = top_patients.index(patient[0]) + + slide_name = name[0] + print(slide_name) + if slide_name != 'Aachen_KiBiDatabase_KiBiAcRLKM530_01_006_HE': + # continue + # else: + + + bag = bag.float().to(self.device) + with torch.cuda.amp.autocast(): + features = feature_model(bag.squeeze()) + instance_count = bag.size(0) + bag = bag.detach() + cam_target = [ClassifierOutputTarget(target_label)] + + mil_grayscale_cam = self.cam(input_tensor=features.unsqueeze(0), targets=cam_target) + mil_grayscale_cam = torch.Tensor(mil_grayscale_cam)[:instance_count, :] + features = features.detach() + bag = bag.detach() + # print(target_label) + self._save_attention_map(slide_name, batch_coords, mil_grayscale_cam) + + # for t in test_dataset: + +def make_parse(): + parser = argparse.ArgumentParser() + parser.add_argument('--stage', default='test', type=str) + parser.add_argument('--config', default='../DeepGraft/TransMIL_feat_norm_rest.yaml',type=str) + parser.add_argument('--version', default=0,type=int) + parser.add_argument('--epoch', default='0',type=str) + parser.add_argument('--gpus', default = 0, type=int) + parser.add_argument('--loss', default = 'CrossEntropyLoss', type=str) + parser.add_argument('--fold', default = 0) + parser.add_argument('--bag_size', default = 10000, type=int) + parser.add_argument('--total_classes', default = 2, type=int) + parser.add_argument('--target_label', default = 1, type=int) + + + args = parser.parse_args() + return args + +if __name__ == '__main__': + + # device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + + args = make_parse() + cfg = read_yaml(args.config) + + #---->update + cfg.config = args.config + cfg.General.gpus = [args.gpus] + cfg.General.server = args.stage + cfg.Data.fold = args.fold + cfg.Loss.base_loss = args.loss + cfg.Data.bag_size = args.bag_size + cfg.version = args.version + cfg.epoch = args.epoch + + cfg = check_home(cfg) + + config_path = '/'.join(Path(cfg.config).parts[1:]) + log_path = Path(cfg.General.log_path) / str(Path(config_path).parent) + + Path(cfg.General.log_path).mkdir(exist_ok=True, parents=True) + log_name = f'_{cfg.Model.backbone}' + f'_{cfg.Loss.base_loss}' + task = '_'.join(Path(cfg.config).name[:-5].split('_')[2:]) + # task = Path(cfg.config).name[:-5].split('_')[2:][0] + cfg.task = task + cfg.log_path = log_path / f'{cfg.Model.name}' / task / log_name / 'lightning_logs' / f'version_{cfg.version}' + + home = Path.cwd().parts[1] + + ckpt_pth = Path(cfg.log_path) / 'checkpoints' + model_paths = list(ckpt_pth.glob('*.ckpt')) + if cfg.epoch == 'last': + model_paths = [str(model_path) for model_path in model_paths if f'last' in str(model_path)] + else: + model_paths = [str(model_path) for model_path in model_paths if f'epoch={cfg.epoch}' in str(model_path)] + + # for i in range(args.total_classes): + + # target_label = 1 + target_label = args.target_label + + # for target_label in range(args.total_classes): + visualizer = Visualize(checkpoint_path=model_paths[0], task=cfg.task) + visualizer.run(target_label) diff --git a/code/visualize_old.py b/code/visualize_old.py new file mode 100644 index 0000000..e8f4c47 --- /dev/null +++ b/code/visualize_old.py @@ -0,0 +1,555 @@ +import argparse +from pathlib import Path +import numpy as np +import glob +import re + +from sklearn.model_selection import KFold +from scipy.interpolate import griddata +from scipy.ndimage import gaussian_filter + +# from datasets.data_interface import DataInterface, MILDataModule, CrossVal_MILDataModule +# from datasets import JPGMILDataloader, MILDataModule, FeatureBagLoader +from models.model_interface import ModelInterface +import models.vision_transformer as vits +from utils.utils import * + +# pytorch_lightning +import pytorch_lightning as pl +from pytorch_lightning import Trainer +import torch +import torch.nn as nn +from torch.cuda.amp import autocast + +from pytorch_grad_cam import GradCAM, EigenGradCAM, EigenCAM, XGradCAM, ScoreCAM, GradCAMPlusPlus +from pytorch_grad_cam.utils.image import show_cam_on_image +from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget + +import cv2 +from PIL import Image, ImageFilter +from matplotlib import pyplot as plt +import pandas as pd +import json +import pprint + +from models import TransMIL +# from datasets.zarr_feature_dataloader_simple import ZarrFeatureBagLoader +from datasets.feature_dataloader import FeatureBagLoader +from datasets.jpg_dataloader import JPGMILDataloader +from torch.utils.data import random_split, DataLoader +import time +from tqdm import tqdm +import torchmetrics +import models.ResNet as ResNet + +from torchmetrics.functional.classification import binary_auroc, multiclass_auroc, binary_precision_recall_curve, multiclass_precision_recall_curve + + +#--->Setting parameters +def make_parse(): + parser = argparse.ArgumentParser() + parser.add_argument('--stage', default='test', type=str) + parser.add_argument('--config', default='../DeepGraft/TransMIL.yaml',type=str) + parser.add_argument('--version', default=0,type=int) + parser.add_argument('--epoch', default='0',type=str) + parser.add_argument('--gpus', default = 0, type=int) + parser.add_argument('--loss', default = 'CrossEntropyLoss', type=str) + parser.add_argument('--fold', default = 0) + parser.add_argument('--bag_size', default = 10000, type=int) + + args = parser.parse_args() + return args + +class InferenceModel(nn.Module): + def __init__(self, feature_model, mil_model): + super(InferenceModel, self).__init__() + + self.feature_model = feature_model + self.mil_model = mil_model + + def forward(self, x): + + + # batch_size = x.shape[0] + bag_size = x.shape[0] + # bag = x.view(batch_size*bag_size, x.shape[2], x.shape[3], x.shape[4]) + + x = x.squeeze() + feats = self.feature_model(x) + # feats = feats.view(batch_size, bag_size, -1) + logits = self.mil_model(feats.unsqueeze(0)) + + return logits + + +class RETCCL_FE(pl.LightningModule): + def __init__(self): + self.model_ft = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) + home = Path.cwd().parts[1] + # pre_model = + # self.model_ft.fc = nn.Identity() + # self.model_ft.load_from_checkpoint(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth', strict=False) + self.model_ft.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) + for param in self.model_ft.parameters(): + param.requires_grad = False + self.model_ft.fc = torch.nn.Identity() + # self.model_ft.to(self.device) + + def forward(self, x): + return self.model_ft(x) + +# def reshape_transform(tensor, height=14, width=14): +# result = tensor[:, 1 : , :].reshape(tensor.size(0), +# height, width, tensor.size(2)) + +# # Bring the channels to the first dimension, +# # like in CNNs. +# result = result.transpose(2, 3).transpose(1, 2) +# return result + +def reshape_transform(tensor): + # print('reshape_transform') + # print(tensor.shape) + H = tensor.shape[1] + _H, _W = int(np.ceil(np.sqrt(H))), int(np.ceil(np.sqrt(H))) + # print(_H, _W) + add_length = _H * _W - H + tensor = torch.cat([tensor, tensor[:,:add_length,:]],dim = 1) + # print(tensor.shape) + result = tensor[:, :, :].reshape(tensor.size(0), _H, _W, tensor.size(2)) + # print(result.shape) + result = result.transpose(2,3).transpose(1,2) + # print(result.shape) + # print('----------') + return result + + +def save_attention_map(wsi_name, batch_names, mil_grayscale_cam, target, task='norm_rest', device='cpu', input_h=224): + + # def get_coords(batch_names): #ToDO: Change function for precise coords + # coords = [] + + # for tile_name in batch_names: + # # print(tile_name) + # pos = re.findall(r'\((.*?)\)', tile_name) + # # print(pos) + # x, y = pos[-1].split('-') + # # print(x, y) + # coords.append((int(x),int(y))) + + # return coords + + + def get_coords(batch_names): + coords = [] + batch_names = batch_names.squeeze(0) + for i in range(batch_names.shape[0]): + c = batch_names[i, :] + # print(c) + x = c[0] + y = c[1] + coords.append((int(x),int(y))) + return coords + + home = Path.cwd().parts[1] + jpg_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides/TEST' + roi_dir = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated/Aachen_Biopsy_Slides/ROI' + save_path = Path(f'/{home}/ylan/workspace/TransMIL-DeepGraft/test/mil_model/{task}') + + output_path = save_path / str(target) + # output_path = save_path / str(target.item()) + output_path.mkdir(parents=True, exist_ok=True) + + coords = get_coords(batch_names) + data = [] + + # print('Assembled: ') + + position_dict = {} + assembled = [] + # for tile in self.predictions: + count = 0 + white_value = 0 + x_max = max([x[0] for x in coords]) + y_max = max([x[1] for x in coords]) + + for i, (x,y) in enumerate(coords): + if x not in position_dict.keys(): + + position_dict[x] = [(y, i)] + else: position_dict[x].append((y, i)) + + wsi = torch.ones([(y_max+1)*224, (x_max+1)*224, 3]) + roi = np.zeros([(y_max+1)*224, (x_max+1)*224]) + for i in range(x_max+1): + if i in position_dict.keys(): + for j in position_dict[i]: + y_coord = int(j[0]) + x_coord = int(i) + # sample_idx = j[1] + # print(coords[j[1]]) + co = coords[j[1]] + tile_path = Path(jpg_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(tile_path)).astype(np.uint8) + img = img / 255.0 + img = torch.from_numpy(img) + wsi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224, :] = img + + roi_path = Path(roi_dir) / wsi_name / f'{wsi_name}_({co[0]}-{co[1]}).png' + img = np.asarray(Image.open(roi_path)).astype(np.uint8) + img = img / 255.0 + # img = torch.from_numpy(img) + roi[y_coord*224:(y_coord+1)*224, x_coord*224:(x_coord+1)*224] = img + + + # roi = torch.stack((roi, roi, roi), dim=2) + W, H = wsi.shape[0], wsi.shape[1] + # test mil_model attention map + mil_attention_map = mil_grayscale_cam[:, :, 1].squeeze() + mil_attention_map = (mil_attention_map-mil_attention_map.min()) / (mil_attention_map.max() - mil_attention_map.min()) + + input_h = 224 + # print(input_h) + + mil_mask = torch.zeros(( int(W/input_h), int(H/input_h))) + # print('mil_mask: ', mil_mask.shape) + # print(len(coords)) + for i, (x,y) in enumerate(coords): + mil_mask[y][x] = mil_attention_map[i] + mil_mask = mil_mask.unsqueeze(0).unsqueeze(0) + + mil_mask = F.interpolate(mil_mask, (W,H), mode='bilinear') + mil_mask = mil_mask.squeeze(0).permute(1,2,0) + + mil_mask = (mil_mask - mil_mask.min())/(mil_mask.max()-mil_mask.min()) + mil_mask = mil_mask.numpy() + mil_mask = gaussian_filter(mil_mask, sigma=15) + # mil_mask = mil_mask.unsqueeze(0).unsqueeze(0) + # print(mil_mask) + # print(mil_mask.max(), mil_mask.min()) + + # Save original + # print('Save Original.') + # wsi_out = ((wsi-wsi.min())/(wsi.max()-wsi.min()) * 255.0).numpy().astype(np.uint8) + # img = Image.fromarray(wsi_out) + # img = img.convert('RGB') + # size = (30000, 30000) + # img.thumbnail(size, Image.Resampling.LANCZOS) + # output_path = save_path / str(target) + # # output_path = save_path / str(target.item()) + # output_path.mkdir(parents=True, exist_ok=True) + # img.save(f'{output_path}/{wsi_name}.png') + # del wsi_out + #--> Get interpolated mask from GradCam + # W, H = wsi.shape[0], wsi.shape[1] + # mask = torch.zeros((W,H)) + # for i, (x,y) in enumerate(coords): + # mask[y*224:(y+1)*224, x*224:(x+1)*224] = grayscale_cam[i] #* mil_attention_map[i] + + # mask = mask.unsqueeze(0).unsqueeze(0) + # mask = mask.squeeze(0).permute(1,2,0) + # # print(mask) + # # mask = 255 * (mask / mask.max()) + # mask = mask.numpy() + # mask = gaussian_filter(mask, sigma=15) + #------------------------------------------ + # heatmap = cv2.applyColorMap(np.uint8(255 * mask), cv2.COLORMAP_PLASMA) + # img = Image.fromarray(255 - np.uint8(heatmap)) + # img.save(f'{output_path}/{wsi_name}_attention.png') + + # mask_img = Image.fromarray(mask.unsqueeze(0)) + # mask_img = mask_img.filter(ImageFilter.MORE_SMOOTH) + + # print('mask: ', mask.shape) + + # def show_cam_on_image(img, mask): + # heatmap = cv2.applyColorMap(np.uint8(255*mask), cv2.COLORMAP_JET) + # heatmap = cv2.applyColorMap(np.uint8(255 * mask), cv2.COLORMAP_JET) + # heatmap = np.float32(heatmap) / 255 + # cam = heatmap*0.4 + np.float32(img) + # cam = cam / np.max(cam) + # return cam + + wsi_cam = show_cam_on_image(wsi.numpy(), mil_mask, use_rgb=True, image_weight=0.6) + + print('Filter with ROI Mask.') + roi_idx = (roi==0) + wsi_cam[roi_idx] = 255 + # print(wsi_cam) + # wsi_cam = ((wsi_cam-wsi_cam.min())/(wsi_cam.max()-wsi_cam.min()) * 255.0).astype(np.uint8) + + size = (30000, 30000) + + print('Save GradCAM overlay.') + img = Image.fromarray(wsi_cam) + img = img.convert('RGB') + # img.thumbnail(size, Image.Resampling.LANCZOS) + # img.resize(size, resample=Image.Resampling.LANCZOS) + # img = img.filter(ImageFilter.MORE_SMOOTH) + # output_path = save_path / str(target.item()) + # output_path.mkdir(parents=True, exist_ok=True) + img.save(f'{output_path}/{wsi_name}_gradcam.jpg') + + +#---->main +def check_home(cfg): + # replace home directory + + home = Path.cwd().parts[1] + + x = cfg.General.log_path + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.General.log_path = '/' + str(new_path) + + x = cfg.Data.data_dir + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.data_dir = '/' + str(new_path) + + x = cfg.Data.label_file + if Path(x).parts[1] != home: + new_path = Path(home).joinpath(*Path(x).parts[2:]) + cfg.Data.label_file = '/' + str(new_path) + + return cfg + +if __name__ == '__main__': + + args = make_parse() + cfg = read_yaml(args.config) + + #---->update + cfg.config = args.config + cfg.General.gpus = [args.gpus] + cfg.General.server = args.stage + cfg.Data.fold = args.fold + cfg.Loss.base_loss = args.loss + cfg.Data.bag_size = args.bag_size + cfg.version = args.version + cfg.epoch = args.epoch + + cfg = check_home(cfg) + + config_path = '/'.join(Path(cfg.config).parts[1:]) + log_path = Path(cfg.General.log_path) / str(Path(config_path).parent) + + Path(cfg.General.log_path).mkdir(exist_ok=True, parents=True) + log_name = f'_{cfg.Model.backbone}' + f'_{cfg.Loss.base_loss}' + task = '_'.join(Path(cfg.config).name[:-5].split('_')[2:]) + # task = Path(cfg.config).name[:-5].split('_')[2:][0] + cfg.task = task + cfg.log_path = log_path / f'{cfg.Model.name}' / task / log_name / 'lightning_logs' / f'version_{cfg.version}' + + # cfg.model_path = cfg.log_patth / 'code' / 'models' / + + + + #---->main + # main(cfg) + + + + device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + scaler = torch.cuda.amp.GradScaler() + + home = Path.cwd().parts[1] + ckpt_pth = Path(cfg.log_path) / 'checkpoints' + model_paths = list(ckpt_pth.glob('*.ckpt')) + + # print(model_paths) + if cfg.epoch == 'last': + model_paths = [str(model_path) for model_path in model_paths if f'last' in str(model_path)] + else: + model_paths = [str(model_path) for model_path in model_paths if f'epoch={cfg.epoch}' in str(model_path)] + + # checkpoint = torch.load(f'{cfg.log_path}/checkpoints/epoch=04-val_loss=0.4243-val_auc=0.8243-val_patient_auc=0.8282244801521301.ckpt') + # checkpoint = torch.load(f'{cfg.log_path}/checkpoints/epoch=73-val_loss=0.8574-val_auc=0.9682-val_patient_auc=0.9724310636520386.ckpt') + # print(model_paths) + checkpoint = torch.load(model_paths[0]) + + hyper_parameters = checkpoint['hyper_parameters'] + n_classes = hyper_parameters['model']['n_classes'] + # batch_size = 5 + + + feature_model = ResNet.resnet50(num_classes=128, mlp=False, two_branch=False, normlinear=True) + feature_model.load_state_dict(torch.load(f'/{home}/ylan/workspace/TransMIL-DeepGraft/code/models/ckpt/retccl_best_ckpt.pth'), strict=False) + feature_model.fc = torch.nn.Identity() + feature_model.to(device) + feature_model.eval() + + mil_model = TransMIL(n_classes=n_classes, in_features=2048).to(device) + model_weights = checkpoint['state_dict'] + + for key in list(model_weights): + model_weights[key.replace('model.', '')] = model_weights.pop(key) + + mil_model.load_state_dict(model_weights) + # mil_model.eval() + + + big_model = InferenceModel(feature_model, mil_model).to(device) + big_model.eval() + count = 0 + + # for param in big_model.parameters(): + # param.requires_grad = False + + + + home = Path.cwd().parts[1] + data_root = f'/{home}/ylan/data/DeepGraft/224_256uM_annotated' + label_path = hyper_parameters['data']['label_path'] + # label_path = f'/{home}/ylan/data/DeepGraft/training_tables/dg_split_PAS_HE_Jones_norm_rej_rest_val_1.json' + + # if self.model_name == 'TransMIL': + # print(self.model.layer2.norm) + # print(big_model) + target_layers = [big_model.feature_model.layer4[-1]] # 32x32 + # target_layers = [big_model.mil_model.layer2.norm] # 32x32 + # target_layers = [mil_model.layer2.norm] # 32x32 + # target_layers = [self.model_ft[0].features[-1]] # 32x32 + cam = GradCAM(model=big_model, target_layers = target_layers, use_cuda=True) #, reshape_transform=self.reshape_transform + mil_cam = GradCAM(model=mil_model, target_layers = [mil_model.norm], use_cuda=True, reshape_transform=reshape_transform) #, reshape_transform=self.reshape_transform + # self.cam_ft = GradCAM(model=self.model, target_layers = target_layers_ft, use_cuda=True) #, reshape_transform=self.reshape_transform + # elif self.model_name == 'TransformerMIL': + # target_layers = [self.model.layer1.norm] + # self.cam = EigenCAM(model=self.model, target_layers = target_layers, use_cuda=True, reshape_transform=self.reshape_transform) + # # self.cam = GradCAM(model=self.model, target_layers = target_layers, use_cuda=True, reshape_transform=self.reshape_transform) + # else: + # target_layers = [self.model.attention_weights] + # self.cam = GradCAM(model = self.model, target_layers = target_layers, use_cuda=True) + + start = time.time() + test_logits = [] + test_probs = [] + test_labels = [] + test_topk_data = [] + data = [{"count": 0, "correct": 0} for i in range(n_classes)] + count = 0 + + # print(len(dl)) + + test_patient_dict = {} + + top_patients = [] + target_labels = [] + # for n in range(n_classes): + + #------------------------------------------------------------------------------------------------ + # Get Scores for class 1 + n = 0 + tpk_csv_path = Path(cfg.log_path) / f'test_epoch_{cfg.epoch}' / f'test_c{n}_top_patients.csv' + tpk_df = pd.read_csv(tpk_csv_path) + top_patients += list(tpk_df.head(5)['Patient']) + target_labels += [n] * len(list(tpk_df.head(5)['Patient'])) + #------------------------------------------------------------------------------------------------ + patient_slide_dict_path = f'/{home}/ylan/data/DeepGraft/training_tables/patient_slide_dict.json' + with open(patient_slide_dict_path, 'r') as f: + patient_slide_dict = json.load(f) + slides = [] + for p in top_patients: + slides += patient_slide_dict[p] + # slides = ['Aachen_KiBiDatabase_KiBiAcSVXX411_01_001_PAS'] + # slides = ['Aachen_KiBiDatabase_KiBiAcWBSS520_01_001_PAS'] + # slides = ['Aachen_KiBiDatabase_KiBiAcTTVB560_01_002_HE'] + # print(slides) + test_dataset = JPGMILDataloader(data_root, label_path=label_path, mode='test', cache=False, n_classes=n_classes, model='TransMIL', slides=slides) + # for t in test_dataset: + # print(t) + # test_dataset = FeatureBagLoader(data_root, label_path=label_path, mode='test', n_classes=n_classes, cache=False, model='TransMIL') + + dl = DataLoader(test_dataset, batch_size=1, num_workers=1, pin_memory=True) + + + print('top_patients: ') + print(top_patients) + print('target_labels: ') + print(target_labels) + + c = 0 + # for slide in slides: + # test_dataset = JPGMILDataloader(data_root, label_path=label_path, mode='test', cache=False, n_classes=n_classes, model='TransMIL', slides=[slide]) + for item in tqdm(dl): + + bag, label, (name, batch_coords, patient) = item + + label = torch.Tensor(label) + if patient[0] not in top_patients: + continue + idx = top_patients.index(patient[0]) + + name = name[0] + + bag = bag.float().to(device) + # bag = bag.unsqueeze(0) + print(bag.shape) + with torch.cuda.amp.autocast(): + features = feature_model(bag.squeeze()) + # features = feature_model(bag.squeeze()) + # logits = self.mil_model(feats.unsqueeze(0)) + + # logits = mil_model(bag) + # with torch.autocast(device_type='cuda', dtype=torch.float16): + # logits = big_model(bag.squeeze()) + + # Y_hat = torch.argmax(logits, dim=1) + # Y_prob = F.softmax(logits, dim = 1) + instance_count = bag.size(0) + # Y = torch.argmax(label) + + target = [ClassifierOutputTarget(target_labels[idx])] + # target = [ClassifierOutputTarget(1)] + # print(features.shape) + mil_grayscale_cam = mil_cam(input_tensor=features.unsqueeze(0), targets=target) + # mil_grayscale_cam = mil_cam(input_tensor=features, targets=target) + print('mil_grayscale_cam: ', mil_grayscale_cam.shape) + mil_grayscale_cam = torch.Tensor(mil_grayscale_cam)[:instance_count, :] + + + + # print('GradCAM') + # grayscale_cam = cam(input_tensor=bag, targets=target) + + # # print(grayscale_cam.shape) + # grayscale_cam = torch.from_numpy(grayscale_cam) + # grayscale_cam = torch.Tensor(grayscale_cam)[:instance_count, :] + + bag = bag.detach() + print(name) + save_attention_map(name, batch_coords, mil_grayscale_cam, target=target_labels[idx], device=device) + + torch.cuda.empty_cache() + # for y, y_hat in zip(label, Y_hat): + # y = int(y) + # # print(Y_hat) + # data[y]["count"] += 1 + # data[y]["correct"] += (int(y_hat) == y) + + # test_logits = torch.cat(test_logits, dim=0) + # probs = torch.cat(test_probs).detach().cpu() + # if n_classes <=2: + # out_probs = probs[:,1] + # else: out_probs = probs + # targets = torch.cat(test_labels).squeeze().detach().cpu() + + # for c in range(n_classes): + # count = data[c]['count'] + # correct = data[c]['correct'] + # if count == 0: + # acc = None + # else: + # acc = float(correct) / count + # print('class {}: acc {}, correct {}/{}'.format(c, acc, correct, count)) + + + + # auroc = AUROC(probs, targets) + # auroc = binary_auroc(out_probs, targets) + # print(auroc) + end = time.time() + print('Bag Time: ', end-start) + + + diff --git a/cufile.log b/cufile.log new file mode 100644 index 0000000..d8ebe6f --- /dev/null +++ b/cufile.log @@ -0,0 +1,14 @@ + 21-02-2023 13:46:41:172 [pid=2003721 tid=2003721] NOTICE cufio-drv:625 running in compatible mode + 21-02-2023 13:49:21:420 [pid=2005112 tid=2005112] NOTICE cufio-drv:625 running in compatible mode + 21-02-2023 13:52:32:784 [pid=2006559 tid=2006559] NOTICE cufio-drv:625 running in compatible mode + 21-02-2023 13:54:32:164 [pid=2007693 tid=2007693] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 10:01:11:560 [pid=2409640 tid=2409640] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 10:04:08:864 [pid=2411115 tid=2411115] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 10:13:36:148 [pid=2414719 tid=2414719] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 10:16:03:296 [pid=2415931 tid=2415931] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 10:20:31:112 [pid=2417865 tid=2417865] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 10:22:39:388 [pid=2419078 tid=2419078] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 10:29:40:356 [pid=2421559 tid=2421559] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 11:18:11:96 [pid=2436804 tid=2436804] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 11:19:03:724 [pid=2437137 tid=2437137] NOTICE cufio-drv:625 running in compatible mode + 22-02-2023 11:20:24:248 [pid=2437678 tid=2437678] NOTICE cufio-drv:625 running in compatible mode diff --git a/nohup.out b/nohup.out new file mode 100644 index 0000000..ec6ae06 --- /dev/null +++ b/nohup.out @@ -0,0 +1,24 @@ +[I 2023-04-28 11:39:32.857 ServerApp] jupyterlab | extension was successfully linked. +[I 2023-04-28 11:39:32.863 ServerApp] Writing notebook server cookie secret to /home/ylan/.local/share/jupyter/runtime/jupyter_cookie_secret +[I 2023-04-28 11:39:33.312 ServerApp] nbclassic | extension was successfully linked. +[I 2023-04-28 11:39:33.480 ServerApp] The port 9000 is already in use, trying another port. +[I 2023-04-28 11:39:33.480 ServerApp] The port 9001 is already in use, trying another port. +[I 2023-04-28 11:39:33.481 ServerApp] The port 9002 is already in use, trying another port. +[I 2023-04-28 11:39:33.481 ServerApp] The port 9003 is already in use, trying another port. +[I 2023-04-28 11:39:33.481 ServerApp] The port 9004 is already in use, trying another port. +[I 2023-04-28 11:39:33.541 LabApp] JupyterLab extension loaded from /home/ylan/miniconda3/envs/pytorch/lib/python3.9/site-packages/jupyterlab +[I 2023-04-28 11:39:33.541 LabApp] JupyterLab application directory is /home/ylan/miniconda3/envs/pytorch/share/jupyter/lab +[I 2023-04-28 11:39:33.544 ServerApp] jupyterlab | extension was successfully loaded. +[I 2023-04-28 11:39:33.608 ServerApp] nbclassic | extension was successfully loaded. +[I 2023-04-28 11:39:33.609 ServerApp] Serving notebooks from local directory: /home/ylan/workspace/TransMIL-DeepGraft +[I 2023-04-28 11:39:33.609 ServerApp] Jupyter Server 1.4.1 is running at: +[I 2023-04-28 11:39:33.609 ServerApp] http://localhost:8912/lab?token=74acb08968b367118f6702623072af075627ef97ee8b150f +[I 2023-04-28 11:39:33.609 ServerApp] or http://127.0.0.1:8912/lab?token=74acb08968b367118f6702623072af075627ef97ee8b150f +[I 2023-04-28 11:39:33.609 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). +[C 2023-04-28 11:39:33.621 ServerApp] + + To access the server, open this file in a browser: + file:///home/ylan/.local/share/jupyter/runtime/jpserver-1770462-open.html + Or copy and paste one of these URLs: + http://localhost:8912/lab?token=74acb08968b367118f6702623072af075627ef97ee8b150f + or http://127.0.0.1:8912/lab?token=74acb08968b367118f6702623072af075627ef97ee8b150f diff --git a/paper_structure.md b/paper_structure.md index c674719..c6f76cc 100644 --- a/paper_structure.md +++ b/paper_structure.md @@ -4,32 +4,67 @@ ## Introduction +Why do we do this + ## Methods - - Fig 1: Model/Workflow + - Fig: Study design + * Choosing the data + * Model workflow + + Groud truth + DL Analyses + + - ## Dataset - - Fig: cohorts, data selection - - Fig: Preprocessing + - Fig: cohorts, data selection, Train/Val/Test Split + - Fig: Preprocessing, Annotations ## Results - - Fig: Metrics on Testset for each task: +Compare models on Normal vs Rest and then choose best Model. + + - Fig: Metrics on Testset for Normal vs Rejection vs Rest: + | Model | Accuracy | Precision | Recall | AUROC | | ------------ | -------- | --------- | ------ | ----- | -| Resnet18 | | | | | +| | | | | | | ViT | | | | | | CLAM | | | | | | AttentionMIL | | | | | | TransMIL | | | | | + + - Fig: Metrics on Testset for Normal vs Rest + Rejections vs Rest: + +| Model | Accuracy | Precision | Recall | AUROC | +| ------------ | -------- | --------- | ------ | ----- | | | | | | | +| ViT | | | | | +| CLAM | | | | | +| AttentionMIL | | | | | +| TransMIL | | | | | + - Two step Models are still better - Fig: AUROC Curves (Best Model, Rest in Appendix) - - Fig: Attention Maps (Best Model, Rest in Appendix) +- Single Model: + AUROC Curves for each class + Prediction Maps on slide + Scale + Predictive tiles with Original and GradCam + Scale + +- Two step Model: + AUROC Curves for each class + Prediction Maps on slide + Scale + Predictive tiles with Original and GradCam + Scale + ## Discussion ## Appendix + +### Sustainability Study + +### Fine Tuning on Test Set diff --git a/project_plan.md b/project_plan.md index 0fde7bc..bbc36ca 100644 --- a/project_plan.md +++ b/project_plan.md @@ -26,10 +26,8 @@ With this project, we aim to esatablish a benchmark for weakly supervised deep l For our Benchmark, we chose the following models: - AttentionMIL -- Resnet18/50 - ViT - CLAM -- TransMIL - Monai MIL (optional) Resnet18 and Resnet50 are basic CNNs that can be applied for a variety of tasks. Although domain or task specific architectures mostly outperform them, they remain a good baseline for comparison. @@ -75,6 +73,8 @@ These experiments may vary depending on the results from previous experiments - (4) Normal vs TCMR vs Mixed vs ABMR vs Viral vs Others - (5) TCMR vs Mixed vs ABMR +- use structural Segmentations to guide attention + ## Plan: 1. Train models for current tasks on AMS+Utrecht -> Validate on Aachen @@ -100,3 +100,27 @@ Notes: - (mixing in 10 slides from Aachen increases auc performance from 0.7 to 0.89) - AttentionMIL: WIP - Monai MIL: WIP + +# Figure Parts: + +- TransMIL: + * norm_rest: + * AUROC, PR-AUROC, ConfMatrix, + * GradCAM Slides of TopK Patients + * rej_rest: + * AUROC, PR-AUROC, ConfMatrix, + * GradCAM Slides of TopK Patients + * norm_rej_rest: + * AUROC, PR-AUROC, ConfMatrix, + * GradCAM Slides of TopK Patients + + + +# Future Ideas: + +- merge with segmentation models (let model only see glomerulus in WSI?) +- cam guided loss (for example focus on glomerulus structures) +- use cTransPath or other feature extractors? +- are end to end methods better than Feature Extractor + Pooling? +- rejections: multilabel problem? + - separately train two models for TCMR and ABMR each. Use Mixed in both datasets as positive? \ No newline at end of file -- GitLab