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:
Historical stock data of daily close prices downloaded for 30 major companies (e.g., AAPL, GOOGL, MSFT) using the
yfinancelibrary, covering the period from 2000 to 2023.The closing prices are discretized into 256 bins.
The data is transformed into sequences of 64 time steps (days) for input, with the corresponding 64 time steps used as the prediction target.
The dataset is split into training (95%) and testing (5%) sets.
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:
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_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_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:
Let’s look at some example predictions:
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:
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:
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):
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:
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_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_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:
Let’s look at some example predictions:
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:
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_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_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:
Let’s look at some example predictions:
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):
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:
[
{
"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:
One-shot Prediction Model:
Diffusion Model:
Conclusion
In this tutorial, we’ve explored how to use EIR for stock price prediction tasks. We’ve covered:
Working with stock market data
Configuring and training three different models:
Transformer-based model
One-shot prediction model
Diffusion model
Using EIR’s streaming functionality for efficient array data handling
Visualizing training progress and model predictions
Serving the trained models as web services
Interacting with the served models using Python
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.