Time Series: 3 Approaches to Stock Price Prediction

In this tutorial, we will explore using EIR for time series prediction tasks, focusing on stock price forecasting. We’ll work with stock market data and implement three different approaches: a transformer-based model, a CNN-based one-shot prediction model, and a CNN-based diffusion model.

Note

This tutorial builds upon concepts from the previous time series tutorial. While not strictly necessary, it’s recommended to go through that tutorial first if you’re new to time series prediction with EIR.

A - Data

For this tutorial, we’ll be using pre-processed stock price data. Here’s a brief overview of the data preparation process:

  1. Historical stock data of daily close prices downloaded for 30 major companies (e.g., AAPL, GOOGL, MSFT) using the yfinance library, covering the period from 2000 to 2023.

  2. The closing prices are discretized into 256 bins.

  3. The data is transformed into sequences of 64 time steps (days) for input, with the corresponding 64 time steps used as the prediction target.

  4. The dataset is split into training (95%) and testing (5%) sets.

  5. The prepared data is saved in CSV format for sequence-based models and streamed as arrays for array-based models.

So, each sequence in our dataset represents 64 consecutive days of closing stock prices for a particular company. The prices are discretized into 256 bins, with each number in the sequence representing a bin. For example, a sequence might look like this:

CSCO_20141223,10 10 10 10 10 10 11 11 11 10 10 10 ... 9 10 10 10

This sequence represents Cisco’s (CSCO) stock prices starting from December 23, 2014.

Important

Here we do a relatively naive split of the data into training and testing sets. Specifically, we the “last” 5% of the data as the test set, which covers part of CSCO and all of CVX. Therefore, CVX can probably be considered a relatively robust test case, as none of data from this company was used in training. However, CSCO might for some samples be plagued by some data leakage (i.e. at the “boundary” samples between training and test, some data will be in both). For real tasks, it would likely be better to use a more sophisticated approach, such a completely different set of companies for training and testing.

Note

We prepare the data in two different formats: CSV format for the sequence-based transformer models and streaming arrays for the one-shot and diffusion models. For the array-based models, we use EIR’s streaming functionality which allows us to serve array data through a WebSocket server. This approach is particularly useful when dealing with large numbers of array files, as storing hundreds of thousands of individual .npy files on disk can be problematic on many systems (especially laptops with limited file handles or when using network storage). The streaming approach also provides more flexibility in data loading and can handle real-time data scenarios. For more details on implementing streaming servers, see the Streaming Data Hands-On Guide.

To download the data, use this link.

After downloading the data, the folder structure should look like this:

eir_tutorials/g_time_series/02_time_series_stocks
├── conf
│   ├── fusion_array.yaml
│   ├── fusion.yaml
│   ├── globals_diffusion.yaml
│   ├── globals_one_shot.yaml
│   ├── globals.yaml
│   ├── input_array_diffusion.yaml
│   ├── input_array_prior.yaml
│   ├── input_sequence.yaml
│   ├── output_array_diffusion.yaml
│   ├── output_array.yaml
│   └── output.yaml
└── data
    ├── stock_combined_test.csv
    ├── stock_combined_train.csv
    ├── stock_input_sequences.csv
    ├── stock_output_sequences.csv
    ├── stock_test_input_sequences.csv
    ├── stock_test_output_sequences.csv
    ├── test_ids.txt
    └── train_ids.txt

B - Training Stock Price Prediction Models

We’ll train three different models for stock price prediction: a transformer-based model, a one-shot prediction model, and a diffusion model.

1. Transformer-based Model

Let’s start by configuring and training a transformer-based model for stock price prediction. This is a sequence-to-sequence model and uses the CSV format for input and output.

Here are the key configuration files:

globals.yaml
basic_experiment:
  batch_size: 128
  memory_dataset: true
  n_epochs: 20
  output_folder: eir_tutorials/tutorial_runs/g_time_series/02_time_series_stocks_transformer
  valid_size: 2000
evaluation_checkpoint:
  checkpoint_interval: 500
  n_saved_models: 1
  sample_interval: 500
optimization:
  lr: 0.001
  optimizer: adabelief
visualization_logging:
  plot_skip_steps: 500
input_sequence.yaml
input_info:
  input_source: eir_tutorials/g_time_series/02_time_series_stocks/data/stock_input_sequences.csv
  input_name: stock_input
  input_type: sequence

input_type_info:
  max_length: 64
  split_on: " "
  sampling_strategy_if_longer: "from_start"
  min_freq: 1

model_config:
  embedding_dim: 128
  model_init_config:
    num_layers: 4
output.yaml
output_info:
  output_source: eir_tutorials/g_time_series/02_time_series_stocks/data/stock_output_sequences.csv
  output_name: stock_output
  output_type: sequence

output_type_info:
  max_length: 64
  split_on: " "
  sampling_strategy_if_longer: "from_start"
  min_freq: 1

model_config:
  embedding_dim: 128
  model_init_config:
    num_layers: 4

sampling_config:
  generated_sequence_length: 150
  n_eval_inputs: 10

To train the transformer-based model, run:

eirtrain \
--global_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/globals.yaml \
--fusion_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/fusion.yaml \
--input_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/input_sequence.yaml \
--output_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/output.yaml

Results and Visualization (Transformer-based Model)

Here’s the training curve for our transformer-based model:

../../_images/training_curve_LOSS_transformer_stocks.png

Let’s look at some example predictions:

../../_images/sample_6_plot.pdf ../../_images/sample_7_plot.pdf

Note

Since the training and validation samples are from the same companies, this and subsequent models are likely to perform (very) well on the validation set (due to potential data leakage). However, we will look at the test set later to get a better idea of model performance on unseen data. However, performing well here does tell us that the models are learning something from the data (even though this learning might just be memorizing).

2. One-shot Prediction Model

Next, let’s configure and train a one-shot prediction model for stock prices. This model uses EIR’s streaming functionality to receive array data through a WebSocket connection.

Note

If the streaming functionality is seeming like a bit of an overkill for this, you can also parse the CSV files directly and save the data as .npy files in a folder. Then instead of pointing to the WebSocket server in the configuration, you can point to the folder containing the .npy files.

Setting Up the Streaming Server

Before training the one-shot prediction model, we need to start a streaming server that will provide the array data to EIR. Following the pattern established in the streaming implementation guide, the streaming server is implemented as a modular Python package with two main components:

1. Stock Data Manager (stock_data_manager.py)

This module contains the StockDataManager class that handles data loading, batch generation, and state management:

stock_data_manager.py
import base64
from pathlib import Path
from typing import Any

import numpy as np
import pandas as pd

from eir.utils.logging import get_logger

logger = get_logger(name=__name__)


class StockDataManager:
    def __init__(
        self,
        *,
        csv_path: Path,
        sequence_length: int = 64,
        is_diffusion: bool = False,
    ):
        self.csv_path = csv_path
        self.sequence_length = sequence_length
        self.is_diffusion = is_diffusion
        self.current_index = 0

        logger.info(f"Loading stock data from {csv_path}")

        df = pd.read_csv(filepath_or_buffer=csv_path)
        self.df = df.sample(frac=1).reset_index(drop=True)

        logger.info(f"Loaded {len(self.df)} samples")

    def reset(self):
        self.current_index = 0
        self.df = self.df.sample(frac=1).reset_index(drop=True)
        logger.info("Data manager reset")

    def get_batch(self, *, batch_size: int) -> list[dict[str, Any]]:
        if self.current_index >= len(self.df):
            self.reset()

        batch = []
        for _ in range(batch_size):
            if self.current_index >= len(self.df):
                self.reset()

            row = self.df.iloc[self.current_index]

            input_array = np.array(
                [int(x) for x in row["InputSequence"].split(" ")], dtype=np.float32
            )
            output_array = np.array(
                [int(x) for x in row["OutputSequence"].split(" ")], dtype=np.float32
            )

            input_encoded = base64.b64encode(input_array.tobytes()).decode("utf-8")
            output_encoded = base64.b64encode(output_array.tobytes()).decode("utf-8")
            sample = {
                "inputs": {"stock_input": input_encoded},
                "target_labels": {"stock_output": {"stock_output": output_encoded}},
                "sample_id": row["ID"],
            }

            if self.is_diffusion:
                sample["inputs"]["stock_output"] = output_encoded

            batch.append(sample)
            self.current_index += 1

        return batch

    def get_status(self) -> dict[str, Any]:
        return {
            "current_index": self.current_index,
            "total_samples": len(self.df),
        }


def create_stock_manager(
    *, sequence_length: int = 64, is_diffusion: bool = False
) -> StockDataManager:
    csv_path = Path(
        "eir_tutorials/g_time_series/02_time_series_stocks/data"
        "/stock_combined_train.csv"
    )

    logger.info(
        f"Creating StockDataManager with sequence_length={sequence_length}, "
        f"is_diffusion={is_diffusion}"
    )

    return StockDataManager(
        csv_path=csv_path,
        sequence_length=sequence_length,
        is_diffusion=is_diffusion,
    )

2. Stock Streamer (stock_streamer.py)

This module contains the complete WebSocket server implementation, including the FastAPI application, WebSocket endpoint handling, and command-line interface:

stock_streamer.py
import argparse

from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from pydantic import BaseModel

from docs.doc_modules.g_time_series.stock_data_manager import (
    create_stock_manager,
)
from eir.setup.streaming_data_setup.protocol import PROTOCOL_VERSION
from eir.utils.logging import get_logger

logger = get_logger(name=__name__)

app = FastAPI()


class InputInfo(BaseModel):
    type: str
    shape: list[int] | None = None


class OutputInfo(BaseModel):
    type: str
    shape: list[int] | None = None


class DatasetInfo(BaseModel):
    inputs: dict[str, InputInfo]
    outputs: dict[str, OutputInfo]


async def connect_websocket(websocket: WebSocket) -> bool:
    try:
        await websocket.accept()
        handshake_message = await websocket.receive_json()

        if (
            handshake_message["type"] != "handshake"
            or handshake_message["version"] != PROTOCOL_VERSION
        ):
            await websocket.send_json(
                {
                    "type": "error",
                    "payload": {"message": "Incompatible protocol version"},
                }
            )
            await websocket.close()
            return False

        await websocket.send_json({"type": "handshake", "version": PROTOCOL_VERSION})
        return True

    except Exception as e:
        logger.error(f"Error in connect: {e}")
        return False


@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    connected = await connect_websocket(websocket=websocket)
    if not connected:
        return

    try:
        while True:
            data = await websocket.receive_json()
            message_type = data.get("type")

            if message_type == "status":
                await websocket.send_json(
                    {"type": "status", "payload": manager.get_status()}
                )

            # DATASET-SPECIFIC: Define your data schema here
            elif message_type == "getInfo":
                dataset_info = DatasetInfo(
                    inputs={
                        "stock_input": InputInfo(
                            type="array",
                            shape=[manager.sequence_length],
                        )
                    },
                    outputs={
                        "stock_output": OutputInfo(
                            type="array",
                            shape=[manager.sequence_length],
                        )
                    },
                )

                # DATASET-SPECIFIC: Add diffusion inputs if needed
                if manager.is_diffusion:
                    dataset_info.inputs["stock_output"] = InputInfo(
                        type="array",
                        shape=[manager.sequence_length],
                    )

                await websocket.send_json(
                    {"type": "info", "payload": dataset_info.model_dump()}
                )

            elif message_type == "getData":
                batch_size = data.get("payload", {}).get("batch_size", 32)
                batch = manager.get_batch(batch_size=batch_size)

                if not batch:
                    await websocket.send_json(
                        {"type": "data", "payload": ["terminate"]}
                    )
                    break

                await websocket.send_json({"type": "data", "payload": batch})

            elif message_type == "reset":
                manager.reset()
                await websocket.send_json(
                    {
                        "type": "resetConfirmation",
                        "payload": {"message": "Reset successful"},
                    }
                )
                await websocket.send_json(
                    {"type": "reset", "payload": {"message": "Reset command received"}}
                )

            elif message_type == "setValidationIds":
                validation_ids = data.get("payload", {}).get("validation_ids", [])
                await websocket.send_json(
                    {
                        "type": "validationIdsConfirmation",
                        "payload": {
                            "message": f"Received {len(validation_ids)} validation IDs"
                        },
                    }
                )

            elif message_type == "heartbeat":
                await websocket.send_json({"type": "heartbeat"})

            else:
                logger.warning(f"Unknown message type: {message_type}")
                await websocket.send_json(
                    {
                        "type": "error",
                        "payload": {"message": f"Unknown message type: {message_type}"},
                    }
                )

    except WebSocketDisconnect:
        logger.info("WebSocket disconnected")
    finally:
        try:
            await websocket.close()
        except Exception as e:
            logger.error(f"Error closing WebSocket: {e}")
        logger.info("WebSocket connection closed")


def main():
    # DATASET-SPECIFIC: Customize CLI arguments for your use case
    parser = argparse.ArgumentParser(description="Run the stock data streaming server")
    parser.add_argument(
        "--host", type=str, default="localhost", help="Host to run the server on"
    )
    parser.add_argument(
        "--port", type=int, default=8000, help="Port to run the server on"
    )
    parser.add_argument(
        "--diffusion", action="store_true", help="Enable diffusion mode for the server"
    )
    parser.add_argument(
        "--sequence-length", type=int, default=64, help="Sequence length for the model"
    )

    args = parser.parse_args()

    # DATASET-SPECIFIC: Initialize your data manager here
    global manager
    manager = create_stock_manager(
        sequence_length=args.sequence_length,
        is_diffusion=args.diffusion,
    )

    logger.info("Stock data manager initialized")

    import uvicorn

    uvicorn.run(app, host=args.host, port=args.port, ws_ping_timeout=3600)


if __name__ == "__main__":
    main()

Note

This streaming server is designed as a template for implementing your own EIR-compatible streaming servers. The code includes DATASET-SPECIFIC comments to help you understand which parts need customization for your own datasets versus which parts implement the standard EIR protocol.

3. Package Initialization (__init__.py)

This file makes the streaming server a proper Python package (it can be empty):

__init__.py

The streaming server reads stock data from the CSV file and streams it as base64-encoded arrays through a WebSocket connection, implementing EIR’s streaming protocol.

Before starting training, first start the streaming server in a separate terminal. Create a directory called streaming_server and save the three files above in it, then run:

python -m streaming_server.stock_streamer

The server will start on ws://localhost:8000/ws by default. You should see output indicating that the server is loading the stock data and is ready to accept connections.

Note

The streaming server must be running before you start the EIR training process. Keep this terminal window open during training, as EIR will continuously request data from the server.

Training the One-shot Prediction Model

Here are the key configuration files:

globals_one_shot.yaml
basic_experiment:
  batch_size: 128
  memory_dataset: false
  n_epochs: 20
  output_folder: eir_tutorials/tutorial_runs/g_time_series/02_time_series_stocks_one_shot
  valid_size: 2000
evaluation_checkpoint:
  checkpoint_interval: 500
  n_saved_models: 1
  sample_interval: 500
optimization:
  lr: 0.0005
  optimizer: adabelief
visualization_logging:
  plot_skip_steps: 2000
data_preparation:
  streaming_setup_samples: 20000
input_array_prior.yaml
input_info:
  input_source: ws://localhost:8000/ws
  input_name: stock_input
  input_type: array

input_type_info:
  adaptive_normalization_max_samples: 100000
  normalization: channel

model_config:
  model_type: cnn
  model_init_config:
    allow_first_conv_size_reduction: false
    layers:
      - 1
      - 1
    down_stride_width: 1
    kernel_width: 4
    kernel_height: 1
    channel_exp_base: 6
    down_sample_every_n_blocks: 1
    attention_inclusion_cutoff: 0
output_array.yaml
output_info:
  output_source: ws://localhost:8000/ws
  output_name: stock_output
  output_type: array

output_type_info:
  normalization: channel
  adaptive_normalization_max_samples: 100000

model_config:
  model_type: cnn
  model_init_config:
    channel_exp_base: 6
    allow_pooling: false

To train the one-shot prediction model, run:

eirtrain \
--global_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/globals_one_shot.yaml \
--fusion_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/fusion_array.yaml \
--input_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/input_array_prior.yaml \
--output_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/output_array.yaml

Results and Visualization (One-shot Prediction Model)

Here’s the training curve for our one-shot prediction model:

../../_images/training_curve_LOSS_one_shot_stocks.png

Let’s look at some example predictions:

../../_images/sample_0_plot2.pdf ../../_images/sample_1_plot2.pdf

3. Diffusion Model

Finally, let’s configure and train a diffusion model for stock price prediction. Like the one-shot model, this also uses streaming to receive array data.

Setting Up the Streaming Server for Diffusion

For the diffusion model, we need to start the streaming server with the --diffusion flag to enable diffusion mode. This configures the server to provide both input and target output arrays as inputs to the model, which is required for the diffusion training process.

Start the streaming server for diffusion in a separate terminal:

python -m streaming_server.stock_streamer --diffusion

The --diffusion flag tells the server to include the target output arrays as additional inputs alongside the original input arrays. During diffusion training, EIR will apply noise to these target arrays internally as part of the diffusion process (it knows how to do this because they are linked via the input_name and output_name both being "stock_output" in the input_array_diffusion.yaml and output_array_diffusion.yaml configuration files).

Note

If you already have the streaming server running from the one-shot model training, you’ll need to stop it first and restart it with the --diffusion flag.

Training the Diffusion Model

Here are the key configuration files:

globals_diffusion.yaml
basic_experiment:
  batch_size: 128
  memory_dataset: false
  n_epochs: 20
  output_folder: eir_tutorials/tutorial_runs/g_time_series/02_time_series_stocks_diffusion
  valid_size: 2000
evaluation_checkpoint:
  checkpoint_interval: 500
  n_saved_models: 1
  sample_interval: 500
optimization:
  lr: 0.0005
  optimizer: adabelief
visualization_logging:
  plot_skip_steps: 2000
data_preparation:
  streaming_setup_samples: 20000
input_array_diffusion.yaml
input_info:
  input_source: ws://localhost:8000/ws
  input_name: stock_output
  input_type: array

input_type_info:
  normalization: channel
  adaptive_normalization_max_samples: 100000

model_config:
  model_type: cnn
  model_init_config:
    allow_first_conv_size_reduction: false
    layers:
      - 1
      - 1
    down_stride_width: 1
    kernel_width: 4
    kernel_height: 1
    channel_exp_base: 6
    down_sample_every_n_blocks: 1
    attention_inclusion_cutoff: 0

tensor_broker_config:
  message_configs:
    - name: first_cnn_layer
      layer_path: input_modules.stock_output.feature_extractor.conv.0.conv_1
      cache_tensor: true
      layer_cache_target: "input"
    - name: first_residual_layer
      layer_path: input_modules.stock_output.feature_extractor.conv.1
      cache_tensor: true
      layer_cache_target: "output"
    - name: second_residual_layer
      layer_path: input_modules.stock_output.feature_extractor.conv.3
      cache_tensor: true
      layer_cache_target: "output"
output_array_diffusion.yaml
output_info:
  output_source: ws://localhost:8000/ws
  output_name: stock_output
  output_type: array

output_type_info:
  normalization: channel
  adaptive_normalization_max_samples: 100000
  loss: "diffusion"

model_config:
  model_type: cnn
  model_init_config:
    channel_exp_base: 6
    allow_pooling: false

tensor_broker_config:
  message_configs:
    - name: first_cnn_upscale_layer
      layer_path: output_modules.stock_output.feature_extractor.blocks.block_4
      use_from_cache:
        - second_residual_layer
    - name: second_cnn_upscale_layer
      layer_path: output_modules.stock_output.feature_extractor.blocks.block_7
      use_from_cache:
        - first_residual_layer
    - name: final_layer
      layer_path: output_modules.stock_output.feature_extractor.final_layer
      use_from_cache:
        - first_cnn_layer

Note

If you are seeing the tensor_broker_config for the first time and would like more information on it, please take a look at Colorization and Super-Resolution. Shortly put, it allows us to send arbitrary hidden states / representations from earlier parts of the model to later parts of the model (e.g. like is often done in U-Net inspired architectures).

To train the diffusion model, run:

eirtrain \
--global_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/globals_diffusion.yaml \
--fusion_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/fusion_array.yaml \
--input_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/input_array_prior.yaml eir_tutorials/g_time_series/02_time_series_stocks/conf/input_array_diffusion.yaml \
--output_configs eir_tutorials/g_time_series/02_time_series_stocks/conf/output_array_diffusion.yaml

Results and Visualization (Diffusion Model)

Here’s the training curve for our diffusion model:

../../_images/training_curve_LOSS_diffusion_stocks.png

Let’s look at some example predictions:

../../_images/sample_0_plot3.pdf ../../_images/sample_1_plot3.pdf

C - Serving

In this final section, we’ll serve our trained models for stock price prediction as web services and interact with them using HTTP requests.

1. Serving the Transformer-based Model

To serve the transformer-based model, use the following command:

eirserve \
--model-path eir_tutorials/tutorial_runs/g_time_series/02_time_series_stocks_one_shot/saved_models/02_time_series_stocks_one_shot_checkpoint_79000_perf-average=0.9960.pt

2. Serving the One-shot Prediction Model

To serve the one-shot prediction model, use the following command:

eirserve \
--model-path eir_tutorials/tutorial_runs/g_time_series/02_time_series_stocks_one_shot/saved_models/02_time_series_stocks_one_shot_checkpoint_79000_perf-average=0.9960.pt

3. Serving the Diffusion Model

To serve the diffusion model, use the following command:

eirserve \
--model-path eir_tutorials/tutorial_runs/g_time_series/02_time_series_stocks_diffusion/saved_models/02_time_series_stocks_diffusion_checkpoint_11500_perf-average=0.9738.pt

Sending Requests

With the servers running, we can now send requests with stock price data.

Python Example (for the Diffusion Model):

Python request example
import base64

import numpy as np
import requests

input_array = np.array(
    [
        31,
        32,
        31,
        30,
        31,
        31,
        31,
        31,
        31,
        30,
        31,
        31,
        32,
        33,
        32,
        32,
        33,
        33,
        33,
        34,
        35,
        34,
        34,
        33,
        32,
        32,
        32,
        33,
        33,
        34,
        34,
        34,
        33,
        34,
        34,
        34,
        34,
        36,
        36,
        36,
        36,
        37,
        35,
        35,
        34,
        35,
        35,
        34,
        35,
        35,
        36,
        35,
        36,
        35,
        34,
        34,
        34,
        33,
        33,
        31,
        31,
        31,
        32,
        32,
    ],
    dtype=np.float32,
)

output_base = np.zeros(shape=input_array.shape, dtype=np.float32)


def encode_array_to_base64(array_np: np.ndarray) -> str:
    array_bytes = array_np.tobytes()
    return base64.b64encode(array_bytes).decode("utf-8")


def send_request(url: str, payload: list[dict]) -> list[dict]:
    response = requests.post(url, json=payload)
    response.raise_for_status()
    return response.json()


payload = [
    {
        "stock_input": encode_array_to_base64(array_np=input_array),
        "stock_output": encode_array_to_base64(array_np=output_base),
    },
]

response = send_request(url="http://localhost:8000/predict", payload=payload)
print(response)

Note

The Python request example above is for the diffusion model, and it should also work for the one-shot prediction model. For the transformer-based model, see Time Series: Power Consumption Prediction for an example.

Analyzing Responses

Below is an example of the response from the diffusion model:

Model predictions
[
    {
        "request": [
            {
                "stock_input": "AAAUQwAAE0MAABJDAAASQwAAEUMAABBDAAASQwAAEUMAABFDAAAOQwAADkMAABBDAAARQwAAE0MAABVDAAAUQwAAFUMAABVDAAAUQwAAEkMAABFDAAAQQwAAEUMAABJDAAAUQwAAFEMAABRDAAATQwAAE0MAABNDAAAUQwAAE0MAABNDAAATQwAAE0MAABJDAAASQwAAEUMAABNDAAASQwAAEUMAAA9DAAAOQwAAD0MAABFDAAARQwAAEkMAABJDAAAUQwAAFEMAABZDAAAYQwAAGEMAABlDAAAYQwAAGEMAABpDAAAZQwAAGEMAABpDAAAZQwAAGUMAABZDAAAWQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAUQwAAE0MAABJDAAASQwAAEUMAABBDAAASQwAAEUMAABFDAAAOQwAADkMAABBDAAARQwAAE0MAABVDAAAUQwAAFUMAABVDAAAUQwAAEkMAABFDAAAQQwAAEUMAABJDAAAUQwAAFEMAABRDAAATQwAAE0MAABNDAAAUQwAAE0MAABNDAAATQwAAE0MAABJDAAASQwAAEUMAABNDAAASQwAAEUMAAA9DAAAOQwAAD0MAABFDAAARQwAAEkMAABJDAAAUQwAAFEMAABZDAAAYQwAAGEMAABlDAAAYQwAAGEMAABpDAAAZQwAAGEMAABpDAAAZQwAAGUMAABZDAAAWQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAUQwAAE0MAABJDAAASQwAAEUMAABBDAAASQwAAEUMAABFDAAAOQwAADkMAABBDAAARQwAAE0MAABVDAAAUQwAAFUMAABVDAAAUQwAAEkMAABFDAAAQQwAAEUMAABJDAAAUQwAAFEMAABRDAAATQwAAE0MAABNDAAAUQwAAE0MAABNDAAATQwAAE0MAABJDAAASQwAAEUMAABNDAAASQwAAEUMAAA9DAAAOQwAAD0MAABFDAAARQwAAEkMAABJDAAAUQwAAFEMAABZDAAAYQwAAGEMAABlDAAAYQwAAGEMAABpDAAAZQwAAGEMAABpDAAAZQwAAGUMAABZDAAAWQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAUQwAAE0MAABJDAAASQwAAEUMAABBDAAASQwAAEUMAABFDAAAOQwAADkMAABBDAAARQwAAE0MAABVDAAAUQwAAFUMAABVDAAAUQwAAEkMAABFDAAAQQwAAEUMAABJDAAAUQwAAFEMAABRDAAATQwAAE0MAABNDAAAUQwAAE0MAABNDAAATQwAAE0MAABJDAAASQwAAEUMAABNDAAASQwAAEUMAAA9DAAAOQwAAD0MAABFDAAARQwAAEkMAABJDAAAUQwAAFEMAABZDAAAYQwAAGEMAABlDAAAYQwAAGEMAABpDAAAZQwAAGEMAABpDAAAZQwAAGUMAABZDAAAWQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAUQwAAE0MAABJDAAASQwAAEUMAABBDAAASQwAAEUMAABFDAAAOQwAADkMAABBDAAARQwAAE0MAABVDAAAUQwAAFUMAABVDAAAUQwAAEkMAABFDAAAQQwAAEUMAABJDAAAUQwAAFEMAABRDAAATQwAAE0MAABNDAAAUQwAAE0MAABNDAAATQwAAE0MAABJDAAASQwAAEUMAABNDAAASQwAAEUMAAA9DAAAOQwAAD0MAABFDAAARQwAAEkMAABJDAAAUQwAAFEMAABZDAAAYQwAAGEMAABlDAAAYQwAAGEMAABpDAAAZQwAAGEMAABpDAAAZQwAAGUMAABZDAAAWQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACcQgAAnEIAAJpCAACaQgAAmEIAAJpCAACcQgAAmkIAAJxCAACaQgAAmEIAAJZCAACYQgAAmEIAAJhCAACYQgAAmkIAAJxCAACcQgAAnEIAAJ5CAACeQgAAoEIAAJ5CAACiQgAAokIAAKRCAACkQgAApEIAAKRCAACmQgAAqEIAAKpCAACsQgAAqkIAAKxCAACsQgAArkIAALBCAACwQgAAskIAALBCAAC0QgAAtEIAALJCAACyQgAArkIAALJCAACwQgAAsEIAAK5CAACwQgAAskIAALRCAAC0QgAAskIAALRCAACyQgAAskIAALRCAACyQgAAsEIAALBCAACuQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACcQgAAnEIAAJpCAACaQgAAmEIAAJpCAACcQgAAmkIAAJxCAACaQgAAmEIAAJZCAACYQgAAmEIAAJhCAACYQgAAmkIAAJxCAACcQgAAnEIAAJ5CAACeQgAAoEIAAJ5CAACiQgAAokIAAKRCAACkQgAApEIAAKRCAACmQgAAqEIAAKpCAACsQgAAqkIAAKxCAACsQgAArkIAALBCAACwQgAAskIAALBCAAC0QgAAtEIAALJCAACyQgAArkIAALJCAACwQgAAsEIAAK5CAACwQgAAskIAALRCAAC0QgAAskIAALRCAACyQgAAskIAALRCAACyQgAAsEIAALBCAACuQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACcQgAAnEIAAJpCAACaQgAAmEIAAJpCAACcQgAAmkIAAJxCAACaQgAAmEIAAJZCAACYQgAAmEIAAJhCAACYQgAAmkIAAJxCAACcQgAAnEIAAJ5CAACeQgAAoEIAAJ5CAACiQgAAokIAAKRCAACkQgAApEIAAKRCAACmQgAAqEIAAKpCAACsQgAAqkIAAKxCAACsQgAArkIAALBCAACwQgAAskIAALBCAAC0QgAAtEIAALJCAACyQgAArkIAALJCAACwQgAAsEIAAK5CAACwQgAAskIAALRCAAC0QgAAskIAALRCAACyQgAAskIAALRCAACyQgAAsEIAALBCAACuQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACcQgAAnEIAAJpCAACaQgAAmEIAAJpCAACcQgAAmkIAAJxCAACaQgAAmEIAAJZCAACYQgAAmEIAAJhCAACYQgAAmkIAAJxCAACcQgAAnEIAAJ5CAACeQgAAoEIAAJ5CAACiQgAAokIAAKRCAACkQgAApEIAAKRCAACmQgAAqEIAAKpCAACsQgAAqkIAAKxCAACsQgAArkIAALBCAACwQgAAskIAALBCAAC0QgAAtEIAALJCAACyQgAArkIAALJCAACwQgAAsEIAAK5CAACwQgAAskIAALRCAAC0QgAAskIAALRCAACyQgAAskIAALRCAACyQgAAsEIAALBCAACuQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACcQgAAnEIAAJpCAACaQgAAmEIAAJpCAACcQgAAmkIAAJxCAACaQgAAmEIAAJZCAACYQgAAmEIAAJhCAACYQgAAmkIAAJxCAACcQgAAnEIAAJ5CAACeQgAAoEIAAJ5CAACiQgAAokIAAKRCAACkQgAApEIAAKRCAACmQgAAqEIAAKpCAACsQgAAqkIAAKxCAACsQgAArkIAALBCAACwQgAAskIAALBCAAC0QgAAtEIAALJCAACyQgAArkIAALJCAACwQgAAsEIAAK5CAACwQgAAskIAALRCAAC0QgAAskIAALRCAACyQgAAskIAALRCAACyQgAAsEIAALBCAACuQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAC8QgAAwEIAAL5CAAC+QgAAvkIAAMBCAADAQgAAvkIAAL5CAADAQgAAwEIAAL5CAADAQgAAwEIAAMBCAADEQgAAxEIAAMRCAADEQgAAxEIAAMZCAADEQgAAwkIAAMJCAADCQgAAwkIAAMJCAADEQgAAxEIAAMZCAADGQgAAxkIAAMZCAADEQgAAxkIAAMZCAADGQgAAyEIAAMhCAADEQgAAxkIAAMZCAADGQgAAxkIAAMZCAADIQgAAyEIAAMhCAADKQgAAyEIAAMZCAADEQgAAxkIAAMRCAADGQgAAxEIAAMRCAADGQgAAwkIAAMRCAADGQgAAxkIAAMRCAADEQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAC8QgAAwEIAAL5CAAC+QgAAvkIAAMBCAADAQgAAvkIAAL5CAADAQgAAwEIAAL5CAADAQgAAwEIAAMBCAADEQgAAxEIAAMRCAADEQgAAxEIAAMZCAADEQgAAwkIAAMJCAADCQgAAwkIAAMJCAADEQgAAxEIAAMZCAADGQgAAxkIAAMZCAADEQgAAxkIAAMZCAADGQgAAyEIAAMhCAADEQgAAxkIAAMZCAADGQgAAxkIAAMZCAADIQgAAyEIAAMhCAADKQgAAyEIAAMZCAADEQgAAxkIAAMRCAADGQgAAxEIAAMRCAADGQgAAwkIAAMRCAADGQgAAxkIAAMRCAADEQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAC8QgAAwEIAAL5CAAC+QgAAvkIAAMBCAADAQgAAvkIAAL5CAADAQgAAwEIAAL5CAADAQgAAwEIAAMBCAADEQgAAxEIAAMRCAADEQgAAxEIAAMZCAADEQgAAwkIAAMJCAADCQgAAwkIAAMJCAADEQgAAxEIAAMZCAADGQgAAxkIAAMZCAADEQgAAxkIAAMZCAADGQgAAyEIAAMhCAADEQgAAxkIAAMZCAADGQgAAxkIAAMZCAADIQgAAyEIAAMhCAADKQgAAyEIAAMZCAADEQgAAxkIAAMRCAADGQgAAxEIAAMRCAADGQgAAwkIAAMRCAADGQgAAxkIAAMRCAADEQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAC8QgAAwEIAAL5CAAC+QgAAvkIAAMBCAADAQgAAvkIAAL5CAADAQgAAwEIAAL5CAADAQgAAwEIAAMBCAADEQgAAxEIAAMRCAADEQgAAxEIAAMZCAADEQgAAwkIAAMJCAADCQgAAwkIAAMJCAADEQgAAxEIAAMZCAADGQgAAxkIAAMZCAADEQgAAxkIAAMZCAADGQgAAyEIAAMhCAADEQgAAxkIAAMZCAADGQgAAxkIAAMZCAADIQgAAyEIAAMhCAADKQgAAyEIAAMZCAADEQgAAxkIAAMRCAADGQgAAxEIAAMRCAADGQgAAwkIAAMRCAADGQgAAxkIAAMRCAADEQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAC8QgAAwEIAAL5CAAC+QgAAvkIAAMBCAADAQgAAvkIAAL5CAADAQgAAwEIAAL5CAADAQgAAwEIAAMBCAADEQgAAxEIAAMRCAADEQgAAxEIAAMZCAADEQgAAwkIAAMJCAADCQgAAwkIAAMJCAADEQgAAxEIAAMZCAADGQgAAxkIAAMZCAADEQgAAxkIAAMZCAADGQgAAyEIAAMhCAADEQgAAxkIAAMZCAADGQgAAxkIAAMZCAADIQgAAyEIAAMhCAADKQgAAyEIAAMZCAADEQgAAxkIAAMRCAADGQgAAxEIAAMRCAADGQgAAwkIAAMRCAADGQgAAxkIAAMRCAADEQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AADiQgAA3kIAAPJCAADuQgAA7kIAAOxCAADsQgAA7EIAAOxCAADsQgAA7kIAAO5CAADuQgAA7kIAAO5CAADuQgAA7kIAAO5CAADuQgAA7kIAAPBCAADuQgAA7kIAAPBCAADyQgAA8kIAAPBCAADyQgAA8kIAAPRCAAD0QgAA8kIAAPJCAAD0QgAA9EIAAPRCAAD4QgAA9kIAAPRCAAD0QgAA9kIAAPZCAAD6QgAA/EIAAP5CAAD+QgAAAEMAAABDAAAAQwAAAkMAAAJDAAABQwAAAEMAAP5CAAD8QgAA9EIAAPZCAAD6QgAA9EIAAPRCAAD0QgAA9kIAAPhCAAD6Qg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AADiQgAA3kIAAPJCAADuQgAA7kIAAOxCAADsQgAA7EIAAOxCAADsQgAA7kIAAO5CAADuQgAA7kIAAO5CAADuQgAA7kIAAO5CAADuQgAA7kIAAPBCAADuQgAA7kIAAPBCAADyQgAA8kIAAPBCAADyQgAA8kIAAPRCAAD0QgAA8kIAAPJCAAD0QgAA9EIAAPRCAAD4QgAA9kIAAPRCAAD0QgAA9kIAAPZCAAD6QgAA/EIAAP5CAAD+QgAAAEMAAABDAAAAQwAAAkMAAAJDAAABQwAAAEMAAP5CAAD8QgAA9EIAAPZCAAD6QgAA9EIAAPRCAAD0QgAA9kIAAPhCAAD6Qg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AADiQgAA3kIAAPJCAADuQgAA7kIAAOxCAADsQgAA7EIAAOxCAADsQgAA7kIAAO5CAADuQgAA7kIAAO5CAADuQgAA7kIAAO5CAADuQgAA7kIAAPBCAADuQgAA7kIAAPBCAADyQgAA8kIAAPBCAADyQgAA8kIAAPRCAAD0QgAA8kIAAPJCAAD0QgAA9EIAAPRCAAD4QgAA9kIAAPRCAAD0QgAA9kIAAPZCAAD6QgAA/EIAAP5CAAD+QgAAAEMAAABDAAAAQwAAAkMAAAJDAAABQwAAAEMAAP5CAAD8QgAA9EIAAPZCAAD6QgAA9EIAAPRCAAD0QgAA9kIAAPhCAAD6Qg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AADiQgAA3kIAAPJCAADuQgAA7kIAAOxCAADsQgAA7EIAAOxCAADsQgAA7kIAAO5CAADuQgAA7kIAAO5CAADuQgAA7kIAAO5CAADuQgAA7kIAAPBCAADuQgAA7kIAAPBCAADyQgAA8kIAAPBCAADyQgAA8kIAAPRCAAD0QgAA8kIAAPJCAAD0QgAA9EIAAPRCAAD4QgAA9kIAAPRCAAD0QgAA9kIAAPZCAAD6QgAA/EIAAP5CAAD+QgAAAEMAAABDAAAAQwAAAkMAAAJDAAABQwAAAEMAAP5CAAD8QgAA9EIAAPZCAAD6QgAA9EIAAPRCAAD0QgAA9kIAAPhCAAD6Qg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AADiQgAA3kIAAPJCAADuQgAA7kIAAOxCAADsQgAA7EIAAOxCAADsQgAA7kIAAO5CAADuQgAA7kIAAO5CAADuQgAA7kIAAO5CAADuQgAA7kIAAPBCAADuQgAA7kIAAPBCAADyQgAA8kIAAPBCAADyQgAA8kIAAPRCAAD0QgAA8kIAAPJCAAD0QgAA9EIAAPRCAAD4QgAA9kIAAPRCAAD0QgAA9kIAAPZCAAD6QgAA/EIAAP5CAAD+QgAAAEMAAABDAAAAQwAAAkMAAAJDAAABQwAAAEMAAP5CAAD8QgAA9EIAAPZCAAD6QgAA9EIAAPRCAAD0QgAA9kIAAPhCAAD6Qg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAArQwAALEMAAC1DAAAtQwAALUMAACxDAAAsQwAALEMAACxDAAAtQwAALUMAAC1DAAAtQwAALEMAACxDAAAsQwAALEMAAC1DAAAuQwAAL0MAAC5DAAAvQwAALkMAAC5DAAAtQwAALUMAAC1DAAAtQwAALUMAACxDAAAsQwAALkMAAC1DAAAtQwAALUMAAC1DAAAtQwAALUMAACxDAAAtQwAALUMAAC5DAAAuQwAALUMAAC1DAAAuQwAALUMAAC5DAAAuQwAALkMAAC1DAAAuQwAALkMAAC5DAAAuQwAALkMAAC1DAAAuQwAAL0MAAC5DAAAvQwAALkMAAC1DAAAuQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAArQwAALEMAAC1DAAAtQwAALUMAACxDAAAsQwAALEMAACxDAAAtQwAALUMAAC1DAAAtQwAALEMAACxDAAAsQwAALEMAAC1DAAAuQwAAL0MAAC5DAAAvQwAALkMAAC5DAAAtQwAALUMAAC1DAAAtQwAALUMAACxDAAAsQwAALkMAAC1DAAAtQwAALUMAAC1DAAAtQwAALUMAACxDAAAtQwAALUMAAC5DAAAuQwAALUMAAC1DAAAuQwAALUMAAC5DAAAuQwAALkMAAC1DAAAuQwAALkMAAC5DAAAuQwAALkMAAC1DAAAuQwAAL0MAAC5DAAAvQwAALkMAAC1DAAAuQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAArQwAALEMAAC1DAAAtQwAALUMAACxDAAAsQwAALEMAACxDAAAtQwAALUMAAC1DAAAtQwAALEMAACxDAAAsQwAALEMAAC1DAAAuQwAAL0MAAC5DAAAvQwAALkMAAC5DAAAtQwAALUMAAC1DAAAtQwAALUMAACxDAAAsQwAALkMAAC1DAAAtQwAALUMAAC1DAAAtQwAALUMAACxDAAAtQwAALUMAAC5DAAAuQwAALUMAAC1DAAAuQwAALUMAAC5DAAAuQwAALkMAAC1DAAAuQwAALkMAAC5DAAAuQwAALkMAAC1DAAAuQwAAL0MAAC5DAAAvQwAALkMAAC1DAAAuQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAArQwAALEMAAC1DAAAtQwAALUMAACxDAAAsQwAALEMAACxDAAAtQwAALUMAAC1DAAAtQwAALEMAACxDAAAsQwAALEMAAC1DAAAuQwAAL0MAAC5DAAAvQwAALkMAAC5DAAAtQwAALUMAAC1DAAAtQwAALUMAACxDAAAsQwAALkMAAC1DAAAtQwAALUMAAC1DAAAtQwAALUMAACxDAAAtQwAALUMAAC5DAAAuQwAALUMAAC1DAAAuQwAALUMAAC5DAAAuQwAALkMAAC1DAAAuQwAALkMAAC5DAAAuQwAALkMAAC1DAAAuQwAAL0MAAC5DAAAvQwAALkMAAC1DAAAuQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAArQwAALEMAAC1DAAAtQwAALUMAACxDAAAsQwAALEMAACxDAAAtQwAALUMAAC1DAAAtQwAALEMAACxDAAAsQwAALEMAAC1DAAAuQwAAL0MAAC5DAAAvQwAALkMAAC5DAAAtQwAALUMAAC1DAAAtQwAALUMAACxDAAAsQwAALkMAAC1DAAAtQwAALUMAAC1DAAAtQwAALUMAACxDAAAtQwAALUMAAC5DAAAuQwAALUMAAC1DAAAuQwAALUMAAC5DAAAuQwAALkMAAC1DAAAuQwAALkMAAC5DAAAuQwAALkMAAC1DAAAuQwAAL0MAAC5DAAAvQwAALkMAAC1DAAAuQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACaQgAAnEIAAJpCAACgQgAAnEIAAJpCAACaQgAAnEIAAJpCAACcQgAAmkIAAJhCAACYQgAAlEIAAJZCAACgQgAAnkIAAJ5CAACeQgAApEIAAKJCAACiQgAAoEIAAKBCAACgQgAAokIAAKJCAACkQgAAokIAAKZCAACoQgAApkIAAKZCAACmQgAAqEIAAKZCAACmQgAApkIAAKRCAACiQgAAokIAAKRCAACmQgAApkIAAKhCAACmQgAAqkIAAKxCAACsQgAAqkIAALBCAAC0QgAAsEIAAKxCAACsQgAArEIAAKxCAACuQgAAtEIAALJCAACyQgAAuEIAALZCAAC0Qg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACaQgAAnEIAAJpCAACgQgAAnEIAAJpCAACaQgAAnEIAAJpCAACcQgAAmkIAAJhCAACYQgAAlEIAAJZCAACgQgAAnkIAAJ5CAACeQgAApEIAAKJCAACiQgAAoEIAAKBCAACgQgAAokIAAKJCAACkQgAAokIAAKZCAACoQgAApkIAAKZCAACmQgAAqEIAAKZCAACmQgAApkIAAKRCAACiQgAAokIAAKRCAACmQgAApkIAAKhCAACmQgAAqkIAAKxCAACsQgAAqkIAALBCAAC0QgAAsEIAAKxCAACsQgAArEIAAKxCAACuQgAAtEIAALJCAACyQgAAuEIAALZCAAC0Qg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACaQgAAnEIAAJpCAACgQgAAnEIAAJpCAACaQgAAnEIAAJpCAACcQgAAmkIAAJhCAACYQgAAlEIAAJZCAACgQgAAnkIAAJ5CAACeQgAApEIAAKJCAACiQgAAoEIAAKBCAACgQgAAokIAAKJCAACkQgAAokIAAKZCAACoQgAApkIAAKZCAACmQgAAqEIAAKZCAACmQgAApkIAAKRCAACiQgAAokIAAKRCAACmQgAApkIAAKhCAACmQgAAqkIAAKxCAACsQgAAqkIAALBCAAC0QgAAsEIAAKxCAACsQgAArEIAAKxCAACuQgAAtEIAALJCAACyQgAAuEIAALZCAAC0Qg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACaQgAAnEIAAJpCAACgQgAAnEIAAJpCAACaQgAAnEIAAJpCAACcQgAAmkIAAJhCAACYQgAAlEIAAJZCAACgQgAAnkIAAJ5CAACeQgAApEIAAKJCAACiQgAAoEIAAKBCAACgQgAAokIAAKJCAACkQgAAokIAAKZCAACoQgAApkIAAKZCAACmQgAAqEIAAKZCAACmQgAApkIAAKRCAACiQgAAokIAAKRCAACmQgAApkIAAKhCAACmQgAAqkIAAKxCAACsQgAAqkIAALBCAAC0QgAAsEIAAKxCAACsQgAArEIAAKxCAACuQgAAtEIAALJCAACyQgAAuEIAALZCAAC0Qg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACaQgAAnEIAAJpCAACgQgAAnEIAAJpCAACaQgAAnEIAAJpCAACcQgAAmkIAAJhCAACYQgAAlEIAAJZCAACgQgAAnkIAAJ5CAACeQgAApEIAAKJCAACiQgAAoEIAAKBCAACgQgAAokIAAKJCAACkQgAAokIAAKZCAACoQgAApkIAAKZCAACmQgAAqEIAAKZCAACmQgAApkIAAKRCAACiQgAAokIAAKRCAACmQgAApkIAAKhCAACmQgAAqkIAAKxCAACsQgAAqkIAALBCAAC0QgAAsEIAAKxCAACsQgAArEIAAKxCAACuQgAAtEIAALJCAACyQgAAuEIAALZCAAC0Qg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAeQwAAHUMAABtDAAAaQwAAGEMAABlDAAAYQwAAFkMAABZDAAAXQwAAFkMAABdDAAAaQwAAGkMAABxDAAAbQwAAG0MAABpDAAAZQwAAGkMAABtDAAAcQwAAG0MAABxDAAAdQwAAHkMAAB1DAAAdQwAAHUMAACBDAAAgQwAAIEMAACBDAAAgQwAAIEMAACBDAAAgQwAAIUMAACFDAAAgQwAAIUMAACFDAAAgQwAAIEMAAB9DAAAfQwAAH0MAACBDAAAgQwAAIkMAACFDAAAhQwAAIkMAACFDAAAhQwAAIEMAAB5DAAAgQwAAIEMAACBDAAAiQwAAIkMAACJDAAAiQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAeQwAAHUMAABtDAAAaQwAAGEMAABlDAAAYQwAAFkMAABZDAAAXQwAAFkMAABdDAAAaQwAAGkMAABxDAAAbQwAAG0MAABpDAAAZQwAAGkMAABtDAAAcQwAAG0MAABxDAAAdQwAAHkMAAB1DAAAdQwAAHUMAACBDAAAgQwAAIEMAACBDAAAgQwAAIEMAACBDAAAgQwAAIUMAACFDAAAgQwAAIUMAACFDAAAgQwAAIEMAAB9DAAAfQwAAH0MAACBDAAAgQwAAIkMAACFDAAAhQwAAIkMAACFDAAAhQwAAIEMAAB5DAAAgQwAAIEMAACBDAAAiQwAAIkMAACJDAAAiQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAeQwAAHUMAABtDAAAaQwAAGEMAABlDAAAYQwAAFkMAABZDAAAXQwAAFkMAABdDAAAaQwAAGkMAABxDAAAbQwAAG0MAABpDAAAZQwAAGkMAABtDAAAcQwAAG0MAABxDAAAdQwAAHkMAAB1DAAAdQwAAHUMAACBDAAAgQwAAIEMAACBDAAAgQwAAIEMAACBDAAAgQwAAIUMAACFDAAAgQwAAIUMAACFDAAAgQwAAIEMAAB9DAAAfQwAAH0MAACBDAAAgQwAAIkMAACFDAAAhQwAAIkMAACFDAAAhQwAAIEMAAB5DAAAgQwAAIEMAACBDAAAiQwAAIkMAACJDAAAiQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAeQwAAHUMAABtDAAAaQwAAGEMAABlDAAAYQwAAFkMAABZDAAAXQwAAFkMAABdDAAAaQwAAGkMAABxDAAAbQwAAG0MAABpDAAAZQwAAGkMAABtDAAAcQwAAG0MAABxDAAAdQwAAHkMAAB1DAAAdQwAAHUMAACBDAAAgQwAAIEMAACBDAAAgQwAAIEMAACBDAAAgQwAAIUMAACFDAAAgQwAAIUMAACFDAAAgQwAAIEMAAB9DAAAfQwAAH0MAACBDAAAgQwAAIkMAACFDAAAhQwAAIkMAACFDAAAhQwAAIEMAAB5DAAAgQwAAIEMAACBDAAAiQwAAIkMAACJDAAAiQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAeQwAAHUMAABtDAAAaQwAAGEMAABlDAAAYQwAAFkMAABZDAAAXQwAAFkMAABdDAAAaQwAAGkMAABxDAAAbQwAAG0MAABpDAAAZQwAAGkMAABtDAAAcQwAAG0MAABxDAAAdQwAAHkMAAB1DAAAdQwAAHUMAACBDAAAgQwAAIEMAACBDAAAgQwAAIEMAACBDAAAgQwAAIUMAACFDAAAgQwAAIUMAACFDAAAgQwAAIEMAAB9DAAAfQwAAH0MAACBDAAAgQwAAIkMAACFDAAAhQwAAIkMAACFDAAAhQwAAIEMAAB5DAAAgQwAAIEMAACBDAAAiQwAAIkMAACJDAAAiQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACWQgAAmkIAAJhCAACaQgAAlkIAAJZCAACaQgAAlkIAAJhCAACaQgAAkkIAAJJCAACSQgAAiEIAAIpCAACIQgAAjEIAAIpCAACOQgAAjkIAAIhCAACKQgAAjEIAAIZCAACGQgAAgkIAAIRCAACEQgAAgEIAAIJCAACMQgAAhEIAAHxCAACKQgAAgkIAAIZCAACGQgAAhkIAAIRCAACEQgAAikIAAI5CAACQQgAAlkIAAJJCAACWQgAAlEIAAJRCAACQQgAAkEIAAI5CAACQQgAAjkIAAIZCAACKQgAAiEIAAI5CAACMQgAAkkIAAJBCAACOQgAAjkIAAIpCAACMQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACWQgAAmkIAAJhCAACaQgAAlkIAAJZCAACaQgAAlkIAAJhCAACaQgAAkkIAAJJCAACSQgAAiEIAAIpCAACIQgAAjEIAAIpCAACOQgAAjkIAAIhCAACKQgAAjEIAAIZCAACGQgAAgkIAAIRCAACEQgAAgEIAAIJCAACMQgAAhEIAAHxCAACKQgAAgkIAAIZCAACGQgAAhkIAAIRCAACEQgAAikIAAI5CAACQQgAAlkIAAJJCAACWQgAAlEIAAJRCAACQQgAAkEIAAI5CAACQQgAAjkIAAIZCAACKQgAAiEIAAI5CAACMQgAAkkIAAJBCAACOQgAAjkIAAIpCAACMQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACWQgAAmkIAAJhCAACaQgAAlkIAAJZCAACaQgAAlkIAAJhCAACaQgAAkkIAAJJCAACSQgAAiEIAAIpCAACIQgAAjEIAAIpCAACOQgAAjkIAAIhCAACKQgAAjEIAAIZCAACGQgAAgkIAAIRCAACEQgAAgEIAAIJCAACMQgAAhEIAAHxCAACKQgAAgkIAAIZCAACGQgAAhkIAAIRCAACEQgAAikIAAI5CAACQQgAAlkIAAJJCAACWQgAAlEIAAJRCAACQQgAAkEIAAI5CAACQQgAAjkIAAIZCAACKQgAAiEIAAI5CAACMQgAAkkIAAJBCAACOQgAAjkIAAIpCAACMQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACWQgAAmkIAAJhCAACaQgAAlkIAAJZCAACaQgAAlkIAAJhCAACaQgAAkkIAAJJCAACSQgAAiEIAAIpCAACIQgAAjEIAAIpCAACOQgAAjkIAAIhCAACKQgAAjEIAAIZCAACGQgAAgkIAAIRCAACEQgAAgEIAAIJCAACMQgAAhEIAAHxCAACKQgAAgkIAAIZCAACGQgAAhkIAAIRCAACEQgAAikIAAI5CAACQQgAAlkIAAJJCAACWQgAAlEIAAJRCAACQQgAAkEIAAI5CAACQQgAAjkIAAIZCAACKQgAAiEIAAI5CAACMQgAAkkIAAJBCAACOQgAAjkIAAIpCAACMQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AACWQgAAmkIAAJhCAACaQgAAlkIAAJZCAACaQgAAlkIAAJhCAACaQgAAkkIAAJJCAACSQgAAiEIAAIpCAACIQgAAjEIAAIpCAACOQgAAjkIAAIhCAACKQgAAjEIAAIZCAACGQgAAgkIAAIRCAACEQgAAgEIAAIJCAACMQgAAhEIAAHxCAACKQgAAgkIAAIZCAACGQgAAhkIAAIRCAACEQgAAikIAAI5CAACQQgAAlkIAAJJCAACWQgAAlEIAAJRCAACQQgAAkEIAAI5CAACQQgAAjkIAAIZCAACKQgAAiEIAAI5CAACMQgAAkkIAAJBCAACOQgAAjkIAAIpCAACMQg==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAgQwAAIEMAACFDAAAhQwAAIEMAACFDAAAhQwAAIEMAACBDAAAfQwAAH0MAAB9DAAAgQwAAIEMAACJDAAAhQwAAIUMAACJDAAAhQwAAIUMAACBDAAAeQwAAIEMAACBDAAAgQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACFDAAAhQwAAIEMAACFDAAAhQwAAIUMAACFDAAAfQwAAH0MAAB1DAAAeQwAAH0MAAB5DAAAfQwAAIEMAAB9DAAAfQwAAIkMAACBDAAAhQwAAIUMAACFDAAAgQwAAIUMAACFDAAAhQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAgQwAAIEMAACFDAAAhQwAAIEMAACFDAAAhQwAAIEMAACBDAAAfQwAAH0MAAB9DAAAgQwAAIEMAACJDAAAhQwAAIUMAACJDAAAhQwAAIUMAACBDAAAeQwAAIEMAACBDAAAgQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACFDAAAhQwAAIEMAACFDAAAhQwAAIUMAACFDAAAfQwAAH0MAAB1DAAAeQwAAH0MAAB5DAAAfQwAAIEMAAB9DAAAfQwAAIkMAACBDAAAhQwAAIUMAACFDAAAgQwAAIUMAACFDAAAhQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAgQwAAIEMAACFDAAAhQwAAIEMAACFDAAAhQwAAIEMAACBDAAAfQwAAH0MAAB9DAAAgQwAAIEMAACJDAAAhQwAAIUMAACJDAAAhQwAAIUMAACBDAAAeQwAAIEMAACBDAAAgQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACFDAAAhQwAAIEMAACFDAAAhQwAAIUMAACFDAAAfQwAAH0MAAB1DAAAeQwAAH0MAAB5DAAAfQwAAIEMAAB9DAAAfQwAAIkMAACBDAAAhQwAAIUMAACFDAAAgQwAAIUMAACFDAAAhQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAgQwAAIEMAACFDAAAhQwAAIEMAACFDAAAhQwAAIEMAACBDAAAfQwAAH0MAAB9DAAAgQwAAIEMAACJDAAAhQwAAIUMAACJDAAAhQwAAIUMAACBDAAAeQwAAIEMAACBDAAAgQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACFDAAAhQwAAIEMAACFDAAAhQwAAIUMAACFDAAAfQwAAH0MAAB1DAAAeQwAAH0MAAB5DAAAfQwAAIEMAAB9DAAAfQwAAIkMAACBDAAAhQwAAIUMAACFDAAAgQwAAIUMAACFDAAAhQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAgQwAAIEMAACFDAAAhQwAAIEMAACFDAAAhQwAAIEMAACBDAAAfQwAAH0MAAB9DAAAgQwAAIEMAACJDAAAhQwAAIUMAACJDAAAhQwAAIUMAACBDAAAeQwAAIEMAACBDAAAgQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACJDAAAiQwAAIkMAACFDAAAhQwAAIEMAACFDAAAhQwAAIUMAACFDAAAfQwAAH0MAAB1DAAAeQwAAH0MAAB5DAAAfQwAAIEMAAB9DAAAfQwAAIkMAACBDAAAhQwAAIUMAACFDAAAgQwAAIUMAACFDAAAhQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAqQwAAKkMAACpDAAAqQwAAKkMAACpDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAKkMAACpDAAApQwAAKUMAAClDAAAqQwAAKkMAACtDAAAqQwAAKkMAAClDAAAqQwAAKkMAACpDAAAqQwAAK0MAACtDAAArQwAAK0MAACxDAAAsQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACpDAAAqQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAAqQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAAqQwAAKkMAAClDAAAoQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAqQwAAKkMAACpDAAAqQwAAKkMAACpDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAKkMAACpDAAApQwAAKUMAAClDAAAqQwAAKkMAACtDAAAqQwAAKkMAAClDAAAqQwAAKkMAACpDAAAqQwAAK0MAACtDAAArQwAAK0MAACxDAAAsQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACpDAAAqQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAAqQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAAqQwAAKkMAAClDAAAoQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAqQwAAKkMAACpDAAAqQwAAKkMAACpDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAKkMAACpDAAApQwAAKUMAAClDAAAqQwAAKkMAACtDAAAqQwAAKkMAAClDAAAqQwAAKkMAACpDAAAqQwAAK0MAACtDAAArQwAAK0MAACxDAAAsQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACpDAAAqQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAAqQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAAqQwAAKkMAAClDAAAoQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAqQwAAKkMAACpDAAAqQwAAKkMAACpDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAKkMAACpDAAApQwAAKUMAAClDAAAqQwAAKkMAACtDAAAqQwAAKkMAAClDAAAqQwAAKkMAACpDAAAqQwAAK0MAACtDAAArQwAAK0MAACxDAAAsQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACpDAAAqQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAAqQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAAqQwAAKkMAAClDAAAoQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            },
            {
                "stock_input": "AAAqQwAAKkMAACpDAAAqQwAAKkMAACpDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAKkMAACpDAAApQwAAKUMAAClDAAAqQwAAKkMAACtDAAAqQwAAKkMAAClDAAAqQwAAKkMAACpDAAAqQwAAK0MAACtDAAArQwAAK0MAACxDAAAsQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACpDAAAqQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAAqQwAAK0MAACtDAAArQwAAK0MAACtDAAArQwAAK0MAACtDAAAqQwAAKkMAAClDAAAoQw==",
                "stock_output": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
            }
        ],
        "response": {
            "result": [
                {
                    "stock_output": "spIeQ55aH0OSyR1D4nYfQ3FvHkNyoCBDIp8eQytJH0OUWh1DVisdQ1CuHEO5yhtD8nkcQwu5HENq2BtDYhwbQ4wBF0N2PhZDeskXQyF7EkOUrQ5DgA8NQ/kaEkMkphBDdnUSQ/FDEUMi+wxDGn0NQ0EVEkMz0BJD8CAXQ7h5FkP2fhZDIEUYQ8LoGEMoChlDW6oXQ3j1GEOASxpDNBsaQ9z1GUOEfxtDGwQdQ1YCHkN7yx1D0rkdQy88H0POSB9D7wAfQ7tSIUOClyFDuNAhQxrAIkOyNSNDJhQiQyrdIkP6liFDjmwhQ0WeH0PuuBpDHUkbQ4J/F0NeyhZDpx8XQw=="
                },
                {
                    "stock_output": "izAYQw6zF0MuJxdDZJ0aQ2wJFkNv+RRDbucPQ+3BDUP6+w1DABUNQ6P+D0NRZhBD7pkRQ/wiE0Pw+RJDi8oSQ5LyEUN3yxFDFF4TQ7b/EUMeDRNDGIsUQ9zXFEMmOBZDOz0ZQ7UcGkPBIRpDxZkZQ0ANGkPb5xpDHEoaQ4GdG0OfGRtDiTAcQ9gcHUO3nhxDprcbQzdyHEP/AB1D/1YeQ5cYH0PdYx9DxIsfQ2RjH0PLqB5DYgEeQzooHkNAQB5DCjMdQ5tiHkNJHh5Ds9YeQ/7LH0N8CSBDYHEfQyyYHkPxVx5D9X8eQ3LPHkNb9R5D+tcbQ8RbHUMC/x1Dr4cdQw=="
                },
                {
                    "stock_output": "xocTQw+vEkPfqBJDSTMTQ95QE0PoWhRDorkUQzDuE0MlRxNDDKgSQ84XEkPq3hFDbNQRQxy2EUNuqRFDh+MRQ3r0EUNwDhFD4CsQQwhmD0PXBBFDnrARQ3CnEUOKTBFDk84QQwRFEUNvvxBD3mcQQ8S8D0M2yxBDBS0QQ6KVD0M1wA5DI+cOQ4iXDkOfJA5DXusPQ1qhEEMXeBBDFpUQQ9PVEENc8BBD1rUQQ/4rEEPz/A9DmMUQQ2FmEUNGdRFDsBMRQ68DEUNnXRFDyC0RQ4JTEUOMBRFDts0SQ6LAEkP9fhJDb08SQyjuEUO/yBFDPCIRQydoEEMzqxBD0loRQw=="
                },
                {
                    "stock_output": "vtITQ5SKFUPfHhRDeHoSQ1olE0MHwRJDHbUSQ0QyE0NguxFDnPwOQ79ED0O75Q9DpcwRQ0TeEUN8whBD7hASQ3+EEkNZYBRDguMTQzGXFENzpRRDmNMUQ6v2FkOg4BVDmccXQ8JSE0Ne1RVDDo0UQ58zFkObYhZDk80VQ/AuFENQhRRDdM8UQ5KDFUO7rhRD1sgTQ7xeFUNz3hRDdO8UQ6RRFENcFBdDzVoWQ5N2FUNtmxVDJMgWQ8gSF0M28BZDnRAYQzyNGUNGZhtD28AcQ7SLHEPULx1Dt7gcQxlYHUMIhB1DKDQdQ+57HUOGPBxD2QQcQ7/EHUMqCh5De7EcQw=="
                },
                {
                    "stock_output": "sqcSQ5lmE0O/wBNDUMsTQwn6E0MzOhRD6o4TQ8QNE0O+dxJDjM4RQ74jEkP8lRJDepMSQ7BnEkNm6xFDytgQQ5tnEENBDBBDmLMQQ9CXEEM8khBDSoIQQ7AgEEMI+xBD3x8QQ//WD0OqaBJDcT4SQ4SnEUO+2xBD+y8PQ5tjDkP+NQ9D9d8NQ3xQDEMU9AxDJw0MQ/zjCkNP2glDwTcKQwOfCkNHdgtD88wLQ8k4DEOEiQxDVWcMQ2XsDEMPPw1DkwUOQ/GsDkOk+A1DEhEOQ88wDkNAbw9DYKYNQ+E2DUPSWQ5DsJgOQ/cYDkOYrA5D3ScOQ1joDUNI/Q1DLr0NQw=="
                },
                {
                    "stock_output": "X0irQryjo0KQbppCrqmZQtGHoEIOlaBCJ4qmQpsyqUIO2qhCDcmeQkDYnEI+XKJCJm2iQtYOrEJGC69CvButQiYSqELI+6hCBJ2wQjqPr0J2rbNCW3m0QspjukItarpCGFG5QtCGt0Kggb5CfsLEQi43yEKOrMlChljKQs7+z0I1HtdCtPvXQuMo10KguNVCsjbGQg+/x0IszsNCKdnBQsZ8wkIYc7pCvCq6QpQst0KJ175C1IG+QoeExUKYrsdCBGTRQsIwzUIxs8hCjsnRQmB40UIRrtBCitTSQnp81UJcpdRCMUXVQjDv00LnVdZCxrHOQv67zUL0EMxCYzTSQg=="
                },
                {
                    "stock_output": "vuKuQlhprUKxtKtC9LuqQpZeqEK9S6pCTMaqQtv9qkKg6KtCZBerQq5eq0L2wqlC6Z+pQpIlq0L82qlCCBaqQpXzqkJ856xCOhivQjycsEJAfrBC5uSwQnK+sUKaYa9CbOStQgD5q0KY6LBCwumwQgkxr0IzmKxCgK+mQnZPqEIAvqhC5SinQnWkp0JHC6hCWp2pQnpmqEIkTadCbAGnQjKnpkLe56hCcwipQiDkp0IAeqpCXLanQnR4qUIIVqVC+rymQij7qEKOmqdCJt2lQlodp0IckqZCiBmrQm+/rEKqyKtCC2erQlO9q0I+5qtC5H2tQpP0q0I5v6tCsNeqQg=="
                },
                {
                    "stock_output": "oCyzQqhcs0JaXahCMLWxQgVyvEJw6rlC3SWqQlB+uEIlWrtCxRSuQuwnsUJ9jLRCRK+8QnZoxkLql8VC8nbPQkjHyELQe9FCKCXBQs732kK+INRCbg3RQmkTzkK6C8tC6NXMQpzbvkJ5ZcZCIOzJQpBOwEKMKMxChoXEQp/ov0JXH7xC3vHDQtWVxkL4l8NC9H3EQqzXx0I+S8dCYEjMQnH8z0JiFdBCiv3LQqU3z0K/wtBCynPNQmIRykKj78hCGSzHQsMjw0LUScdC68fPQuQ+x0JpMMZC9QDLQrZpy0K/B8dCIxLPQrzDz0IiYdBChfffQjOp5UIU59xCqhDeQg=="
                },
                {
                    "stock_output": "omWyQmebrUKtqbBCVBawQioYr0IKtKxC8u2sQqvtrkKF47FCDrWuQr6rrEJc+qlCJQWpQhy8rUJao65CPRCuQjQ6r0I66a5CXTmxQjDwrEK7s6xCmDGqQjCXq0IQcapCCFSpQvb9qEKFOapCF8iqQrAoqkJQjqtC3aysQvWgrEKwHqtCKgSrQvrurUJk+a5C1sWuQrrar0KJc7BCpqazQmq2s0JlrbVC3Gm2Qo1ttUKuXbdCQkm2QigzuULSgbdCqgy3Qsa+tUK85rVC2463QkwSv0JWmMFCcJa/Qjtiv0KqacFCdgDBQrjQwUKOecBC0CDDQlzywUJSi79CRuu/Qg=="
                },
                {
                    "stock_output": "NASnQrBop0JpDqVCV+mkQp30pELBuaZCq1OnQn9Wp0ISJqhC1BCnQm7rpkLUYqZCyVylQpaLpEKUHaVCIQelQpJvpEI0dKVCHaelQkCxpUKgBqdClT6nQt9op0LWTaVCBLWmQohlpkJIKqVCVvepQkp0qkIsSqxCYxmqQhJZpEJCL6tCUEyrQmwbqkLx4ahCYZKoQkKrqEI5k6ZCPAunQuCgp0In3KdCLrCmQiqUpkJkMKZC7GapQnByqEIgTqhCdoynQtu3pUKM1aVC0q2mQtgTp0JwJKVC5DWlQphOqEJfvKdC3uGlQoXUpEIgpKZCREymQljSpUI3dqdCepOpQg=="
                },
                {
                    "stock_output": "vtDHQiiCxUJZgMNC/gHDQqGIv0JVN8BCkIO+QhLPt0KWtcFCVFy+Qhqhu0LICLpCj8q7QrHSvELltLxCjqG+QvLuv0JYcL9Cdl2+QngBv0JZvrxC3q27QpQav0KCRr9CpoW8QqApukLgXL1Cb4rAQknPwUImiMFCuYjDQupFv0L7prtC2866Qg07vEK0y71Ciu7DQmGZxkI2N8lCzi7JQjX8yULqd8ZCBKjEQq05xkKdVMdCWmLGQpW8xkKk+MRC03DFQlRbykJuZclCjnHOQu7yz0IcFdNCfrXSQty80kITrNRCUAXTQp5c0kJfkNRCuoDXQiLY2EJvuthCqwDZQg=="
                },
                {
                    "stock_output": "1qe+QishvEJYU7pCCsm9QiCvvkIYM7xCDz+5QgAytkLQErZCeGW2QsMUuUKq1rhCWTu3QtTXtkKNYLZCxtm2QpjltULizrVC1d22Qu5KtkIy4LRCXg+3QieztEKYYLNCkHmyQnjktUJMprNCsYqxQtYys0LH8rNCvg+0QoOTskLyW7NCdkqyQsZLskKy869COgqqQoqPpkIC/KdCJBSoQvSIp0IeY6dCur2oQmKqqkJ5g6tCLu+rQnRgrUJfx69CEpqtQjYurUJ+j61Ck1StQjIArUKad6xC2AmuQgEPrUK+Ta5CmkixQj60r0L6CK5CRoytQmgdrUKLwqpCO7WtQg=="
                },
                {
                    "stock_output": "jhXGQtPZxkIBscdCvbHGQg3lxkKaZMpCDODHQsRBy0JG48pCigrLQv9jykL7/8pCecXKQhL1yULths9CWbvPQqv0zkKf7sxCex7MQlrRykLF0cZCrMDHQuw3yELHFcdCd4HHQnZ6yEKud8dCBvnDQuQGxEKcDMZCTBvHQoW1xEIg+cdCpLXFQu4LxEKUFcZCtIfGQsnkx0JXfsdCT7bHQtzax0JWichC6MHHQlkLxkLsxcNCPoPDQl+BxkKPZsZCQA7DQlrpxEIxeMNCDcu+QpCeu0LqYbxC59C9QpKVvkIekr1CzMu6QmobvEJMw71COAm/QgqswUJhhsBC/PK/Qg=="
                },
                {
                    "stock_output": "C9bAQoT7xUKJD8JCBLm+QhjQvELEg7hCmui7QvSNtkLA7rZCtYq4QpvVt0L387tCfF68QoDIuULghLtCAOu5Qt6SuEJmYrpCJOu2QrZyvkIUecBCFDLBQlSRxEIqXsFCzBi+QmwXv0Jq9rtCCem8Qi/ovUJdDr9CQI3AQu6gwUIakcJCU97DQmrgvEI94blCTsi8QgpBvUJA179Cr/a+QkTnvUJpwMFCA9jBQpjCw0LaWb9CSOy7QiUFxELQS8ZCcnfDQou3xkJekcdCqpbIQpLJx0LYD8pCsFfNQtxe0UI4ONNCiczUQunZz0JxCs5ClvPVQodq1EI3ZtFCkG3TQg=="
                },
                {
                    "stock_output": "fCm+Qn5vvkJEd7xCamy+Qo5HvkJG5r1CHp29QvamukJUwrtCTNG9QlNeu0JQkLlC6y+5QlrRtUK+LbhCHvK3QkR+uEJKvbZCexS3QgJtuUI87bdCaky5Qu2JuEJNw7hC9ei8QkRCuUIt1bhCVoa4Qu3luUJACL1CTQS/QttZvkJR6b9C9JDBQofWw0KZisVC6j7FQr8GxEL6VsVCfujFQuNZx0IlosdC3sHIQuVexkI5uMJCWk/DQghfwkIzxsFCpOLBQuETw0IhCMlCBuPGQoOKxUL+wMRC9obEQhW7xELFNcNCC0zAQuGWvULgqL1CHoS+Qq7Qv0JSmL1CaeDAQg=="
                },
                {
                    "stock_output": "zvDnQrId6kJud+pC2NfoQh2D50LSPedC8SflQlJu50Jqe+ZCIBTjQh3+40KU5ONCJ6LkQqBW4EIiVOBCedLiQk2d5UIga+dCqfbjQnkA4UJ/1OFC0ercQlgn3UIxsttCdDnbQket2ULKnNlCI7PeQh802ULENdRCTXHOQp2Fy0Jk/MdCjOXIQrekzUL03tJCqIHNQkk40UI4Ec9CkWfMQto/zEIeA9BCAh/RQhqkz0IwAtNCCELRQkKQ0kJRPdZC3DzZQqhA1ELEEtZCYlTWQv+B1EISS9RCAdvYQqBe2EJWitxCPPreQidO40K82eJCG4niQi6R5UJLf+RCaELfQg=="
                },
                {
                    "stock_output": "DMwJQ0Q4B0Py3wVD96oHQwVYBUMK4gRD2g4AQzEpAENPCP5CaNb8QvT290JC0PNCFBDyQld+8kIiW/VCbP7tQtPH7UK1bedCyETnQpL76UL7rutCrSzrQrD77EJqlO5C6SL1Qq82/kLoxvxCUZ3+QmZ2AEPcmQBDiHEAQ6mQ/UJYSf9CWk8BQ0bMAkPk+AFDga4DQz20A0OJ6gNDfwkEQ4NKA0PRQwRDZ+gCQ01fA0NdzgZDmSIHQwvbCUOsEAtDGOoNQ5ZyDEMd6wpDMf0IQ2WgBkOOSAZDI8EFQ1BsCENyUwhDrzMKQ6C2CUMGlwhD6TgKQ/gmC0MyBwtDA2oJQw=="
                },
                {
                    "stock_output": "gYT+Qjpl/kJtt/1CdJz+Qnlv/kIl3v1CWYL+QtQHAEPLNwBDtyL+Qiot/UKwc/xCYu37QkDN/EJ8+f1CUlH9QqUa/0Kz1f9CdQUAQw+1AEOfcwFDbyMBQ5caAUOtRwBDhksBQ+XUAEP9B/9Cme0AQyFQAEOMqgBDVEEBQ+hfAUPuvAFDRe4AQ9ahAEPuGP9CXIIAQ1qr/kJ8yf9Czh79Qg62/UKc1/1Covj6QoHL9kLjEPhClLL5QgyU+ULQpvhC8sP3QpNL+kIkcvpCBg34Qu7K+EL2pflC8k76QksC+0JHNvxCG2P6QmUu+kJTA/lCopP5QgzK+EJfMvZC0IT3Qg=="
                },
                {
                    "stock_output": "lCDzQrBh9UKIV/NCSiX1Qu9/9ELIHvdCWmr1Qv4A80JQfPNCTDz1Qt6H9ULerfZCmKf1Qs6d9ELGDvRCwG32QrIj9UK1gvFCMWDxQgf+8kLQmvFC/HfxQq/a8kIbkfNCXbz1QqE180IT3PJC97LzQsp08UK9N/NC6fXyQu1a8kJm0fBCjk/uQlgH60KlKOdCODXqQvT/6kL4B+xCoDfwQpHV8EJATPBC3vTxQgxL8ELHEPNCfznzQh+s80JfJPRCubfzQvSW9EI0H/VCWR/1Qr0N9EI3sfVCaOz0Qrau9kKPDPVCHpzzQuYP9EIMYvRCo1f0QiiZ9EJ4u/VCf9f1Qg=="
                },
                {
                    "stock_output": "t8nqQqVi8EJNUe9CVPzsQnaF8kKiE/JC1nLwQrrm70JyCuxCbZTrQjl+60KMhOtCt6zsQtqY7UKCTOhCAmfmQrJn5UJ0AeZCK4LkQvDM5EKYvONCnsTlQoHY50LyAedC3b3oQnRf6ELobehCSmrkQq7/5UJKm+hCkTbnQr715kKkp+VCKJ3gQrFQ30IWduJCb83kQmsy6EIBhuZCFBLnQgKL50IYpeNCfNPhQvs140Ja9+NCIq7iQq1g3UKAG9tCmEjcQq9N20KaEtlCC6HXQvyw1UIebtJCVw3SQqAJ00JQ7MxCFprLQn6SzEIzkc1CfK3PQmUT0ELrb9FCpvzQQg=="
                },
                {
                    "stock_output": "0CUqQxAkKkNGrypDh98qQ9piKkOs9ypDZSgqQ+DDKUPnIilDhLApQyQPKUOZICdDp/QmQ+4IKEOELShDT28oQ9xSKENn5ChDD38qQ8RPK0P+2StDnpArQ87UK0PquitDIpsrQyChK0PWDCxDIAItQ2TpLUM9Qy5DjB0uQzEQLkN+Si1D5botQ/QaLkPkKi5DfqouQ7YILkPW7y1D3B4uQ0GALkMt6i1DYYstQxzQLEPAiSxDyJAtQzpMLUNwDC5DuGItQ9nPLEN84ixDoYMtQ66ILUNbPy1DrSEtQ3MALUN4hy1DnyEuQ+HBLkO/1C5DSuUuQ+amLkMAMC5D32MtQw=="
                },
                {
                    "stock_output": "gjUjQ41pI0OygyRDSNQkQ17mJEMsByVDsdAkQ6K4I0PiAiRD7/kiQytLI0N8+yRDGnclQ4IgJkMC1CZDIdMlQy+oJUOtMCVDLNkkQzgzJENkrCRDImolQ0ezJUNJmSVD03AlQ4EaJUNccSRDrGEkQ92EI0P5kCVDjycmQ7zLJUMjgyZDOy0mQw0aJkM68iZDDesnQ25FKEO2yypDsFAqQ4zuKkO/PitDleQsQy0+LEObOCtDvV8rQyJvK0O0VytDGgMrQzNrK0MFuytD23wrQ0FyK0OU9itDZOQsQyBSLUMOAy1Ds0AtQ2dLLENKIitDf3wrQ2ESK0OGoSpDtFgqQw=="
                },
                {
                    "stock_output": "16YpQ/oTKkNk6SpD0e4pQ7SLKkP5GypDVqMpQ6BjKEMohSdDA1YmQ0nFJ0O4WidDJvElQ/Y0JEPtZiJDUGIkQ9ZoJEMetCVD7JkmQwhuJkOifSZD4X0nQ5O+JkOWySZDzJ4nQ6IcKEO8xyhD++cnQ/3PKENemSdDAjooQ+LVJ0PWQidDJcwnQ/g+JkO07CVDgXomQ4BNJ0MKPCZDArMlQzk9JUMsJCVDpeskQ3xSJkNmQihDsHInQ2kqJ0OSziZDxUIoQxOaJ0PhGCdDbfMnQ7bzKEMWGypDVaIqQyVKK0ME3yxDnxAtQ8xeLENKuitDCAwsQ7DDKkMouCpDcGIqQw=="
                },
                {
                    "stock_output": "76wpQ3xHKkNOfCpDEbQpQ2RIKUPwhSlD9XApQzTaKUNbDypDThMqQ4tFKkMUripD79sqQwSLKkPqoStDDAUrQxrtKkM4lSpD7GUqQ8+QKkM5VCpDFgsqQ3n0KUMdjSlDw20pQ3eBKUN5sylDCuIpQx4vKkNwEipD6v8pQ/g1KkOHvSlDKtYpQ1RWKkMV9ypDeXArQ3IkK0NXmCtDhOArQ3qxK0PMyCtDihIrQwYxK0Mu9ypDjDUqQ4hHKkNUZSpDeMUqQ2LcKkMl6SpDUsgqQ/QeK0PSDitD4pkqQ0c0KkMgJCpDwj0qQ4yTKkMA8SpDwpErQznLK0PWhStDT3csQw=="
                },
                {
                    "stock_output": "KxolQx+mJUPUlyVDFkwmQ6ziJUNHHyZDwp0mQ3DrJUP9YyRDPGkkQxCWJEP+6yNDdqAjQ5oTI0O63CJDYZIjQ5TEJEOoryZD7U4mQ1muJ0OFpSdDWG8mQ5OpJ0MBDyhDZFUoQ5MgKEP/IihD2KcoQ36hKEPp5CdDmfImQ5T3J0OxcidDntIoQ5B5KUO1TylDGqUpQx4qKkNh5ypDHBArQ6+ZKkNJTClDA8snQ3LgJ0NvgSdD5LUnQ4prKEMrrihDAi0oQ3t+JUOGcSZD3FgnQ04TJ0PXRSZDebgmQ3HKJUNjPSZDT2wkQ4xdIkNHLCJD8qsiQ7mhIkMm/CJDjZEiQw=="
                },
                {
                    "stock_output": "niu2QtZhuEK1yLdCOPW1QldetULlxrVCUM+wQnvqrkLhzq9C0XSxQnJbrUKZd61CylmuQpmysEKmCa5C9O2qQsxSq0IK16lCgIunQniHpkJatKNCEg+gQh4OnEJ7SJlCl1CXQhp6m0IqnJ9CDqyhQvb6oEL696FCInqfQqFhn0Jqi6JCX2SkQrQUp0LuvqVCZjOoQrRxrUI+Oq5CF0SsQvOisEKu0rBCHQixQpbArUL2VqtCYsGpQrCuqEKpG6RCukCkQhzkpEK2yKBCIm6fQuQjnUKizJdC0uiTQuqklEIY2JhCgAOaQgOlmULRj5pCLF2cQtarnEIQQqBCVvmeQg=="
                },
                {
                    "stock_output": "SgefQqzrpEKsLqNC5p6eQvrXoULs/qNCRtCdQh74nEJOIaBC82OhQjSonkKUXZ5CIPKbQrohnEIU85tCvZieQkwamUJ0eplC0oiYQldMj0JRpopCTHqPQow9j0KpDItC0aiBQoIUhUJWoY1CVDGKQqj6iULnxo5C9K+RQn5Uj0LMS5BCLqKTQiLYkULDrpRCRIGSQojyjEK6QJBCNEqRQra+jEJDd49CCVaMQpyokEIupZBCDouJQhKhiELQqYVCihSHQp0jhkLI6YdCqMGLQuAZjEIRipJCBpWRQtgilkLbSZdCANCgQslWpEL86qpCG8WoQu4gqUL7iKhChIisQg=="
                },
                {
                    "stock_output": "0lazQnRqskLIq7dCpmK4QtLit0Iw0LNC5zG2QtoCukIvzbtCyk23QlLntULCELNC+p6zQuzjs0Kk/LVCShK3QuoUtkI8drhCb5O6QjGjvUIK2bxCyMi6QlJcukKE/rpCq366QuPsvEK87rxCnAu9QhYsvUJWX7xCLee+QsroukL+pb5CNEXBQvIDv0JCvMFCUHDAQp2QvkIje8NCoCvCQh87xUKWl8NCX1nHQgS/ykK4gspCOiPKQlRTykJe98lCRFbJQvsWy0IDMMxCx1LNQhCQy0LOWstCDRvNQovvzkKddc1CceHMQuCtzEK5tc9CeLrNQq0xzEJ0VcpCYMvLQg=="
                },
                {
                    "stock_output": "vq2zQo3as0IFprVC9NqzQkzTsUJO1rJCEn2xQoLks0KW/rNCICe1Qr2EsEJcx7BCBDazQla6tkJwM7hCThi9QvJxv0JC6r9Ct3nBQgPoukIOCLxCc1a9QlwjvkKtt7tCoKy6QqjIukJSDbxCYcW/Qrn2v0LqA79C6afBQkuYwUKq88JC5IbCQvRkxkKbJsZCUJjIQnhJxkKBh8ZCcqfEQtTgw0K4ZsVCuInFQiyhyEISZMlConzKQsg/zUKEM8lCaYPLQsb2ykIWZsxC/qvJQlZayUIUzMZCFsrMQnT+0EJWrtNC0zrSQhr30kIBx9FC/kjOQn/e0kLHq9JCWgnSQg=="
                },
                {
                    "stock_output": "IFiuQmHGrUJiy61CEH6sQiAHqkLskaxCyLKtQsYMrEIKI6pCkK6qQkXTrUImy61CftmqQvdYqkJ+NqxChLqsQl69q0K7satCv5GoQpLipkKyrKNC+42iQhoookKgiKFCsdWgQoRooUJY1aBC+bugQuwHoULck6VCKnOmQsdPo0LowaJCHheiQhBZo0IohKRC4HOkQhL5pEJDF6RC1C6mQu/UpEK4GqZCaAOkQmzko0L4NadCwp+nQmCipkI17qdChFepQmJ8qkLYeKtCumSrQsMcqULQA61C9UCtQvSrrUK2065CJiiuQki8sEJ+RbBCye+wQtHHsEIK9rFC9pCuQg=="
                },
                {
                    "stock_output": "BCokQ/m1JUM+KCdD2HQnQ1SdJUNo2SRDjrYlQ0SZJ0NqMClDNwotQ6qlLUNgGyxDfhQvQ4W3LkNKTC5DJ2YuQwDNLUMANi5DzBYwQ/soMEOCwy9D6q0sQyV8LkP1Ay1DcCArQ5XBKkOWTylDRl0oQ7YmJUPn4idD4l0lQ5jxIUMF/yFDlzUiQ5DyIENz/RxDvJ4aQx6ZFEOcCBVD2JoYQ7RrGUMIrBpD2LocQ+DbH0PeIR9D3DUgQ3bSIUO6kCJDET4iQ5w5IEO3zyFD47kgQ1s3IUPMEiBDU0AgQ/0sIUMctB9DuQQiQ51qHUNmJB1DASYfQ0UvHUPOsh1DTEIeQw=="
                },
                {
                    "stock_output": "6FAdQzCIHUPfuB1DrtkdQ2WkHkNUjh9DfrAfQzCzHkNSnx5D/6IdQw9vHEPAvRpDthsZQ/6/F0PNmBdDTvEWQ2IfGEPVghdDnIEYQxGIGENSuxdDuVkXQ/I2F0NIvxdDS+QYQ9qfGUPxHxpDvdQZQ4HHGkM5lhpDn4sZQ+DqGUMGZBpDFyQcQ5q+HENuhhxDoS8dQxeuHEPUGxxDBTUcQ6mjHEPIUBxDdJkcQ7W6HENHQh5DYxkeQ1yQHkMbKR5DJYMdQ8geHkOGax9DpNsfQ5n8HkNcrx5DkKEeQxgkHkNCgh5D3dcdQ31PHUMLZxxDTCQcQ+YeHEOtbhtDIwIbQw=="
                },
                {
                    "stock_output": "PocaQ5tZG0PxzhpDHfsYQ2GMFkN+KxVDSOcUQ2HnF0MTzRhDdi0XQ7xRF0P5dxZD3OcYQxTEGkMnbhpDr8YaQyfTGkN7pxpDTX0aQ5oQGUOeNRhDbXMYQyt3G0OQER1Do88fQ9YZIUM8/B9DODgeQ9APIUO5QCBD2LsfQ263HkN7Gh1DQiYeQ/I/H0NCQB9DgoQfQ/h2IEMg+iBDBIkhQ8iFIUMgXyBDCNkgQ1syIUNzISJDGuYhQ3xnI0OSiSFDZEkhQ2zuIEPpDiFD2PQfQwpeHkNWACBDPLkeQ7jyGUMvXBhDl/cUQzH+EUMLzhBDhoQPQyVDEENv5BFDyjITQw=="
                },
                {
                    "stock_output": "CJIhQzzxIENJVCBD/38fQ57rH0P8ySBD8PAgQ6CqIEO72h9DHsUeQ3IxH0NZrh5D1JUcQyQhG0Ow7xtDOcYbQzptHEPP3xxDhLQbQ6m6HkNbbx5Dsr0eQ2E4HkPu0h5Dym4eQ9U1HkNpVSBDaVkgQzfIH0O9uR9D/+EeQ7aWH0MK+B5DYvIeQ+ftHUPZjR9DpxkhQz+jH0OvrR9DIDwfQyoHIEOTYSFDVn4hQ4VWIUNyZSBDvPAgQ3BAIEM+GyBDhbcfQy3dH0PIOB9DYi4gQ/RnIENcUCFDprwhQwqYIUO97CFDopMiQ2opIkNU8yFD2CAjQ2qmIkPDrSFDrKEgQw=="
                },
                {
                    "stock_output": "YAEjQ5KSIUOfsSJD0UwjQ1q0IUMG9CRDgNcjQ660IkPJ/CFDvQUjQxbNIkOh9yJDmo0iQzIjIUP+sSFDS74jQ/YUHkMmbh9DDUAgQ/xeIUOWdSBDnD0fQ9qQH0O/Dh9D3EMfQxjBHkMyvCBD4KgiQ7oUIkM6OyJDQ+UeQwfkHkPWch1DLZshQ8c1HkPjDh5Diy8bQ8xMG0M4QRdD6lwWQ6AwFkM54xdDCQMZQ0FEGUONBhZDIYYTQ365E0M5phRD980UQ6tHGUOKNRdDyfoXQ+acGkN0tRpD6UIXQzrLFEPtRxVD4RcZQ9B6GUMEeh1DrDQeQ6diHEOQ6R9D9m8eQw=="
                },
                {
                    "stock_output": "SqaJQiQvikJWq4pCPsCJQj0SiEJuGoVCcdOFQshQhkJ0KIhC1L+FQggRhUJ+zYFCMCuAQu/Zh0KKFolCDH6LQhdSiUIKt4dCcXqLQlSOi0L6K4hCSEGGQoCFiUKOlotCsMaJQtw7iEJksntCchWIQmuhg0JYBX1C1hF7QjyqdUKKPH1CQaaBQlDpfEKEtnlCJG17QjImckJ0VXxCFEN7QrS7dEKEhXxCqKd7QorrfkJnCIBCk+qDQnqZgUJPl4FCmdaCQv9EhEKrr4BCLD2AQtS8gkKShYRCtXqEQihEhEKAmIVCZlCHQnikg0IM3IJCemmBQqBkfUJna4JCFMGDQg=="
                },
                {
                    "stock_output": "h2SDQupugkKLbYBC3GGBQnb4gULfroVC4Dd7QrKic0IMRH5Cfhd/QgDkdkJSEHhCNCJ1QqKMeEJsdXVCJlF2QgDVdEKCr3pCBH17Qrqne0I+JHpCDAt8QlR2fEKa9IJC9IuBQvLDgUL+/oFChqeBQnTTgUL9zIJC4tSEQtjTg0KvjoVC1ZqHQhyShUIKkYVCXViAQoC9gkKOrYJCdrKLQjiDjEKScYlCqmiMQpoojEL6X4xCnNmMQkB7jEIjcpBCcJ2PQrLNiUKW5o1CiSWNQohZjUJ8h5BCIlaQQsIokUJ6vZRCRkySQjz4kkJUgpVCi6qUQhvDlELG4JpCmTuXQg=="
                },
                {
                    "stock_output": "xoWHQgvshkLQJYZCvqyFQi4ch0J7PohCaMaHQiEXh0JzD4hC3hqIQjSCiUKm9IlCI3qKQvw9ikJkzIlC3sKIQi7vh0JxaIdCDiaHQsrbhkJYhIVCmvWEQjyvhUI6OYVCIieIQraiiEIoYIlC4FSKQmJ+iUJW64pCMkCLQjUPi0KyvoxC6xKOQiRKj0IwAo5COzGNQgoSjkJ60I5CxzOOQsHfjUJKvY1CMW6OQsz8jUJNKY5ClGuNQvYzjkJU2o5CPMiMQhoij0JsC45CsPiNQggAj0JhHYxC+6CLQkoDi0K0WI1Cs6mOQlfRjEJQw4pC/oqKQtFii0IoMItC232MQg=="
                },
                {
                    "stock_output": "39qWQlIaj0IAlZZCQHmRQgwRlELqEJFC5PmNQquLlkIs/ZpC9gybQj7Hk0LRVaBCzcOcQs9Pl0LsqJhCEXyVQm8snkIAOp9CbvSbQspApULMz6BCiF2cQrCNmUJSmJZCzYOXQhz5mUKWtJ1CDE+kQuklm0ImtZpCJJOlQlUVokJC8Z5CZuSkQofspULI6J5CVuudQk4KpEIi7Z9CytagQkyAokKOop9CJHikQjAemELUv5hCHkaSQnjVmEJcipRCtFGWQl9Tj0JS8ItCU7+QQhwyjULOfohCJUGPQvr4i0IZHJNC0QuVQgZJk0LcdZJCboyVQpKFmkIsdZlC9ImXQg=="
                },
                {
                    "stock_output": "PmOCQgsJfkL0eYVCMpR7QtS/gELiCYNCCYmAQmecgUJ2RYBClmiEQpssgkLy6oZCFE2EQgd8gUL1yoNCha2EQiykhUL1XIVCEHuHQi7xikKrKotCF+qJQmOihkLaU4dCXBGEQj5dhEJZ2YZCxn6IQmDnhUJMqYhCdhmEQg65hULT139CelqCQnjQhEIeKoBCtkKAQqI/eUKDm4JC5Pl7QrqveUL2um9C1sBzQsRQckLGfWpC1mxsQubwaEKSLmlCRnFsQsosYULSa21Cxi13QmSHeEKwFXhCjAtwQjpseUJKpXxCYD97QvJ8cEJU53dCTORxQlBAaEKQ/F9CPJBtQg=="
                },
                {
                    "stock_output": "JN0cQ6i8HEO0vR1DCaQdQyjFHEM0ih5DMgMeQ+FyHUOUBR1DHYEcQwZBHEOwfRxDtlQbQ66GHEM9KxxDCKwbQw4jHEPp5BxDLP4cQ+uZHENjARxDyvkaQ9+pHEP5OBtDSQ8cQ+fxHEMxPBtDf38aQ7dFG0P9jBpDZ9QZQwXBGUO2DxxDI4odQ7bZHkNZdh5DinIdQ5YWHUOSBB5DYYAdQ2QeHUPYhx1D2m0fQw5nIENk8CBDS6ohQ3mBIkPkNSFDHLofQ8IiIUPMuiNDUksjQ4AbJEMsAiRD8vckQ7ltJUM/kCZD1VgnQw9pJkMp/yRDhyskQ4okI0MaDCJDfFYhQw=="
                },
                {
                    "stock_output": "b9MfQ0r6HkOKMR9D+vwfQ9qrH0PLih9DBVYeQ0i+HEMAphtDpvUbQ500HUNiOx5DatsdQ00qHkNIyx1DdegdQ6mAHkM+kR5D3JMdQwMWHEMq1RtDIFobQ3CkGkPENBpDnj8aQzjMG0M70BpD5h0ZQ9/3GEM2JxlD+CkXQwCWFUPe4xVDCMsVQ22XFUO95RdDiVcYQ3wGGUN+WxlDNrsWQ6w5FkNXchRDu0MVQ3KQFUNqCBZDM/sVQ9I9F0MJsBVDk/EVQ5TUFUMhwBRDAdEUQ+m5FENUAxVDKvwVQ59ZF0O/1RdDkcEWQ0p2FUMlwRRDg2cUQ7zuFEN9whRDJ24VQw=="
                },
                {
                    "stock_output": "MCcdQ7vhHEP7KB5DcgMeQx61H0ONYB5DEmceQ6QoHkO8yR9D7qUfQ9LSHkNcRB5D9VUcQ25DHENu9RpDXgUbQ0oZG0NuMRpD2uIZQ8bjGENQFhdDs44WQ2SqFUP8RBZDodYWQwuBFkPK6xdDG7UYQ8ubGEPK5BhDcfkXQ1g6F0Po4RdDz+gYQ9TMF0M6KRdDfDcUQ6D1E0OzahJD9d8SQw6RE0O7NhVDQL4WQ8YkFkPL6xNDbWgVQwSpFUOHhRZDn+oWQ3O+FkMYTRZDMB0WQ/xTGEMSfRdDv+oXQ9+BF0PxYxZDsIwVQy4WFUPZ6xRDtEsWQ7zlFUPyiBVDprEWQw=="
                },
                {
                    "stock_output": "BUQoQ75VKUOMdylDa+QpQz4HKkOaZCpDe8UqQ0TGK0N5fCxDWH4sQ6AtLkOEXi1Dg2osQyrMK0N1/CtDWF8pQylgJkO5RyZDBoUjQ7RZIkNzOyJDpIkhQ5aNIkN5UyNDM+UlQ1wxJUPq+iRD1nclQ0C3JUPG+CZD2UYnQ1A/J0OCbiZDQsclQyTvJEOYCCVDsT8kQ+TRJENCSyVDQiklQ1XaJEMEhCRDf1AjQz5PJEPFAyVDpLskQ/BrJUNSFSdD3rwnQ15nKEP1lCZDSvokQ5QCJkMYcyZD2b4mQ+SFJkNgqCVDiAcmQ8SeJUOrOiZDwmwmQ9BLJkOJICVDktklQw=="
                },
                {
                    "stock_output": "5IUgQ4IaIEPcNR9D28seQ/NgHkOwYhxDSX0aQxTxGUO3FxpDan8aQ9CEGkOdYBpDF7UaQ92eGkOaPhpDfDAaQ8kpGkMegBlDsqwaQ8o8G0OH3BtDB30cQ0F2HEN+2xtDyfIbQ17aG0P2nxtDAaYbQycOG0P3QRtDsX0bQw41GkMURxpDlnYaQ7YcGUNeERhDB1wYQ6oNGEMXbRdDFJcYQ94hGEMa4hdDguQYQ4EyGUN1qhlDxtUZQ7rlGUNhJxhDLgIYQ8vuGEPmkxlD4jAZQ/sLGkM65xpDLT4bQ2UdG0PkzBxDTvUcQ8B2HEPz4hxDJsUdQ+a3HUNesh1DccMdQw=="
                },
                {
                    "stock_output": "BkIpQ23tKUM06ypDR2AtQ8AHLUPEuyxD8AAsQ8O3LUPovCtDanwqQ2YfKkPITypDn4QqQybbK0NXritDEmErQ8QzK0Ps+ClDX1YpQz/eKEPEZylDmDUqQ3Z2KkO3VCpDDNspQ157KUP03ylDrHwqQ3mYKkNiSStD7ZcqQ5tiKkPweCpDJXMqQ6cAK0OvVCtDZr0qQ6pnLEPQvSxD+RQtQ5zvLENidS1DeCAtQ1m5LUN71C1Di+0sQ0CQK0Mm8StDLNYrQ6TuLEN09yxDjo0sQ8jKLEMLASxDkYEsQwlGLUPjqi1DYnstQxEJLUPjni5DO4kuQ7w8LkNKGy5Db2MuQw=="
                },
                {
                    "stock_output": "soUjQ1WYI0MyeiNDUAokQysYJENTliRDf0QkQ0ReI0NYeSJDJCQjQwKWI0PmHiRDyHYjQx7kI0My/CNDq9MjQyE1JEMCRyRDT3QkQ4iLJEPKvyRDz88jQ760I0O4oCNDytsjQ/bFI0PWFSRDQpskQ6yPJEPm0SRDuTElQ+QlJUMm3iRDXbUkQ9SsJENJYyRDS48kQwimJEPOpSND6XQjQ1CdI0MD8SJDKGIjQ9szI0Pf+yJDfhMkQzVPI0PuTiND3sQiQ536IkN2fiNDmFUjQzx7IkOsqyJDsQQjQ37vIkMSDiRD0FgkQ9tIJEOwMiVDmcElQ3hWJUOgGiVDEYskQw=="
                },
                {
                    "stock_output": "Nx0mQ1X0KUM6MCpDBmsrQ40XK0NZ6CxDJPosQ340LEOPrCtDPHUsQzJdKkPKbCdDP84iQ1H5I0NEiyRDJfMiQzLEIEPRTCBD3q4gQ0ZUH0OE2SBDvVchQyQCIkMi2SJDM7kgQz6OIEN37R9DJEAiQ/EQIUMQTiFDfUIhQ8dKIEM67CFDvIgiQwYiI0PBSCBDtkAhQ9MVI0OEwyBDT28fQ6bsIEOI3B1D08oeQzGpHEMyhhtD6q8fQzAvHkMIDB5DhnYfQ8b5IUNt1yFDjuAhQ9NNIENd2SFDErwjQ2dWJUOFfyZDrRImQ7VtJ0NZFiVDyOolQ8lvJkPg9yVDgpYkQw=="
                },
                {
                    "stock_output": "0d0gQ5H1H0PqCSBDpLQgQ7b5IEOphyBDifsfQ9YZIEN6KSBDN3ofQ0beH0NWRR9DpksgQ5kyIUMuJh9DhgEfQ350HkPFSx5DctUfQz0qH0M9VyBDxE0iQ6k2IkNDzSFDGs0iQ0xuIkP2KyNDOkgiQ6UhIkOk1iJD/j4jQ74XI0NXFCJDwEEjQ1NQI0OFniNDxqgjQ/RVJEOaIyRDNXAkQ8hcJEP5kSRDNhUkQ3Q7JENuUiVD3PUkQ4aRJUMHCiZDztUlQzhLJkOR7yVD/MUlQxEaJkOrciZD9ssmQ8QYJ0OtyydD/pknQz8YKEMYtydDUYUnQx0aJ0NtwCZDjW4lQw=="
                },
                {
                    "stock_output": "crIoQ03RKUOuaylDcnMqQ7OrKkPA/StDvbMsQ5xMLEMqkyxD/s8tQ0R1LkOydy9DeXwvQwYmL0MszS5DRUguQwDnLUMiYS5D0BouQ0AWLkO/Gi9D/FYuQ+ZXLkPB3SxDFCItQ2MZLUNFyixDOzYsQ6CgK0OTkitD9fgrQyjdK0OA4SxD1sMsQ3X5LEP7+yxDWiktQ2S2LEM0vStDQaoqQ3/LKkOi7ipDlZ4rQy9jLUNmSSxDvEksQ07ULEPTkixDOigsQ1i5K0MqGitDsogpQ21yKUPuJChD6BIqQ47rKENaJChDpMQoQ0vpJ0O73SZDvbwnQ4wnKEPA/yZD7HgnQw=="
                }
            ]
        }
    }
]

Visualizing Predictions with Uncertainty

When sending the requests, we sent the same input multiple times to each model, to potentially gain some insight into the uncertainty of the model predictions. There is some randomness in the sampling process for the transformer and diffusion based models. However, the one-shot model is deterministic, meaning it gives the same output for the same input every time.

Transformer-based Model:

../../_images/sample_1_plot_with_uncertainty1.pdf

One-shot Prediction Model:

../../_images/sample_1_plot_with_uncertainty2.pdf

Diffusion Model:

../../_images/sample_1_plot_with_uncertainty3.pdf

Conclusion

In this tutorial, we’ve explored how to use EIR for stock price prediction tasks. We’ve covered:

  1. Working with stock market data

  2. Configuring and training three different models:

    • Transformer-based model

    • One-shot prediction model

    • Diffusion model

  3. Using EIR’s streaming functionality for efficient array data handling

  4. Visualizing training progress and model predictions

  5. Serving the trained models as web services

  6. Interacting with the served models using Python

  7. Analyzing and visualizing model predictions, including uncertainty estimates

If you made it this far, thank you for reading! We hope this tutorial was helpful in demonstrating the capabilities of EIR for time series prediction tasks.