diff --git a/blitz/data/live.py b/blitz/data/live.py index 19fe546..06eb651 100644 --- a/blitz/data/live.py +++ b/blitz/data/live.py @@ -16,6 +16,7 @@ def __init__( buffer: int, frame_rate: int, grayscale: bool, + downsample: float, ) -> None: super().__init__() self.cam = cv2.VideoCapture(cam) @@ -29,6 +30,10 @@ def __init__( self._index = 0 self.grayscale = grayscale self.frame_rate = frame_rate + self.downsample = downsample + if downsample < 1.0: + width = round(width * downsample) + height = round(height * downsample) if self.grayscale: self.output = np.zeros((buffer, width, height)) else: @@ -39,6 +44,14 @@ def watch(self) -> None: while self.watching: _, frame = self.cam.read() self.output[:-1] = self.output[1:] + frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + if self.downsample < 1.0: + frame = cv2.resize( + frame, + (0, 0), + fx=self.downsample, + fy=self.downsample, + ) if self.grayscale: frame: np.ndarray = np.sum( frame * np.array([0.2989, 0.5870, 0.1140]), @@ -59,9 +72,16 @@ def __init__( buffer: int, frame_rate: int, grayscale: bool, + downsample: float, ) -> None: super().__init__() - self._watcher = CamWatcher(cam, buffer, frame_rate, grayscale) + self._watcher = CamWatcher( + cam, + buffer, + frame_rate, + grayscale, + downsample, + ) self._reader_thread = QThread() @property diff --git a/blitz/layout/main.py b/blitz/layout/main.py index 7629595..a94f076 100644 --- a/blitz/layout/main.py +++ b/blitz/layout/main.py @@ -8,8 +8,8 @@ from .. import __version__, settings from ..data.image import ImageData -from ..data.web import WebDataLoader from ..data.live import LiveView +from ..data.web import WebDataLoader from ..tools import LoadingManager, get_available_ram, log from .rosee import ROSEEAdapter from .tof import TOFAdapter @@ -232,6 +232,7 @@ def reset_options(self) -> None: self.ui.spinbox_max_ram.setValue(settings.get("default/max_ram")) self.ui.spinbox_camera.setValue(0) self.ui.spinbox_frame_pause.setValue(500) + self.ui.spinbox_downsample.setValue(1.0) self.ui.button_apply_mask.setChecked(False) self.ui.checkbox_flipx.setChecked(settings.get("data/flipped_x")) self.ui.checkbox_flipy.setChecked(settings.get("data/flipped_y")) @@ -370,39 +371,6 @@ def image_mask(self) -> None: with LoadingManager(self, "Masking..."): self.ui.image_viewer.image_mask(Path(file_path)) - # def _normalization_update(self) -> None: - # name = None - # if self.ui.checkbox_norm_subtract.isChecked(): - # name = "subtract" - # if self.ui.checkbox_norm_divide.isChecked(): - # name = "divide" - # if name is not None: - # bounds = None - # if self.ui.checkbox_norm_range.isChecked(): - # bounds = ( - # self.ui.spinbox_norm_range_start.value(), - # self.ui.spinbox_norm_range_end.value(), - # ) - # window_lag = None - # if self.ui.checkbox_norm_lag.isChecked(): - # window_lag = ( - # self.ui.spinbox_norm_window.value(), - # self.ui.spinbox_norm_lag.value(), - # ) - # with LoadingManager(self, "Calculating...") as lm: - # self.ui.image_viewer.norm( - # operation=name, - # use=self.ui.combobox_norm.currentText(), - # beta=self.ui.spinbox_norm_beta.value() / 100.0, - # gaussian_blur=self.ui.spinbox_norm_blur.value(), - # bounds=bounds, - # background=self.ui.checkbox_norm_bg.isChecked(), - # window_lag=window_lag, - # force_calculation=True, - # ) - # log(f"Normalized in {lm.duration:.2f}s") - # self.update_statusbar() - def _normalization(self, name: str) -> None: if ((not self.ui.checkbox_norm_range.isChecked() and not self.ui.checkbox_norm_bg.isChecked() @@ -621,6 +589,7 @@ def start_live_view(self) -> None: buffer=self.ui.spinbox_buffer_size.value(), frame_rate=self.ui.spinbox_frame_pause.value(), grayscale=self.ui.checkbox_load_grayscale.isChecked(), + downsample=self.ui.spinbox_downsample.value(), ) if not self._live_view.available: self._live_view = None diff --git a/blitz/layout/ui.py b/blitz/layout/ui.py index 9787056..aac5529 100644 --- a/blitz/layout/ui.py +++ b/blitz/layout/ui.py @@ -6,8 +6,9 @@ from PyQt5.QtWidgets import (QApplication, QCheckBox, QComboBox, QDoubleSpinBox, QFrame, QGridLayout, QHBoxLayout, QLabel, QLayout, QLineEdit, QMenu, QMenuBar, - QPushButton, QScrollArea, QSpinBox, QStatusBar, - QStyle, QTabWidget, QVBoxLayout, QWidget, QSizePolicy) + QPushButton, QScrollArea, QSizePolicy, QSpinBox, + QStatusBar, QStyle, QTabWidget, QVBoxLayout, + QWidget) from pyqtgraph.dockarea import Dock, DockArea from .. import __version__, resources, settings @@ -313,6 +314,11 @@ def setup_option_dock(self) -> None: self.spinbox_buffer_size = QSpinBox() self.spinbox_buffer_size.setMinimum(1) self.spinbox_buffer_size.setMaximum(1000) + label_downsample = QLabel("Downsample") + self.spinbox_downsample = QDoubleSpinBox() + self.spinbox_downsample.setSingleStep(0.01) + self.spinbox_downsample.setMinimum(0.01) + self.spinbox_downsample.setMaximum(1.0) gridlay_camera = QGridLayout() gridlay_camera.addWidget(label_camera, 0, 0, 1, 1) gridlay_camera.addWidget(self.spinbox_camera, 0, 1, 1, 1) @@ -320,6 +326,8 @@ def setup_option_dock(self) -> None: gridlay_camera.addWidget(self.spinbox_frame_pause, 1, 1, 1, 1) gridlay_camera.addWidget(label_buffer, 2, 0, 1, 1) gridlay_camera.addWidget(self.spinbox_buffer_size, 2, 1, 1, 1) + gridlay_camera.addWidget(label_downsample, 3, 0, 1, 1) + gridlay_camera.addWidget(self.spinbox_downsample, 3, 1, 1, 1) file_layout.addLayout(gridlay_camera) self.button_watch_start = QPushButton("start") self.button_watch_stop = QPushButton("stop") diff --git a/blitz/resources.py b/blitz/resources.py index a895410..a7cce82 100644 --- a/blitz/resources.py +++ b/blitz/resources.py @@ -1071,7 +1071,7 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x1c\x91\ +\x00\x00\x1d\x23\ \x7b\ \x0d\x0a\x20\x20\x20\x20\x22\x61\x63\x74\x69\x6f\x6e\x5f\x6f\x70\ \x65\x6e\x5f\x66\x69\x6c\x65\x22\x3a\x20\x22\x53\x65\x6c\x65\x63\ @@ -1202,335 +1202,344 @@ \x20\x69\x6d\x61\x67\x65\x73\x20\x74\x68\x61\x74\x20\x63\x61\x6e\ \x20\x62\x65\x20\x73\x74\x6f\x72\x65\x64\x20\x69\x6e\x20\x74\x68\ \x65\x20\x62\x75\x66\x66\x65\x72\x20\x61\x74\x20\x6f\x6e\x63\x65\ -\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\ -\x6b\x62\x6f\x78\x5f\x6d\x61\x73\x6b\x22\x3a\x20\x22\x53\x68\x6f\ -\x77\x73\x20\x61\x20\x72\x65\x63\x74\x61\x6e\x67\x75\x6c\x61\x72\ -\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x61\x72\x65\x61\x2e\ -\x20\x52\x65\x73\x69\x7a\x65\x20\x61\x6e\x64\x20\x61\x70\x70\x6c\ -\x79\x20\x66\x6f\x72\x20\x6d\x61\x73\x6b\x69\x6e\x67\x20\x61\x6c\ -\x6c\x20\x69\x6d\x61\x67\x65\x73\x2e\x22\x2c\x0d\x0a\x20\x20\x20\ -\x20\x22\x62\x75\x74\x74\x6f\x6e\x5f\x72\x65\x73\x65\x74\x5f\x6d\ -\x61\x73\x6b\x22\x3a\x20\x22\x52\x65\x73\x65\x74\x73\x20\x74\x68\ -\x65\x20\x6d\x61\x73\x6b\x20\x61\x6e\x64\x20\x73\x68\x6f\x77\x73\ -\x20\x74\x68\x65\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x69\x6d\ -\x61\x67\x65\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x62\x75\x74\ -\x74\x6f\x6e\x5f\x69\x6d\x61\x67\x65\x5f\x6d\x61\x73\x6b\x22\x3a\ -\x20\x22\x53\x65\x6c\x65\x63\x74\x20\x61\x20\x62\x69\x6e\x61\x72\ -\x79\x20\x69\x6d\x61\x67\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x73\ -\x61\x6d\x65\x20\x73\x69\x7a\x65\x20\x61\x73\x20\x74\x68\x65\x20\ -\x63\x75\x72\x72\x65\x6e\x74\x20\x64\x61\x74\x61\x20\x74\x6f\x20\ -\x6d\x61\x73\x6b\x20\x61\x6c\x6c\x20\x70\x69\x78\x65\x6c\x73\x20\ -\x77\x68\x65\x72\x65\x20\x74\x68\x61\x74\x20\x69\x6d\x61\x67\x65\ -\x20\x68\x61\x73\x20\x76\x61\x6c\x75\x65\x20\x31\x2e\x22\x2c\x0d\ -\x0a\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\x6e\x62\x6f\x78\x5f\ -\x77\x69\x64\x74\x68\x5f\x68\x22\x3a\x20\x22\x43\x68\x61\x6e\x67\ -\x65\x73\x20\x74\x68\x65\x20\x61\x72\x65\x61\x20\x6f\x66\x20\x74\ -\x68\x65\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x6c\x69\ -\x6e\x65\x2e\x20\x54\x68\x65\x20\x75\x70\x70\x65\x72\x20\x70\x6c\ -\x6f\x74\x20\x73\x68\x6f\x77\x73\x20\x74\x68\x65\x20\x6d\x65\x61\ -\x6e\x20\x6f\x76\x65\x72\x20\x61\x6c\x6c\x20\x76\x65\x72\x74\x69\ -\x63\x61\x6c\x20\x70\x69\x78\x65\x6c\x73\x20\x61\x74\x20\x6f\x6e\ -\x65\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x22\x2c\x0d\x0a\x20\ -\x20\x20\x20\x22\x73\x70\x69\x6e\x62\x6f\x78\x5f\x77\x69\x64\x74\ -\x68\x5f\x76\x22\x3a\x20\x22\x43\x68\x61\x6e\x67\x65\x73\x20\x74\ -\x68\x65\x20\x61\x72\x65\x61\x20\x6f\x66\x20\x74\x68\x65\x20\x76\ -\x65\x72\x74\x69\x63\x61\x6c\x20\x6c\x69\x6e\x65\x2e\x20\x54\x68\ -\x65\x20\x6c\x65\x66\x74\x20\x70\x6c\x6f\x74\x20\x73\x68\x6f\x77\ -\x73\x20\x74\x68\x65\x20\x6d\x65\x61\x6e\x20\x6f\x76\x65\x72\x20\ -\x61\x6c\x6c\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x70\ -\x69\x78\x65\x6c\x73\x20\x61\x74\x20\x6f\x6e\x65\x20\x70\x6f\x73\ -\x69\x74\x69\x6f\x6e\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\ -\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\x69\x22\x3a\x20\ -\x22\x54\x75\x72\x6e\x20\x6f\x6e\x20\x74\x68\x65\x20\x52\x4f\x49\ -\x20\x74\x68\x61\x74\x20\x73\x68\x6f\x77\x73\x20\x74\x68\x65\x20\ -\x6d\x65\x61\x6e\x20\x6f\x66\x20\x61\x6c\x6c\x20\x70\x69\x78\x65\ -\x6c\x73\x20\x69\x6e\x20\x69\x74\x73\x20\x72\x61\x6e\x67\x65\x20\ -\x6f\x76\x65\x72\x20\x74\x69\x6d\x65\x2e\x22\x2c\x0d\x0a\x20\x20\ -\x20\x20\x22\x63\x6f\x6d\x62\x6f\x62\x6f\x78\x5f\x72\x6f\x69\x22\ -\x3a\x20\x22\x43\x68\x6f\x6f\x73\x65\x20\x61\x20\x66\x6f\x72\x6d\ -\x61\x74\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x52\x4f\x49\x2e\x22\ -\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\ -\x5f\x72\x6f\x69\x5f\x64\x72\x6f\x70\x22\x3a\x20\x22\x57\x68\x65\ -\x74\x68\x65\x72\x20\x74\x6f\x20\x75\x70\x64\x61\x74\x65\x20\x74\ -\x68\x65\x20\x52\x4f\x49\x20\x70\x6c\x6f\x74\x20\x28\x6c\x6f\x77\ -\x65\x72\x20\x77\x69\x6e\x64\x6f\x77\x29\x20\x75\x70\x6f\x6e\x20\ -\x64\x72\x61\x67\x67\x69\x6e\x67\x20\x74\x68\x65\x20\x52\x4f\x49\ -\x20\x6f\x72\x20\x6f\x6e\x6c\x79\x20\x6f\x6e\x20\x64\x72\x6f\x70\ -\x20\x28\x72\x65\x6c\x65\x61\x73\x69\x6e\x67\x20\x74\x68\x65\x20\ -\x6d\x6f\x75\x73\x65\x20\x62\x75\x74\x74\x6f\x6e\x29\x2e\x22\x2c\ -\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x62\x75\x74\x74\x6f\x6e\x5f\ -\x63\x72\x6f\x70\x22\x3a\x20\x22\x43\x72\x6f\x70\x20\x74\x68\x65\ -\x20\x69\x6d\x61\x67\x65\x20\x64\x61\x74\x61\x73\x65\x74\x20\x74\ -\x6f\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x73\x65\x6c\x65\ -\x63\x74\x65\x64\x20\x74\x69\x6d\x65\x20\x69\x6e\x74\x65\x72\x76\ -\x61\x6c\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x62\x75\x74\x74\ -\x6f\x6e\x5f\x63\x72\x6f\x70\x5f\x75\x6e\x64\x6f\x22\x3a\x20\x22\ -\x52\x65\x6c\x6f\x61\x64\x73\x20\x74\x68\x65\x20\x6c\x61\x73\x74\ -\x20\x73\x61\x76\x65\x64\x20\x64\x61\x74\x61\x73\x65\x74\x2e\x20\ -\x49\x66\x20\x75\x6e\x63\x72\x6f\x70\x70\x65\x64\x20\x64\x61\x74\ -\x61\x20\x77\x61\x73\x20\x6e\x6f\x74\x20\x73\x61\x76\x65\x64\x20\ -\x69\x6e\x20\x52\x41\x4d\x2c\x20\x69\x6e\x73\x74\x65\x61\x64\x20\ -\x6c\x6f\x61\x64\x73\x20\x69\x74\x20\x66\x72\x6f\x6d\x20\x74\x68\ -\x65\x20\x6c\x61\x73\x74\x20\x6c\x6f\x61\x64\x65\x64\x20\x70\x61\ -\x74\x68\x20\x61\x67\x61\x69\x6e\x2e\x22\x2c\x0d\x0a\x20\x20\x20\ -\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x63\x72\x6f\x70\x5f\ -\x6b\x65\x65\x70\x22\x3a\x20\x22\x49\x66\x20\x73\x65\x6c\x65\x63\ -\x74\x65\x64\x2c\x20\x6b\x65\x65\x70\x73\x20\x74\x68\x65\x20\x66\ -\x75\x6c\x6c\x20\x64\x61\x74\x61\x73\x65\x74\x20\x69\x6e\x20\x52\ -\x41\x4d\x2e\x20\x43\x61\x6e\x20\x62\x65\x20\x72\x65\x74\x72\x69\ -\x65\x76\x65\x64\x20\x62\x79\x20\x27\x75\x6e\x64\x6f\x27\x2e\x22\ -\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\ -\x5f\x63\x72\x6f\x70\x5f\x73\x68\x6f\x77\x5f\x72\x61\x6e\x67\x65\ -\x22\x3a\x20\x22\x53\x68\x6f\x77\x20\x61\x20\x62\x6c\x75\x65\x20\ -\x62\x6f\x78\x20\x69\x6e\x20\x74\x68\x65\x20\x74\x69\x6d\x65\x6c\ -\x69\x6e\x65\x20\x74\x6f\x20\x73\x65\x6c\x65\x63\x74\x20\x61\x20\ -\x74\x69\x6d\x65\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x2e\x22\x2c\ -\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\x6e\x62\x6f\x78\x5f\x63\ -\x72\x6f\x70\x5f\x72\x61\x6e\x67\x65\x5f\x73\x74\x61\x72\x74\x22\ -\x3a\x20\x22\x49\x6e\x64\x65\x78\x20\x6f\x66\x20\x74\x68\x65\x20\ -\x66\x69\x72\x73\x74\x20\x69\x6d\x61\x67\x65\x20\x69\x6e\x20\x74\ -\x68\x65\x20\x63\x72\x6f\x70\x70\x65\x64\x20\x64\x61\x74\x61\x73\ -\x65\x74\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\x6e\ -\x62\x6f\x78\x5f\x63\x72\x6f\x70\x5f\x72\x61\x6e\x67\x65\x5f\x65\ -\x6e\x64\x22\x3a\x20\x22\x49\x6e\x64\x65\x78\x20\x6f\x66\x20\x74\ -\x68\x65\x20\x6c\x61\x73\x74\x20\x69\x6d\x61\x67\x65\x20\x69\x6e\ -\x20\x74\x68\x65\x20\x63\x72\x6f\x70\x70\x65\x64\x20\x64\x61\x74\ -\x61\x73\x65\x74\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\ -\x6c\x61\x62\x65\x6c\x5f\x72\x65\x64\x75\x63\x65\x22\x3a\x20\x22\ -\x54\x65\x6d\x70\x6f\x72\x61\x6c\x20\x44\x69\x6d\x65\x6e\x73\x69\ -\x6f\x6e\x61\x6c\x69\x74\x79\x20\x52\x65\x64\x75\x63\x74\x69\x6f\ -\x6e\x3a\x20\x43\x72\x65\x61\x74\x65\x20\x73\x75\x6d\x6d\x61\x72\ -\x79\x20\x69\x6d\x61\x67\x65\x73\x20\x62\x79\x20\x61\x67\x67\x72\ -\x65\x67\x61\x74\x69\x6e\x67\x20\x70\x69\x78\x65\x6c\x20\x76\x61\ -\x6c\x75\x65\x73\x20\x28\x65\x2e\x67\x2e\x20\x6d\x65\x61\x6e\x29\ -\x20\x61\x63\x72\x6f\x73\x73\x20\x61\x20\x74\x69\x6d\x65\x20\x73\ -\x65\x72\x69\x65\x73\x20\x6f\x66\x20\x69\x6d\x61\x67\x65\x73\x2e\ -\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x6f\x6d\x62\x6f\x62\x6f\ -\x78\x5f\x72\x65\x64\x75\x63\x65\x22\x3a\x20\x22\x43\x61\x6c\x63\ -\x75\x6c\x61\x74\x65\x20\x61\x20\x6d\x65\x74\x72\x69\x63\x20\x6f\ -\x6e\x20\x74\x68\x65\x20\x74\x69\x6d\x65\x20\x61\x78\x69\x73\x2c\ -\x20\x65\x2e\x67\x2e\x20\x6d\x65\x61\x6e\x20\x6f\x66\x20\x61\x6c\ -\x6c\x20\x69\x6d\x61\x67\x65\x73\x20\x6c\x6f\x61\x64\x65\x64\x2e\ -\x20\x54\x68\x69\x73\x20\x76\x69\x73\x75\x61\x6c\x69\x7a\x65\x73\ -\x20\x61\x20\x73\x69\x6e\x67\x6c\x65\x20\x69\x6d\x61\x67\x65\x2e\ -\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\ -\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x72\x61\x6e\x67\x65\x22\x3a\ -\x20\x22\x53\x65\x6c\x65\x63\x74\x20\x74\x68\x69\x73\x20\x74\x6f\ -\x20\x70\x65\x72\x66\x6f\x72\x6d\x20\x61\x20\x6e\x6f\x72\x6d\x61\ -\x6c\x69\x7a\x61\x74\x69\x6f\x6e\x20\x6f\x76\x65\x72\x20\x74\x68\ -\x65\x20\x67\x69\x76\x65\x6e\x20\x74\x69\x6d\x65\x20\x69\x6e\x74\ -\x65\x72\x76\x61\x6c\x20\x2f\x20\x69\x6d\x61\x67\x65\x20\x69\x6e\ -\x64\x69\x63\x65\x73\x2e\x20\x53\x75\x62\x74\x72\x61\x63\x74\x73\ -\x20\x6f\x72\x20\x64\x69\x76\x69\x64\x65\x73\x20\x65\x61\x63\x68\ -\x20\x69\x6d\x61\x67\x65\x20\x62\x79\x20\x74\x68\x65\x20\x6d\x65\ -\x61\x6e\x20\x6f\x66\x20\x61\x6c\x6c\x20\x69\x6d\x61\x67\x65\x73\ -\x20\x69\x6e\x20\x74\x68\x65\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\ +\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\x6e\x62\x6f\ +\x78\x5f\x64\x6f\x77\x6e\x73\x61\x6d\x70\x6c\x65\x22\x3a\x20\x22\ +\x54\x68\x65\x20\x72\x61\x74\x69\x6f\x20\x6f\x66\x20\x74\x68\x65\ +\x20\x64\x6f\x77\x6e\x73\x61\x6d\x70\x6c\x65\x64\x20\x69\x6d\x61\ +\x67\x65\x20\x73\x69\x7a\x65\x20\x61\x6e\x64\x20\x74\x68\x65\x20\ +\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x73\x69\x7a\x65\x20\x61\x73\ +\x20\x61\x20\x6e\x75\x6d\x62\x65\x72\x20\x62\x65\x74\x77\x65\x65\ +\x6e\x20\x30\x20\x61\x6e\x64\x20\x31\x2e\x20\x31\x20\x6d\x65\x61\ +\x6e\x73\x20\x6e\x6f\x20\x64\x6f\x77\x6e\x73\x61\x6d\x70\x6c\x69\ +\x6e\x67\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\ +\x65\x63\x6b\x62\x6f\x78\x5f\x6d\x61\x73\x6b\x22\x3a\x20\x22\x53\ +\x68\x6f\x77\x73\x20\x61\x20\x72\x65\x63\x74\x61\x6e\x67\x75\x6c\ +\x61\x72\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x61\x72\x65\ +\x61\x2e\x20\x52\x65\x73\x69\x7a\x65\x20\x61\x6e\x64\x20\x61\x70\ +\x70\x6c\x79\x20\x66\x6f\x72\x20\x6d\x61\x73\x6b\x69\x6e\x67\x20\ +\x61\x6c\x6c\x20\x69\x6d\x61\x67\x65\x73\x2e\x22\x2c\x0d\x0a\x20\ +\x20\x20\x20\x22\x62\x75\x74\x74\x6f\x6e\x5f\x72\x65\x73\x65\x74\ +\x5f\x6d\x61\x73\x6b\x22\x3a\x20\x22\x52\x65\x73\x65\x74\x73\x20\ +\x74\x68\x65\x20\x6d\x61\x73\x6b\x20\x61\x6e\x64\x20\x73\x68\x6f\ +\x77\x73\x20\x74\x68\x65\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\ +\x69\x6d\x61\x67\x65\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x62\ +\x75\x74\x74\x6f\x6e\x5f\x69\x6d\x61\x67\x65\x5f\x6d\x61\x73\x6b\ +\x22\x3a\x20\x22\x53\x65\x6c\x65\x63\x74\x20\x61\x20\x62\x69\x6e\ +\x61\x72\x79\x20\x69\x6d\x61\x67\x65\x20\x6f\x66\x20\x74\x68\x65\ +\x20\x73\x61\x6d\x65\x20\x73\x69\x7a\x65\x20\x61\x73\x20\x74\x68\ +\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x64\x61\x74\x61\x20\x74\ +\x6f\x20\x6d\x61\x73\x6b\x20\x61\x6c\x6c\x20\x70\x69\x78\x65\x6c\ +\x73\x20\x77\x68\x65\x72\x65\x20\x74\x68\x61\x74\x20\x69\x6d\x61\ +\x67\x65\x20\x68\x61\x73\x20\x76\x61\x6c\x75\x65\x20\x31\x2e\x22\ +\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\x6e\x62\x6f\ +\x78\x5f\x77\x69\x64\x74\x68\x5f\x68\x22\x3a\x20\x22\x43\x68\x61\ +\x6e\x67\x65\x73\x20\x74\x68\x65\x20\x61\x72\x65\x61\x20\x6f\x66\ +\x20\x74\x68\x65\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\ +\x6c\x69\x6e\x65\x2e\x20\x54\x68\x65\x20\x75\x70\x70\x65\x72\x20\ +\x70\x6c\x6f\x74\x20\x73\x68\x6f\x77\x73\x20\x74\x68\x65\x20\x6d\ +\x65\x61\x6e\x20\x6f\x76\x65\x72\x20\x61\x6c\x6c\x20\x76\x65\x72\ +\x74\x69\x63\x61\x6c\x20\x70\x69\x78\x65\x6c\x73\x20\x61\x74\x20\ +\x6f\x6e\x65\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x22\x2c\x0d\ +\x0a\x20\x20\x20\x20\x22\x73\x70\x69\x6e\x62\x6f\x78\x5f\x77\x69\ +\x64\x74\x68\x5f\x76\x22\x3a\x20\x22\x43\x68\x61\x6e\x67\x65\x73\ +\x20\x74\x68\x65\x20\x61\x72\x65\x61\x20\x6f\x66\x20\x74\x68\x65\ +\x20\x76\x65\x72\x74\x69\x63\x61\x6c\x20\x6c\x69\x6e\x65\x2e\x20\ +\x54\x68\x65\x20\x6c\x65\x66\x74\x20\x70\x6c\x6f\x74\x20\x73\x68\ +\x6f\x77\x73\x20\x74\x68\x65\x20\x6d\x65\x61\x6e\x20\x6f\x76\x65\ +\x72\x20\x61\x6c\x6c\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\ +\x20\x70\x69\x78\x65\x6c\x73\x20\x61\x74\x20\x6f\x6e\x65\x20\x70\ +\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\ +\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\x69\x22\ +\x3a\x20\x22\x54\x75\x72\x6e\x20\x6f\x6e\x20\x74\x68\x65\x20\x52\ +\x4f\x49\x20\x74\x68\x61\x74\x20\x73\x68\x6f\x77\x73\x20\x74\x68\ +\x65\x20\x6d\x65\x61\x6e\x20\x6f\x66\x20\x61\x6c\x6c\x20\x70\x69\ +\x78\x65\x6c\x73\x20\x69\x6e\x20\x69\x74\x73\x20\x72\x61\x6e\x67\ +\x65\x20\x6f\x76\x65\x72\x20\x74\x69\x6d\x65\x2e\x22\x2c\x0d\x0a\ +\x20\x20\x20\x20\x22\x63\x6f\x6d\x62\x6f\x62\x6f\x78\x5f\x72\x6f\ +\x69\x22\x3a\x20\x22\x43\x68\x6f\x6f\x73\x65\x20\x61\x20\x66\x6f\ +\x72\x6d\x61\x74\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x52\x4f\x49\ +\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\ +\x6f\x78\x5f\x72\x6f\x69\x5f\x64\x72\x6f\x70\x22\x3a\x20\x22\x57\ +\x68\x65\x74\x68\x65\x72\x20\x74\x6f\x20\x75\x70\x64\x61\x74\x65\ +\x20\x74\x68\x65\x20\x52\x4f\x49\x20\x70\x6c\x6f\x74\x20\x28\x6c\ +\x6f\x77\x65\x72\x20\x77\x69\x6e\x64\x6f\x77\x29\x20\x75\x70\x6f\ +\x6e\x20\x64\x72\x61\x67\x67\x69\x6e\x67\x20\x74\x68\x65\x20\x52\ +\x4f\x49\x20\x6f\x72\x20\x6f\x6e\x6c\x79\x20\x6f\x6e\x20\x64\x72\ +\x6f\x70\x20\x28\x72\x65\x6c\x65\x61\x73\x69\x6e\x67\x20\x74\x68\ +\x65\x20\x6d\x6f\x75\x73\x65\x20\x62\x75\x74\x74\x6f\x6e\x29\x2e\ +\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x62\x75\x74\x74\x6f\ +\x6e\x5f\x63\x72\x6f\x70\x22\x3a\x20\x22\x43\x72\x6f\x70\x20\x74\ +\x68\x65\x20\x69\x6d\x61\x67\x65\x20\x64\x61\x74\x61\x73\x65\x74\ +\x20\x74\x6f\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x73\x65\ +\x6c\x65\x63\x74\x65\x64\x20\x74\x69\x6d\x65\x20\x69\x6e\x74\x65\ +\x72\x76\x61\x6c\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x62\x75\ +\x74\x74\x6f\x6e\x5f\x63\x72\x6f\x70\x5f\x75\x6e\x64\x6f\x22\x3a\ +\x20\x22\x52\x65\x6c\x6f\x61\x64\x73\x20\x74\x68\x65\x20\x6c\x61\ +\x73\x74\x20\x73\x61\x76\x65\x64\x20\x64\x61\x74\x61\x73\x65\x74\ +\x2e\x20\x49\x66\x20\x75\x6e\x63\x72\x6f\x70\x70\x65\x64\x20\x64\ +\x61\x74\x61\x20\x77\x61\x73\x20\x6e\x6f\x74\x20\x73\x61\x76\x65\ +\x64\x20\x69\x6e\x20\x52\x41\x4d\x2c\x20\x69\x6e\x73\x74\x65\x61\ +\x64\x20\x6c\x6f\x61\x64\x73\x20\x69\x74\x20\x66\x72\x6f\x6d\x20\ +\x74\x68\x65\x20\x6c\x61\x73\x74\x20\x6c\x6f\x61\x64\x65\x64\x20\ +\x70\x61\x74\x68\x20\x61\x67\x61\x69\x6e\x2e\x22\x2c\x0d\x0a\x20\ +\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x63\x72\x6f\ +\x70\x5f\x6b\x65\x65\x70\x22\x3a\x20\x22\x49\x66\x20\x73\x65\x6c\ +\x65\x63\x74\x65\x64\x2c\x20\x6b\x65\x65\x70\x73\x20\x74\x68\x65\ +\x20\x66\x75\x6c\x6c\x20\x64\x61\x74\x61\x73\x65\x74\x20\x69\x6e\ +\x20\x52\x41\x4d\x2e\x20\x43\x61\x6e\x20\x62\x65\x20\x72\x65\x74\ +\x72\x69\x65\x76\x65\x64\x20\x62\x79\x20\x27\x75\x6e\x64\x6f\x27\ \x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\ -\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x73\x68\x6f\x77\x5f\x72\x61\x6e\ +\x6f\x78\x5f\x63\x72\x6f\x70\x5f\x73\x68\x6f\x77\x5f\x72\x61\x6e\ \x67\x65\x22\x3a\x20\x22\x53\x68\x6f\x77\x20\x61\x20\x62\x6c\x75\ \x65\x20\x62\x6f\x78\x20\x69\x6e\x20\x74\x68\x65\x20\x74\x69\x6d\ \x65\x6c\x69\x6e\x65\x20\x74\x6f\x20\x73\x65\x6c\x65\x63\x74\x20\ \x61\x20\x74\x69\x6d\x65\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x2e\ -\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\ -\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x62\x67\x22\x3a\x20\x22\x53\ -\x65\x6c\x65\x63\x74\x20\x74\x68\x69\x73\x20\x74\x6f\x20\x73\x75\ -\x62\x74\x72\x61\x63\x74\x20\x6f\x72\x20\x64\x69\x76\x69\x64\x65\ -\x20\x65\x61\x63\x68\x20\x69\x6d\x61\x67\x65\x20\x62\x79\x20\x61\ -\x20\x67\x69\x76\x65\x6e\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\ -\x64\x20\x69\x6d\x61\x67\x65\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\ -\x22\x62\x75\x74\x74\x6f\x6e\x5f\x62\x67\x5f\x69\x6e\x70\x75\x74\ -\x22\x3a\x20\x22\x53\x65\x6c\x65\x63\x74\x20\x61\x6e\x20\x69\x6d\ -\x61\x67\x65\x20\x74\x68\x61\x74\x20\x69\x73\x20\x6f\x66\x20\x73\ -\x61\x6d\x65\x20\x73\x69\x7a\x65\x20\x61\x73\x20\x74\x68\x65\x20\ -\x63\x75\x72\x72\x65\x6e\x74\x6c\x79\x20\x6c\x6f\x61\x64\x65\x64\ -\x20\x64\x61\x74\x61\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\ -\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x6c\ -\x61\x67\x22\x3a\x20\x22\x53\x65\x6c\x65\x63\x74\x20\x74\x68\x69\ -\x73\x20\x74\x6f\x20\x73\x75\x62\x74\x72\x61\x63\x74\x20\x74\x68\ -\x65\x20\x6d\x65\x61\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x6e\x65\ -\x78\x74\x20\x5b\x6c\x61\x67\x5d\x20\x74\x6f\x20\x5b\x6c\x61\x67\ -\x2b\x77\x69\x6e\x64\x6f\x77\x5d\x20\x69\x6d\x61\x67\x65\x73\x20\ -\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\ -\x20\x74\x69\x6d\x65\x20\x73\x74\x65\x70\x2e\x20\x4d\x69\x67\x68\ -\x74\x20\x72\x65\x64\x75\x63\x65\x20\x74\x68\x65\x20\x6e\x75\x6d\ -\x62\x65\x72\x20\x6f\x66\x20\x69\x6d\x61\x67\x65\x73\x20\x73\x68\ -\x6f\x77\x6e\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\ -\x6e\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x77\x69\x6e\x64\x6f\x77\ -\x22\x3a\x20\x22\x54\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\ -\x66\x20\x69\x6d\x61\x67\x65\x73\x20\x74\x6f\x20\x63\x61\x6c\x63\ -\x75\x6c\x61\x74\x65\x20\x74\x68\x65\x20\x6d\x65\x61\x6e\x20\x6f\ -\x76\x65\x72\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\ -\x6e\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x6c\x61\x67\x22\x3a\x20\ -\x22\x54\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x69\ -\x6d\x61\x67\x65\x73\x20\x74\x6f\x20\x73\x6b\x69\x70\x20\x62\x65\ -\x66\x6f\x72\x65\x20\x63\x6f\x6d\x70\x75\x74\x69\x6e\x67\x20\x74\ -\x68\x65\x20\x73\x6c\x69\x64\x69\x6e\x67\x20\x6d\x65\x61\x6e\x20\ -\x61\x6e\x64\x20\x73\x75\x62\x74\x72\x61\x63\x74\x69\x6e\x67\x20\ -\x74\x68\x69\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x63\x75\ -\x72\x72\x65\x6e\x74\x20\x74\x69\x6d\x65\x20\x73\x74\x65\x70\x2e\ \x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\x6e\x62\x6f\x78\ -\x5f\x6e\x6f\x72\x6d\x5f\x62\x65\x74\x61\x22\x3a\x20\x22\x50\x65\ -\x72\x63\x65\x6e\x74\x61\x67\x65\x20\x6f\x66\x20\x74\x68\x65\x20\ -\x69\x6d\x61\x67\x65\x20\x74\x68\x61\x74\x20\x69\x73\x20\x73\x75\ -\x62\x74\x72\x61\x63\x74\x65\x64\x20\x6f\x72\x20\x64\x69\x76\x69\ -\x64\x65\x64\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\ -\x6e\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x62\x6c\x75\x72\x22\x3a\ -\x20\x22\x42\x6c\x75\x72\x73\x20\x74\x68\x65\x20\x69\x6d\x61\x67\ -\x65\x20\x74\x68\x61\x74\x20\x69\x73\x20\x73\x75\x62\x74\x72\x61\ -\x63\x74\x65\x64\x20\x6f\x72\x20\x64\x69\x76\x69\x64\x65\x64\x20\ -\x75\x73\x69\x6e\x67\x20\x61\x20\x47\x61\x75\x73\x73\x69\x61\x6e\ -\x20\x6b\x65\x72\x6e\x65\x6c\x20\x6f\x66\x20\x74\x68\x65\x20\x67\ -\x69\x76\x65\x6e\x20\x73\x69\x7a\x65\x2e\x22\x2c\x0d\x0a\x20\x20\ +\x5f\x63\x72\x6f\x70\x5f\x72\x61\x6e\x67\x65\x5f\x73\x74\x61\x72\ +\x74\x22\x3a\x20\x22\x49\x6e\x64\x65\x78\x20\x6f\x66\x20\x74\x68\ +\x65\x20\x66\x69\x72\x73\x74\x20\x69\x6d\x61\x67\x65\x20\x69\x6e\ +\x20\x74\x68\x65\x20\x63\x72\x6f\x70\x70\x65\x64\x20\x64\x61\x74\ +\x61\x73\x65\x74\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\ +\x69\x6e\x62\x6f\x78\x5f\x63\x72\x6f\x70\x5f\x72\x61\x6e\x67\x65\ +\x5f\x65\x6e\x64\x22\x3a\x20\x22\x49\x6e\x64\x65\x78\x20\x6f\x66\ +\x20\x74\x68\x65\x20\x6c\x61\x73\x74\x20\x69\x6d\x61\x67\x65\x20\ +\x69\x6e\x20\x74\x68\x65\x20\x63\x72\x6f\x70\x70\x65\x64\x20\x64\ +\x61\x74\x61\x73\x65\x74\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\ +\x20\x22\x6c\x61\x62\x65\x6c\x5f\x72\x65\x64\x75\x63\x65\x22\x3a\ +\x20\x22\x54\x65\x6d\x70\x6f\x72\x61\x6c\x20\x44\x69\x6d\x65\x6e\ +\x73\x69\x6f\x6e\x61\x6c\x69\x74\x79\x20\x52\x65\x64\x75\x63\x74\ +\x69\x6f\x6e\x3a\x20\x43\x72\x65\x61\x74\x65\x20\x73\x75\x6d\x6d\ +\x61\x72\x79\x20\x69\x6d\x61\x67\x65\x73\x20\x62\x79\x20\x61\x67\ +\x67\x72\x65\x67\x61\x74\x69\x6e\x67\x20\x70\x69\x78\x65\x6c\x20\ +\x76\x61\x6c\x75\x65\x73\x20\x28\x65\x2e\x67\x2e\x20\x6d\x65\x61\ +\x6e\x29\x20\x61\x63\x72\x6f\x73\x73\x20\x61\x20\x74\x69\x6d\x65\ +\x20\x73\x65\x72\x69\x65\x73\x20\x6f\x66\x20\x69\x6d\x61\x67\x65\ +\x73\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x6f\x6d\x62\x6f\ +\x62\x6f\x78\x5f\x72\x65\x64\x75\x63\x65\x22\x3a\x20\x22\x43\x61\ +\x6c\x63\x75\x6c\x61\x74\x65\x20\x61\x20\x6d\x65\x74\x72\x69\x63\ +\x20\x6f\x6e\x20\x74\x68\x65\x20\x74\x69\x6d\x65\x20\x61\x78\x69\ +\x73\x2c\x20\x65\x2e\x67\x2e\x20\x6d\x65\x61\x6e\x20\x6f\x66\x20\ +\x61\x6c\x6c\x20\x69\x6d\x61\x67\x65\x73\x20\x6c\x6f\x61\x64\x65\ +\x64\x2e\x20\x54\x68\x69\x73\x20\x76\x69\x73\x75\x61\x6c\x69\x7a\ +\x65\x73\x20\x61\x20\x73\x69\x6e\x67\x6c\x65\x20\x69\x6d\x61\x67\ +\x65\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\ +\x63\x6b\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x72\x61\x6e\x67\x65\ +\x22\x3a\x20\x22\x53\x65\x6c\x65\x63\x74\x20\x74\x68\x69\x73\x20\ +\x74\x6f\x20\x70\x65\x72\x66\x6f\x72\x6d\x20\x61\x20\x6e\x6f\x72\ +\x6d\x61\x6c\x69\x7a\x61\x74\x69\x6f\x6e\x20\x6f\x76\x65\x72\x20\ +\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x74\x69\x6d\x65\x20\x69\ +\x6e\x74\x65\x72\x76\x61\x6c\x20\x2f\x20\x69\x6d\x61\x67\x65\x20\ +\x69\x6e\x64\x69\x63\x65\x73\x2e\x20\x53\x75\x62\x74\x72\x61\x63\ +\x74\x73\x20\x6f\x72\x20\x64\x69\x76\x69\x64\x65\x73\x20\x65\x61\ +\x63\x68\x20\x69\x6d\x61\x67\x65\x20\x62\x79\x20\x74\x68\x65\x20\ +\x6d\x65\x61\x6e\x20\x6f\x66\x20\x61\x6c\x6c\x20\x69\x6d\x61\x67\ +\x65\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x69\x6e\x74\x65\x72\x76\ +\x61\x6c\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\ +\x6b\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x73\x68\x6f\x77\x5f\x72\ +\x61\x6e\x67\x65\x22\x3a\x20\x22\x53\x68\x6f\x77\x20\x61\x20\x62\ +\x6c\x75\x65\x20\x62\x6f\x78\x20\x69\x6e\x20\x74\x68\x65\x20\x74\ +\x69\x6d\x65\x6c\x69\x6e\x65\x20\x74\x6f\x20\x73\x65\x6c\x65\x63\ +\x74\x20\x61\x20\x74\x69\x6d\x65\x20\x69\x6e\x74\x65\x72\x76\x61\ +\x6c\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\ +\x63\x6b\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x62\x67\x22\x3a\x20\ +\x22\x53\x65\x6c\x65\x63\x74\x20\x74\x68\x69\x73\x20\x74\x6f\x20\ +\x73\x75\x62\x74\x72\x61\x63\x74\x20\x6f\x72\x20\x64\x69\x76\x69\ +\x64\x65\x20\x65\x61\x63\x68\x20\x69\x6d\x61\x67\x65\x20\x62\x79\ +\x20\x61\x20\x67\x69\x76\x65\x6e\x20\x62\x61\x63\x6b\x67\x72\x6f\ +\x75\x6e\x64\x20\x69\x6d\x61\x67\x65\x2e\x22\x2c\x0d\x0a\x20\x20\ +\x20\x20\x22\x62\x75\x74\x74\x6f\x6e\x5f\x62\x67\x5f\x69\x6e\x70\ +\x75\x74\x22\x3a\x20\x22\x53\x65\x6c\x65\x63\x74\x20\x61\x6e\x20\ +\x69\x6d\x61\x67\x65\x20\x74\x68\x61\x74\x20\x69\x73\x20\x6f\x66\ +\x20\x73\x61\x6d\x65\x20\x73\x69\x7a\x65\x20\x61\x73\x20\x74\x68\ +\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x6c\x79\x20\x6c\x6f\x61\x64\ +\x65\x64\x20\x64\x61\x74\x61\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\ \x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\ -\x5f\x73\x75\x62\x74\x72\x61\x63\x74\x22\x3a\x20\x22\x53\x75\x62\ -\x74\x72\x61\x63\x74\x20\x74\x68\x65\x20\x73\x65\x6c\x65\x63\x74\ -\x65\x64\x20\x69\x6d\x61\x67\x65\x20\x66\x72\x6f\x6d\x20\x61\x6c\ -\x6c\x20\x69\x6d\x61\x67\x65\x73\x2e\x22\x2c\x0d\x0a\x20\x20\x20\ -\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\ -\x64\x69\x76\x69\x64\x65\x22\x3a\x20\x22\x44\x69\x76\x69\x64\x65\ -\x20\x61\x6c\x6c\x20\x69\x6d\x61\x67\x65\x73\x20\x62\x79\x20\x74\ -\x68\x65\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x69\x6d\x61\x67\ -\x65\x2e\x20\x4d\x61\x6b\x65\x20\x73\x75\x72\x65\x20\x74\x68\x61\ -\x74\x20\x6e\x6f\x20\x64\x69\x76\x69\x73\x69\x6f\x6e\x2d\x62\x79\ -\x2d\x7a\x65\x72\x6f\x20\x6f\x63\x63\x75\x72\x73\x2e\x22\x2c\x0d\ -\x0a\x20\x20\x20\x20\x22\x63\x6f\x6d\x62\x6f\x62\x6f\x78\x5f\x6e\ -\x6f\x72\x6d\x22\x3a\x20\x22\x57\x68\x61\x74\x20\x6d\x65\x74\x72\ -\x69\x63\x20\x74\x6f\x20\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x20\ -\x6f\x6e\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x73\x65\x6c\ -\x65\x63\x74\x65\x64\x20\x69\x6d\x61\x67\x65\x20\x72\x61\x6e\x67\ -\x65\x20\x62\x65\x66\x6f\x72\x65\x20\x73\x75\x62\x74\x72\x61\x63\ -\x74\x69\x6e\x67\x20\x69\x74\x20\x66\x72\x6f\x6d\x20\x65\x61\x63\ -\x68\x20\x69\x6d\x61\x67\x65\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\ -\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x6d\x6d\x22\x3a\ -\x20\x22\x43\x6f\x6e\x76\x65\x72\x74\x20\x61\x6c\x6c\x20\x6c\x65\ -\x6e\x67\x74\x68\x73\x20\x69\x6e\x74\x6f\x20\x61\x6e\x20\x61\x72\ -\x62\x69\x74\x72\x61\x72\x79\x20\x75\x6e\x69\x74\x20\x28\x61\x75\ -\x29\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x70\x69\x78\ -\x65\x6c\x73\x20\x62\x61\x73\x65\x64\x20\x6f\x6e\x20\x61\x20\x6b\ -\x6e\x6f\x77\x6e\x20\x73\x63\x61\x6c\x65\x2e\x22\x2c\x0d\x0a\x20\ -\x20\x20\x20\x22\x74\x65\x78\x74\x62\x6f\x78\x5f\x61\x72\x65\x61\ -\x22\x3a\x20\x22\x53\x68\x6f\x77\x73\x20\x74\x68\x65\x20\x61\x72\ -\x65\x61\x20\x69\x6e\x20\x74\x68\x65\x20\x70\x6f\x6c\x79\x67\x6f\ -\x6e\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x74\x65\x78\x74\x62\ -\x6f\x78\x5f\x63\x69\x72\x63\x22\x3a\x20\x22\x53\x68\x6f\x77\x73\ -\x20\x74\x68\x65\x20\x63\x69\x72\x63\x75\x6d\x66\x65\x72\x65\x6e\ -\x63\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x6f\x6c\x79\x67\x6f\ -\x6e\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x74\x65\x78\x74\x62\ -\x6f\x78\x5f\x62\x6f\x75\x6e\x64\x69\x6e\x67\x5f\x72\x65\x63\x74\ -\x22\x3a\x20\x22\x53\x68\x6f\x77\x73\x20\x77\x69\x64\x74\x68\x20\ -\x61\x6e\x64\x20\x68\x65\x69\x67\x68\x74\x20\x6f\x66\x20\x74\x68\ -\x65\x20\x62\x6f\x75\x6e\x64\x69\x6e\x67\x20\x72\x65\x63\x74\x61\ -\x6e\x67\x6c\x65\x20\x65\x6e\x63\x6c\x6f\x73\x69\x6e\x67\x20\x74\ -\x68\x65\x20\x6d\x65\x61\x73\x75\x72\x65\x20\x74\x6f\x6f\x6c\x2e\ -\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\ -\x78\x5f\x73\x68\x6f\x77\x5f\x62\x6f\x75\x6e\x64\x69\x6e\x67\x5f\ -\x72\x65\x63\x74\x22\x3a\x20\x22\x53\x68\x6f\x77\x73\x20\x74\x68\ -\x65\x20\x62\x6f\x75\x6e\x64\x69\x6e\x67\x20\x72\x65\x63\x74\x61\ -\x6e\x67\x6c\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x6d\x65\x61\x73\ -\x75\x72\x65\x20\x74\x6f\x6f\x6c\x20\x69\x6e\x73\x69\x64\x65\x20\ -\x74\x68\x65\x20\x70\x6c\x6f\x74\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\ -\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\x73\ -\x65\x65\x5f\x6c\x6f\x63\x61\x6c\x5f\x65\x78\x74\x72\x65\x6d\x61\ -\x22\x3a\x20\x22\x55\x73\x65\x20\x6c\x6f\x63\x61\x6c\x20\x69\x6e\ -\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x67\x6c\x6f\x62\x61\x6c\x20\ -\x65\x78\x74\x72\x65\x6d\x61\x20\x74\x6f\x20\x63\x61\x6c\x63\x75\ -\x6c\x61\x74\x65\x20\x65\x76\x65\x6e\x74\x20\x69\x6e\x74\x65\x72\ -\x76\x61\x6c\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\ -\x6e\x62\x6f\x78\x5f\x72\x6f\x73\x65\x65\x5f\x73\x6d\x6f\x6f\x74\ -\x68\x69\x6e\x67\x22\x3a\x20\x22\x53\x6d\x6f\x6f\x74\x68\x65\x6e\ -\x20\x74\x68\x65\x20\x66\x6c\x75\x63\x74\x75\x61\x74\x69\x6f\x6e\ -\x20\x63\x75\x72\x76\x65\x20\x28\x72\x65\x64\x29\x20\x62\x65\x66\ -\x6f\x72\x65\x20\x63\x61\x6c\x63\x75\x6c\x61\x74\x69\x6e\x67\x20\ -\x69\x6e\x64\x69\x63\x65\x73\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\ -\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\x73\x65\x65\x5f\x6e\ -\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x22\x3a\x20\x22\x4e\x6f\x72\x6d\ -\x61\x6c\x69\x7a\x65\x20\x76\x61\x6c\x75\x65\x73\x20\x6f\x66\x20\ -\x61\x6c\x6c\x20\x63\x75\x72\x76\x65\x73\x20\x74\x6f\x20\x74\x68\ -\x65\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\x5b\x30\x2c\x20\x31\ -\x5d\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\ -\x62\x6f\x78\x5f\x72\x6f\x73\x65\x65\x5f\x68\x22\x3a\x20\x22\x43\ -\x61\x6c\x63\x75\x6c\x61\x74\x65\x20\x61\x6e\x64\x20\x73\x68\x6f\ -\x77\x20\x52\x6f\x53\x45\x45\x27\x73\x20\x63\x75\x6d\x75\x6c\x61\ -\x74\x69\x76\x65\x20\x73\x75\x6d\x2c\x20\x66\x6c\x75\x63\x74\x75\ -\x61\x74\x69\x6f\x6e\x20\x63\x75\x72\x76\x65\x20\x61\x6e\x64\x20\ -\x65\x76\x65\x6e\x74\x20\x69\x6e\x64\x69\x63\x65\x73\x20\x6f\x66\ -\x20\x74\x68\x65\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\ -\x6c\x69\x6e\x65\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\ -\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\x73\x65\x65\x5f\x76\x22\x3a\ -\x20\x22\x43\x61\x6c\x63\x75\x6c\x61\x74\x65\x20\x61\x6e\x64\x20\ -\x73\x68\x6f\x77\x20\x52\x6f\x53\x45\x45\x27\x73\x20\x63\x75\x6d\ -\x75\x6c\x61\x74\x69\x76\x65\x20\x73\x75\x6d\x2c\x20\x66\x6c\x75\ -\x63\x74\x75\x61\x74\x69\x6f\x6e\x20\x63\x75\x72\x76\x65\x20\x61\ -\x6e\x64\x20\x65\x76\x65\x6e\x74\x20\x69\x6e\x64\x69\x63\x65\x73\ -\x20\x6f\x66\x20\x74\x68\x65\x20\x76\x65\x72\x74\x69\x63\x61\x6c\ -\x20\x6c\x69\x6e\x65\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x74\ -\x65\x78\x74\x62\x6f\x78\x5f\x72\x6f\x73\x65\x65\x5f\x69\x6e\x74\ -\x65\x72\x76\x61\x6c\x5f\x68\x22\x3a\x20\x22\x45\x76\x65\x6e\x74\ -\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\x6f\x66\x20\x74\x68\x65\ -\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x6c\x69\x6e\x65\ -\x2e\x20\x53\x74\x61\x72\x74\x20\x61\x6e\x64\x20\x65\x6e\x64\x20\ -\x61\x72\x65\x20\x6d\x61\x72\x6b\x65\x64\x20\x62\x79\x20\x67\x72\ -\x65\x65\x6e\x20\x63\x69\x72\x63\x6c\x65\x73\x2e\x22\x2c\x0d\x0a\ -\x20\x20\x20\x20\x22\x74\x65\x78\x74\x62\x6f\x78\x5f\x72\x6f\x73\ -\x65\x65\x5f\x69\x6e\x74\x65\x72\x76\x61\x6c\x5f\x76\x22\x3a\x20\ -\x22\x45\x76\x65\x6e\x74\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\ -\x6f\x66\x20\x74\x68\x65\x20\x76\x65\x72\x74\x69\x63\x61\x6c\x20\ -\x6c\x69\x6e\x65\x2e\x20\x53\x74\x61\x72\x74\x20\x61\x6e\x64\x20\ -\x65\x6e\x64\x20\x61\x72\x65\x20\x6d\x61\x72\x6b\x65\x64\x20\x62\ -\x79\x20\x67\x72\x65\x65\x6e\x20\x63\x69\x72\x63\x6c\x65\x73\x2e\ +\x5f\x6c\x61\x67\x22\x3a\x20\x22\x53\x65\x6c\x65\x63\x74\x20\x74\ +\x68\x69\x73\x20\x74\x6f\x20\x73\x75\x62\x74\x72\x61\x63\x74\x20\ +\x74\x68\x65\x20\x6d\x65\x61\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\ +\x6e\x65\x78\x74\x20\x5b\x6c\x61\x67\x5d\x20\x74\x6f\x20\x5b\x6c\ +\x61\x67\x2b\x77\x69\x6e\x64\x6f\x77\x5d\x20\x69\x6d\x61\x67\x65\ +\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\ +\x6e\x74\x20\x74\x69\x6d\x65\x20\x73\x74\x65\x70\x2e\x20\x4d\x69\ +\x67\x68\x74\x20\x72\x65\x64\x75\x63\x65\x20\x74\x68\x65\x20\x6e\ +\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x69\x6d\x61\x67\x65\x73\x20\ +\x73\x68\x6f\x77\x6e\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\ +\x70\x69\x6e\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x77\x69\x6e\x64\ +\x6f\x77\x22\x3a\x20\x22\x54\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\ +\x20\x6f\x66\x20\x69\x6d\x61\x67\x65\x73\x20\x74\x6f\x20\x63\x61\ +\x6c\x63\x75\x6c\x61\x74\x65\x20\x74\x68\x65\x20\x6d\x65\x61\x6e\ +\x20\x6f\x76\x65\x72\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\ +\x70\x69\x6e\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x6c\x61\x67\x22\ +\x3a\x20\x22\x54\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\ +\x20\x69\x6d\x61\x67\x65\x73\x20\x74\x6f\x20\x73\x6b\x69\x70\x20\ +\x62\x65\x66\x6f\x72\x65\x20\x63\x6f\x6d\x70\x75\x74\x69\x6e\x67\ +\x20\x74\x68\x65\x20\x73\x6c\x69\x64\x69\x6e\x67\x20\x6d\x65\x61\ +\x6e\x20\x61\x6e\x64\x20\x73\x75\x62\x74\x72\x61\x63\x74\x69\x6e\ +\x67\x20\x74\x68\x69\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\ +\x63\x75\x72\x72\x65\x6e\x74\x20\x74\x69\x6d\x65\x20\x73\x74\x65\ +\x70\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\x6e\x62\ +\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x62\x65\x74\x61\x22\x3a\x20\x22\ +\x50\x65\x72\x63\x65\x6e\x74\x61\x67\x65\x20\x6f\x66\x20\x74\x68\ +\x65\x20\x69\x6d\x61\x67\x65\x20\x74\x68\x61\x74\x20\x69\x73\x20\ +\x73\x75\x62\x74\x72\x61\x63\x74\x65\x64\x20\x6f\x72\x20\x64\x69\ +\x76\x69\x64\x65\x64\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\ +\x70\x69\x6e\x62\x6f\x78\x5f\x6e\x6f\x72\x6d\x5f\x62\x6c\x75\x72\ +\x22\x3a\x20\x22\x42\x6c\x75\x72\x73\x20\x74\x68\x65\x20\x69\x6d\ +\x61\x67\x65\x20\x74\x68\x61\x74\x20\x69\x73\x20\x73\x75\x62\x74\ +\x72\x61\x63\x74\x65\x64\x20\x6f\x72\x20\x64\x69\x76\x69\x64\x65\ +\x64\x20\x75\x73\x69\x6e\x67\x20\x61\x20\x47\x61\x75\x73\x73\x69\ +\x61\x6e\x20\x6b\x65\x72\x6e\x65\x6c\x20\x6f\x66\x20\x74\x68\x65\ +\x20\x67\x69\x76\x65\x6e\x20\x73\x69\x7a\x65\x2e\x22\x2c\x0d\x0a\ +\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x6e\x6f\ +\x72\x6d\x5f\x73\x75\x62\x74\x72\x61\x63\x74\x22\x3a\x20\x22\x53\ +\x75\x62\x74\x72\x61\x63\x74\x20\x74\x68\x65\x20\x73\x65\x6c\x65\ +\x63\x74\x65\x64\x20\x69\x6d\x61\x67\x65\x20\x66\x72\x6f\x6d\x20\ +\x61\x6c\x6c\x20\x69\x6d\x61\x67\x65\x73\x2e\x22\x2c\x0d\x0a\x20\ +\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x6e\x6f\x72\ +\x6d\x5f\x64\x69\x76\x69\x64\x65\x22\x3a\x20\x22\x44\x69\x76\x69\ +\x64\x65\x20\x61\x6c\x6c\x20\x69\x6d\x61\x67\x65\x73\x20\x62\x79\ +\x20\x74\x68\x65\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x69\x6d\ +\x61\x67\x65\x2e\x20\x4d\x61\x6b\x65\x20\x73\x75\x72\x65\x20\x74\ +\x68\x61\x74\x20\x6e\x6f\x20\x64\x69\x76\x69\x73\x69\x6f\x6e\x2d\ +\x62\x79\x2d\x7a\x65\x72\x6f\x20\x6f\x63\x63\x75\x72\x73\x2e\x22\ +\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x6f\x6d\x62\x6f\x62\x6f\x78\ +\x5f\x6e\x6f\x72\x6d\x22\x3a\x20\x22\x57\x68\x61\x74\x20\x6d\x65\ +\x74\x72\x69\x63\x20\x74\x6f\x20\x63\x61\x6c\x63\x75\x6c\x61\x74\ +\x65\x20\x6f\x6e\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x73\ +\x65\x6c\x65\x63\x74\x65\x64\x20\x69\x6d\x61\x67\x65\x20\x72\x61\ +\x6e\x67\x65\x20\x62\x65\x66\x6f\x72\x65\x20\x73\x75\x62\x74\x72\ +\x61\x63\x74\x69\x6e\x67\x20\x69\x74\x20\x66\x72\x6f\x6d\x20\x65\ +\x61\x63\x68\x20\x69\x6d\x61\x67\x65\x2e\x22\x2c\x0d\x0a\x0d\x0a\ +\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x6d\x6d\ +\x22\x3a\x20\x22\x43\x6f\x6e\x76\x65\x72\x74\x20\x61\x6c\x6c\x20\ +\x6c\x65\x6e\x67\x74\x68\x73\x20\x69\x6e\x74\x6f\x20\x61\x6e\x20\ +\x61\x72\x62\x69\x74\x72\x61\x72\x79\x20\x75\x6e\x69\x74\x20\x28\ +\x61\x75\x29\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x70\ +\x69\x78\x65\x6c\x73\x20\x62\x61\x73\x65\x64\x20\x6f\x6e\x20\x61\ +\x20\x6b\x6e\x6f\x77\x6e\x20\x73\x63\x61\x6c\x65\x2e\x22\x2c\x0d\ +\x0a\x20\x20\x20\x20\x22\x74\x65\x78\x74\x62\x6f\x78\x5f\x61\x72\ +\x65\x61\x22\x3a\x20\x22\x53\x68\x6f\x77\x73\x20\x74\x68\x65\x20\ +\x61\x72\x65\x61\x20\x69\x6e\x20\x74\x68\x65\x20\x70\x6f\x6c\x79\ +\x67\x6f\x6e\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x74\x65\x78\ +\x74\x62\x6f\x78\x5f\x63\x69\x72\x63\x22\x3a\x20\x22\x53\x68\x6f\ +\x77\x73\x20\x74\x68\x65\x20\x63\x69\x72\x63\x75\x6d\x66\x65\x72\ +\x65\x6e\x63\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x6f\x6c\x79\ +\x67\x6f\x6e\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x74\x65\x78\ +\x74\x62\x6f\x78\x5f\x62\x6f\x75\x6e\x64\x69\x6e\x67\x5f\x72\x65\ +\x63\x74\x22\x3a\x20\x22\x53\x68\x6f\x77\x73\x20\x77\x69\x64\x74\ +\x68\x20\x61\x6e\x64\x20\x68\x65\x69\x67\x68\x74\x20\x6f\x66\x20\ +\x74\x68\x65\x20\x62\x6f\x75\x6e\x64\x69\x6e\x67\x20\x72\x65\x63\ +\x74\x61\x6e\x67\x6c\x65\x20\x65\x6e\x63\x6c\x6f\x73\x69\x6e\x67\ +\x20\x74\x68\x65\x20\x6d\x65\x61\x73\x75\x72\x65\x20\x74\x6f\x6f\ +\x6c\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\ +\x62\x6f\x78\x5f\x73\x68\x6f\x77\x5f\x62\x6f\x75\x6e\x64\x69\x6e\ +\x67\x5f\x72\x65\x63\x74\x22\x3a\x20\x22\x53\x68\x6f\x77\x73\x20\ +\x74\x68\x65\x20\x62\x6f\x75\x6e\x64\x69\x6e\x67\x20\x72\x65\x63\ +\x74\x61\x6e\x67\x6c\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x6d\x65\ +\x61\x73\x75\x72\x65\x20\x74\x6f\x6f\x6c\x20\x69\x6e\x73\x69\x64\ +\x65\x20\x74\x68\x65\x20\x70\x6c\x6f\x74\x2e\x22\x2c\x0d\x0a\x0d\ +\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\ +\x6f\x73\x65\x65\x5f\x6c\x6f\x63\x61\x6c\x5f\x65\x78\x74\x72\x65\ +\x6d\x61\x22\x3a\x20\x22\x55\x73\x65\x20\x6c\x6f\x63\x61\x6c\x20\ +\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x67\x6c\x6f\x62\x61\ +\x6c\x20\x65\x78\x74\x72\x65\x6d\x61\x20\x74\x6f\x20\x63\x61\x6c\ +\x63\x75\x6c\x61\x74\x65\x20\x65\x76\x65\x6e\x74\x20\x69\x6e\x74\ +\x65\x72\x76\x61\x6c\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\ +\x70\x69\x6e\x62\x6f\x78\x5f\x72\x6f\x73\x65\x65\x5f\x73\x6d\x6f\ +\x6f\x74\x68\x69\x6e\x67\x22\x3a\x20\x22\x53\x6d\x6f\x6f\x74\x68\ +\x65\x6e\x20\x74\x68\x65\x20\x66\x6c\x75\x63\x74\x75\x61\x74\x69\ +\x6f\x6e\x20\x63\x75\x72\x76\x65\x20\x28\x72\x65\x64\x29\x20\x62\ +\x65\x66\x6f\x72\x65\x20\x63\x61\x6c\x63\x75\x6c\x61\x74\x69\x6e\ +\x67\x20\x69\x6e\x64\x69\x63\x65\x73\x22\x2c\x0d\x0a\x20\x20\x20\ +\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\x73\x65\x65\ +\x5f\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x22\x3a\x20\x22\x4e\x6f\ +\x72\x6d\x61\x6c\x69\x7a\x65\x20\x76\x61\x6c\x75\x65\x73\x20\x6f\ +\x66\x20\x61\x6c\x6c\x20\x63\x75\x72\x76\x65\x73\x20\x74\x6f\x20\ +\x74\x68\x65\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\x5b\x30\x2c\ +\x20\x31\x5d\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\ +\x63\x6b\x62\x6f\x78\x5f\x72\x6f\x73\x65\x65\x5f\x68\x22\x3a\x20\ +\x22\x43\x61\x6c\x63\x75\x6c\x61\x74\x65\x20\x61\x6e\x64\x20\x73\ +\x68\x6f\x77\x20\x52\x6f\x53\x45\x45\x27\x73\x20\x63\x75\x6d\x75\ +\x6c\x61\x74\x69\x76\x65\x20\x73\x75\x6d\x2c\x20\x66\x6c\x75\x63\ +\x74\x75\x61\x74\x69\x6f\x6e\x20\x63\x75\x72\x76\x65\x20\x61\x6e\ +\x64\x20\x65\x76\x65\x6e\x74\x20\x69\x6e\x64\x69\x63\x65\x73\x20\ +\x6f\x66\x20\x74\x68\x65\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\ +\x6c\x20\x6c\x69\x6e\x65\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\ +\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\x73\x65\x65\x5f\x76\ +\x22\x3a\x20\x22\x43\x61\x6c\x63\x75\x6c\x61\x74\x65\x20\x61\x6e\ +\x64\x20\x73\x68\x6f\x77\x20\x52\x6f\x53\x45\x45\x27\x73\x20\x63\ +\x75\x6d\x75\x6c\x61\x74\x69\x76\x65\x20\x73\x75\x6d\x2c\x20\x66\ +\x6c\x75\x63\x74\x75\x61\x74\x69\x6f\x6e\x20\x63\x75\x72\x76\x65\ +\x20\x61\x6e\x64\x20\x65\x76\x65\x6e\x74\x20\x69\x6e\x64\x69\x63\ +\x65\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x76\x65\x72\x74\x69\x63\ +\x61\x6c\x20\x6c\x69\x6e\x65\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\ +\x22\x74\x65\x78\x74\x62\x6f\x78\x5f\x72\x6f\x73\x65\x65\x5f\x69\ +\x6e\x74\x65\x72\x76\x61\x6c\x5f\x68\x22\x3a\x20\x22\x45\x76\x65\ +\x6e\x74\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\x6f\x66\x20\x74\ +\x68\x65\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x6c\x69\ +\x6e\x65\x2e\x20\x53\x74\x61\x72\x74\x20\x61\x6e\x64\x20\x65\x6e\ +\x64\x20\x61\x72\x65\x20\x6d\x61\x72\x6b\x65\x64\x20\x62\x79\x20\ +\x67\x72\x65\x65\x6e\x20\x63\x69\x72\x63\x6c\x65\x73\x2e\x22\x2c\ +\x0d\x0a\x20\x20\x20\x20\x22\x74\x65\x78\x74\x62\x6f\x78\x5f\x72\ +\x6f\x73\x65\x65\x5f\x69\x6e\x74\x65\x72\x76\x61\x6c\x5f\x76\x22\ +\x3a\x20\x22\x45\x76\x65\x6e\x74\x20\x69\x6e\x74\x65\x72\x76\x61\ +\x6c\x20\x6f\x66\x20\x74\x68\x65\x20\x76\x65\x72\x74\x69\x63\x61\ +\x6c\x20\x6c\x69\x6e\x65\x2e\x20\x53\x74\x61\x72\x74\x20\x61\x6e\ +\x64\x20\x65\x6e\x64\x20\x61\x72\x65\x20\x6d\x61\x72\x6b\x65\x64\ +\x20\x62\x79\x20\x67\x72\x65\x65\x6e\x20\x63\x69\x72\x63\x6c\x65\ +\x73\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x74\x65\x78\x74\x62\ +\x6f\x78\x5f\x72\x6f\x73\x65\x65\x5f\x73\x6c\x6f\x70\x65\x5f\x68\ +\x22\x3a\x20\x22\x49\x6e\x64\x65\x78\x20\x6f\x66\x20\x6d\x61\x78\ +\x69\x6d\x61\x6c\x20\x73\x69\x67\x6e\x61\x6c\x20\x76\x61\x6c\x75\ +\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x68\x6f\x72\x69\x7a\x6f\x6e\ +\x74\x61\x6c\x20\x6c\x69\x6e\x65\x2e\x20\x54\x68\x69\x73\x20\x69\ +\x73\x20\x6d\x61\x72\x6b\x65\x64\x20\x62\x79\x20\x61\x6e\x20\x6f\ +\x72\x61\x6e\x67\x65\x20\x72\x65\x63\x74\x61\x6e\x67\x6c\x65\x2e\ \x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x74\x65\x78\x74\x62\x6f\x78\ -\x5f\x72\x6f\x73\x65\x65\x5f\x73\x6c\x6f\x70\x65\x5f\x68\x22\x3a\ +\x5f\x72\x6f\x73\x65\x65\x5f\x73\x6c\x6f\x70\x65\x5f\x76\x22\x3a\ \x20\x22\x49\x6e\x64\x65\x78\x20\x6f\x66\x20\x6d\x61\x78\x69\x6d\ \x61\x6c\x20\x73\x69\x67\x6e\x61\x6c\x20\x76\x61\x6c\x75\x65\x20\ -\x6f\x66\x20\x74\x68\x65\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\ -\x6c\x20\x6c\x69\x6e\x65\x2e\x20\x54\x68\x69\x73\x20\x69\x73\x20\ -\x6d\x61\x72\x6b\x65\x64\x20\x62\x79\x20\x61\x6e\x20\x6f\x72\x61\ -\x6e\x67\x65\x20\x72\x65\x63\x74\x61\x6e\x67\x6c\x65\x2e\x22\x2c\ -\x0d\x0a\x20\x20\x20\x20\x22\x74\x65\x78\x74\x62\x6f\x78\x5f\x72\ -\x6f\x73\x65\x65\x5f\x73\x6c\x6f\x70\x65\x5f\x76\x22\x3a\x20\x22\ -\x49\x6e\x64\x65\x78\x20\x6f\x66\x20\x6d\x61\x78\x69\x6d\x61\x6c\ -\x20\x73\x69\x67\x6e\x61\x6c\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\ -\x20\x74\x68\x65\x20\x76\x65\x72\x74\x69\x63\x61\x6c\x20\x6c\x69\ -\x6e\x65\x2e\x20\x54\x68\x69\x73\x20\x69\x73\x20\x6d\x61\x72\x6b\ -\x65\x64\x20\x62\x79\x20\x61\x6e\x20\x6f\x72\x61\x6e\x67\x65\x20\ -\x72\x65\x63\x74\x61\x6e\x67\x6c\x65\x2e\x22\x2c\x0d\x0a\x20\x20\ -\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\x73\x65\ -\x65\x5f\x73\x68\x6f\x77\x5f\x69\x6e\x64\x69\x63\x65\x73\x22\x3a\ -\x20\x22\x53\x68\x6f\x77\x20\x65\x76\x65\x6e\x74\x20\x69\x6e\x64\ -\x69\x63\x65\x73\x20\x61\x6e\x64\x20\x70\x6f\x69\x6e\x74\x20\x6f\ -\x66\x20\x6c\x61\x72\x67\x65\x73\x74\x20\x76\x61\x6c\x75\x65\x20\ -\x6f\x66\x20\x74\x68\x65\x20\x73\x69\x67\x6e\x61\x6c\x20\x69\x6e\ -\x20\x74\x68\x65\x20\x70\x6c\x6f\x74\x2e\x22\x2c\x0d\x0a\x20\x20\ -\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\x73\x65\ -\x65\x5f\x73\x68\x6f\x77\x5f\x6c\x69\x6e\x65\x73\x22\x3a\x20\x22\ -\x45\x78\x74\x65\x6e\x64\x20\x74\x68\x65\x20\x65\x76\x65\x6e\x74\ -\x20\x69\x6e\x64\x69\x63\x65\x73\x20\x61\x73\x20\x6c\x69\x6e\x65\ -\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x69\x6d\x61\x67\x65\x2e\x22\ -\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\ -\x6f\x78\x5f\x73\x68\x6f\x77\x5f\x69\x73\x6f\x63\x75\x72\x76\x65\ -\x22\x3a\x20\x22\x53\x68\x6f\x77\x20\x69\x73\x6f\x63\x75\x72\x76\ -\x65\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x69\x6d\x61\x67\x65\x20\ -\x61\x6e\x64\x20\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\x69\x6e\ -\x67\x20\x64\x72\x61\x67\x67\x61\x62\x6c\x65\x20\x6c\x65\x76\x65\ -\x6c\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x63\x6f\x6c\x6f\x72\x20\ -\x74\x61\x62\x6c\x65\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\ -\x70\x69\x6e\x62\x6f\x78\x5f\x69\x73\x6f\x63\x75\x72\x76\x65\x73\ -\x22\x3a\x20\x22\x43\x68\x61\x6e\x67\x65\x20\x74\x68\x65\x20\x6e\ -\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x64\x69\x73\x70\x6c\x61\x79\ -\x65\x64\x20\x69\x73\x6f\x63\x75\x72\x76\x65\x73\x2e\x20\x54\x68\ -\x65\x69\x72\x20\x6c\x65\x76\x65\x6c\x20\x77\x69\x6c\x6c\x20\x62\ -\x65\x20\x65\x71\x75\x61\x6c\x6c\x79\x20\x64\x69\x73\x74\x72\x69\ -\x62\x75\x74\x65\x64\x20\x69\x6e\x20\x5b\x6d\x65\x61\x6e\x2d\x73\ -\x74\x64\x2c\x20\x6d\x65\x61\x6e\x2b\x73\x74\x64\x5d\x2e\x22\x2c\ -\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\x6e\x62\x6f\x78\x5f\x69\ -\x73\x6f\x5f\x73\x6d\x6f\x6f\x74\x68\x69\x6e\x67\x22\x3a\x20\x22\ -\x53\x6d\x6f\x6f\x74\x68\x65\x6e\x20\x74\x68\x65\x20\x69\x73\x6f\ -\x63\x75\x72\x76\x65\x73\x20\x62\x79\x20\x61\x70\x70\x6c\x79\x69\ -\x6e\x67\x20\x61\x6e\x20\x47\x61\x75\x73\x73\x69\x61\x6e\x20\x66\ -\x69\x6c\x74\x65\x72\x20\x77\x69\x74\x68\x20\x67\x69\x76\x65\x6e\ -\x20\x77\x69\x64\x74\x68\x20\x74\x6f\x20\x74\x68\x65\x20\x63\x75\ -\x72\x72\x65\x6e\x74\x20\x69\x6d\x61\x67\x65\x2e\x22\x0d\x0a\x7d\ -\ +\x6f\x66\x20\x74\x68\x65\x20\x76\x65\x72\x74\x69\x63\x61\x6c\x20\ +\x6c\x69\x6e\x65\x2e\x20\x54\x68\x69\x73\x20\x69\x73\x20\x6d\x61\ +\x72\x6b\x65\x64\x20\x62\x79\x20\x61\x6e\x20\x6f\x72\x61\x6e\x67\ +\x65\x20\x72\x65\x63\x74\x61\x6e\x67\x6c\x65\x2e\x22\x2c\x0d\x0a\ +\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\ +\x73\x65\x65\x5f\x73\x68\x6f\x77\x5f\x69\x6e\x64\x69\x63\x65\x73\ +\x22\x3a\x20\x22\x53\x68\x6f\x77\x20\x65\x76\x65\x6e\x74\x20\x69\ +\x6e\x64\x69\x63\x65\x73\x20\x61\x6e\x64\x20\x70\x6f\x69\x6e\x74\ +\x20\x6f\x66\x20\x6c\x61\x72\x67\x65\x73\x74\x20\x76\x61\x6c\x75\ +\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x73\x69\x67\x6e\x61\x6c\x20\ +\x69\x6e\x20\x74\x68\x65\x20\x70\x6c\x6f\x74\x2e\x22\x2c\x0d\x0a\ +\x20\x20\x20\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x5f\x72\x6f\ +\x73\x65\x65\x5f\x73\x68\x6f\x77\x5f\x6c\x69\x6e\x65\x73\x22\x3a\ +\x20\x22\x45\x78\x74\x65\x6e\x64\x20\x74\x68\x65\x20\x65\x76\x65\ +\x6e\x74\x20\x69\x6e\x64\x69\x63\x65\x73\x20\x61\x73\x20\x6c\x69\ +\x6e\x65\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x69\x6d\x61\x67\x65\ +\x2e\x22\x2c\x0d\x0a\x0d\x0a\x20\x20\x20\x20\x22\x63\x68\x65\x63\ +\x6b\x62\x6f\x78\x5f\x73\x68\x6f\x77\x5f\x69\x73\x6f\x63\x75\x72\ +\x76\x65\x22\x3a\x20\x22\x53\x68\x6f\x77\x20\x69\x73\x6f\x63\x75\ +\x72\x76\x65\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x69\x6d\x61\x67\ +\x65\x20\x61\x6e\x64\x20\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\ +\x69\x6e\x67\x20\x64\x72\x61\x67\x67\x61\x62\x6c\x65\x20\x6c\x65\ +\x76\x65\x6c\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x63\x6f\x6c\x6f\ +\x72\x20\x74\x61\x62\x6c\x65\x2e\x22\x2c\x0d\x0a\x20\x20\x20\x20\ +\x22\x73\x70\x69\x6e\x62\x6f\x78\x5f\x69\x73\x6f\x63\x75\x72\x76\ +\x65\x73\x22\x3a\x20\x22\x43\x68\x61\x6e\x67\x65\x20\x74\x68\x65\ +\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x64\x69\x73\x70\x6c\ +\x61\x79\x65\x64\x20\x69\x73\x6f\x63\x75\x72\x76\x65\x73\x2e\x20\ +\x54\x68\x65\x69\x72\x20\x6c\x65\x76\x65\x6c\x20\x77\x69\x6c\x6c\ +\x20\x62\x65\x20\x65\x71\x75\x61\x6c\x6c\x79\x20\x64\x69\x73\x74\ +\x72\x69\x62\x75\x74\x65\x64\x20\x69\x6e\x20\x5b\x6d\x65\x61\x6e\ +\x2d\x73\x74\x64\x2c\x20\x6d\x65\x61\x6e\x2b\x73\x74\x64\x5d\x2e\ +\x22\x2c\x0d\x0a\x20\x20\x20\x20\x22\x73\x70\x69\x6e\x62\x6f\x78\ +\x5f\x69\x73\x6f\x5f\x73\x6d\x6f\x6f\x74\x68\x69\x6e\x67\x22\x3a\ +\x20\x22\x53\x6d\x6f\x6f\x74\x68\x65\x6e\x20\x74\x68\x65\x20\x69\ +\x73\x6f\x63\x75\x72\x76\x65\x73\x20\x62\x79\x20\x61\x70\x70\x6c\ +\x79\x69\x6e\x67\x20\x61\x6e\x20\x47\x61\x75\x73\x73\x69\x61\x6e\ +\x20\x66\x69\x6c\x74\x65\x72\x20\x77\x69\x74\x68\x20\x67\x69\x76\ +\x65\x6e\x20\x77\x69\x64\x74\x68\x20\x74\x6f\x20\x74\x68\x65\x20\ +\x63\x75\x72\x72\x65\x6e\x74\x20\x69\x6d\x61\x67\x65\x2e\x22\x0d\ +\x0a\x7d\ " qt_resource_name = b"\ @@ -1568,9 +1577,9 @@ \x00\x00\x00\x0e\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x8d\x31\xc1\xb2\xf6\ +\x00\x00\x01\x8b\xba\x04\x69\xdd\ \x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x42\x42\ -\x00\x00\x01\x92\xce\x60\xb3\x19\ +\x00\x00\x01\x92\xf8\x0d\xe0\x27\ " qt_version = [int(v) for v in QtCore.qVersion().split('.')] diff --git a/resources/docs/tooltips.json b/resources/docs/tooltips.json index 74cc557..2712606 100644 --- a/resources/docs/tooltips.json +++ b/resources/docs/tooltips.json @@ -26,6 +26,7 @@ "spinbox_camera": "The index of the camera device listed by cv2. For one camera available, this is 0.", "spinbox_frame_pause": "The wait time in between two consecutive frames in milliseconds.", "spinbox_buffer_size": "The number of images that can be stored in the buffer at once.", + "spinbox_downsample": "The ratio of the downsampled image size and the original size as a number between 0 and 1. 1 means no downsampling.", "checkbox_mask": "Shows a rectangular selection area. Resize and apply for masking all images.", "button_reset_mask": "Resets the mask and shows the original image.",