learning_sets#
Name: LearningSets
Version: 1.1.2
Pkg-location: aind_behavior_vr_foraging_curricula.learning_sets
Module README#
LearningSets#
A two-stage curriculum for the learning-set task: every session is a single block of
single-reward-site patches drawn from 7 odors. The odor ordering is regenerated each day
under the same pairing rules as
examples/task_learning_sets.py
(each trial is a (negative, positive) pair; no odor that appeared in the last pair may
reappear). Each odor has a positive variant (always rewarded, p=1) and a negative
variant (always unrewarded, p=0). The curriculum shapes difficulty by gradually
increasing the proportion of negative sites rather than stepping reward probability.
Background: Harlow's learning sets#
The paradigm is inspired by Harry Harlow's classic learning set ("learning to learn") experiments from the late 1940s–50s (Harlow, The Formation of Learning Sets, Psychological Review, 1949). Harlow gave rhesus monkeys a long series of two-choice object-discrimination problems: in each problem one object was consistently rewarded and the other was not, but the rewarded object changed from problem to problem. Early problems were solved slowly and trial-by-trial, but across hundreds of problems the animals learned the rule itself — that one object is always correct — and eventually solved each new problem in essentially a single trial ("win-stay, lose-shift"). The key finding was that they were not just learning individual discriminations but acquiring a transferable strategy: a learning set.
This curriculum recreates that structure in the VR foraging task. Each day presents
fresh (negative, positive) odor pairs drawn under the same rules, so the specific
rewarded odor keeps changing while the underlying rule stays constant — letting us ask
whether the animal forms a learning set and discriminates new pairs faster over time.
Stages#
| Stage | Neg sites / pair | Stop duration | Velocity threshold | Geometry | Reward µL |
|---|---|---|---|---|---|
shaping |
0 → 1 → 3 → 5 (ramped across sessions) | ramps 0.1 → 3 s (within session) | shaped 60 → 8 cm/s | eased compressed → full | 6 default, trimmed in graduated |
graduated |
5 (fixed, full 5+5 ratio) | 3 s (fixed) | 8 cm/s (fixed) | full (fixed) | trimmed toward water budget |
Within the shaping stage the difficulty knobs evolve concurrently:
- Negative-site proportion — session 1: all 10 sites per pair are positive (n_neg = 0,
every stop is rewarded). Subsequent sessions walk
0 → 1 → 3 → 5neg sites per pair viaN_NEG_RAMP, while positive sites fill the remainder to keep the total fixed at 10. This means the animal first just learns to stop (session 1), then is progressively challenged to discriminate which odor is worth stopping for. - Speed — the stop-velocity threshold (cm/s below which a stop counts) starts lenient (60 cm/s) and a GAIN updater drives it down to the final floor (8 cm/s) across sessions.
- Geometry — inter-patch spacing (mean/max
40/70 → 60/190) and reward-site length (25 → 40cm) ease from compressed (easy, day-1) toward full, scaled by how many sites the subject travelled in the prior session (n_patches_seen). Inter-site spacing is fixed at 15 cm. - Stop duration — a tiny operant base (0.1 s) plus a within-session offset that ramps to 3 s, so on the first days a brief dip below the velocity threshold earns reward by chance.
Cross-session policies (start_policies)#
p_introduce_negative_sites(both stages) — readslast_n_neg_sites_per_pairfrom prior metrics, advances to the next step inN_NEG_RAMP = (1, 3, 5), and regeneratespatch_indiceswith the new neg/pos split. None → 0 (first session, all positive); saturates at 5. In thegraduatedstage the ramp is already at 5 and stays there.p_seed_stop_velocity(shaping) — starts the stop-velocity threshold a little above where the prior session floored (× 1.2, clamped to bounds). Dropped fromgraduated, which runs fixed at the floor.p_seed_stop_duration(shaping) — starts the stop-duration offset a little below where the prior session ended (× 0.85), so the subject re-ramps rather than being dropped at the longest stop.p_ease_geometry(shaping) — eases the geometry from compressed toward full, scaled by sites travelled in the prior session.p_water_cap(graduated) — if the prior session delivered more than 1.0 mL the per-reward amount is trimmed by 0.5 µL; if it fell below 0.7 mL the amount is raised by 0.5 µL (both clamped to[4, 8]µL), steering total water toward the target window.
Graduation#
shaping → graduated: negative sites per pair have reached the full ratio (5) and
the stop-velocity threshold has been shaped to its final floor (8 cm/s) and the
subject is discriminating (visit ratio ≤ 0.7, i.e. skipping a meaningful fraction of
negative-odor patches).
Metrics#
LearningSetsMetrics: total_water_consumed, n_patches_seen, n_patches_visited,
last_stop_duration_offset_updater, last_stop_velocity_threshold_updater,
last_n_neg_sites_per_pair, last_reward_amount.
Diagram#
Specification#
{
"pkg_location": "aind_behavior_vr_foraging_curricula.learning_sets",
"name": "LearningSets",
"version": "1.1.2",
"graph": {
"nodes": {
"0": {
"name": "shaping",
"task": {
"name": "AindVrForaging",
"description": "",
"task_parameters": {
"rng_seed": null,
"aind_behavior_services_pkg_version": "0.13.7",
"updaters": {
"StopVelocityThreshold": {
"operation": "Gain",
"parameters": {
"initial_value": 60.0,
"on_success": 0.93,
"on_failure": 0.0,
"increment": 0.93,
"decrement": 0.0,
"minimum": 8.0,
"maximum": 60.0
}
},
"StopDurationOffset": {
"operation": "Offset",
"parameters": {
"initial_value": 0.0,
"on_success": 0.01,
"on_failure": 0.0,
"increment": 0.01,
"decrement": 0.0,
"minimum": 0.0,
"maximum": 2.9
}
}
},
"environment": {
"blocks": [
{
"environment": {
"environment_type": "Sequence",
"patches": [
{
"label": "0_NonRewarded",
"state_index": 0,
"odor_specification": [
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "1_NonRewarded",
"state_index": 1,
"odor_specification": [
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "2_NonRewarded",
"state_index": 2,
"odor_specification": [
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "3_NonRewarded",
"state_index": 3,
"odor_specification": [
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "4_NonRewarded",
"state_index": 4,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "5_NonRewarded",
"state_index": 5,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "6_NonRewarded",
"state_index": 6,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "0_Rewarded",
"state_index": 7,
"odor_specification": [
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "1_Rewarded",
"state_index": 8,
"odor_specification": [
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "2_Rewarded",
"state_index": 9,
"odor_specification": [
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "3_Rewarded",
"state_index": 10,
"odor_specification": [
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "4_Rewarded",
"state_index": 11,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "5_Rewarded",
"state_index": 12,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "6_Rewarded",
"state_index": 13,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.1
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.025
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 70.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 25.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
}
],
"patch_indices": [
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
12,
12,
12,
12,
12,
12,
12,
12,
12,
12,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
11,
11,
11,
11,
11,
11,
11,
11,
11,
11
],
"sampling_mode": "Ordered"
},
"end_conditions": []
}
],
"sampling_mode": "Sequential"
},
"operation_control": {
"movable_spout_control": {
"enabled": false,
"time_to_collect_after_reward": 1.0,
"retracting_distance": 0.0
},
"odor_control": {
"target_total_flow": 1000,
"target_odor_flow": 100
},
"position_control": {
"gain": {
"x": 1.0,
"y": 1.0,
"z": 1.0
},
"initial_position": {
"x": 0.0,
"y": 2.56,
"z": 0.0
},
"frequency_filter_cutoff": 5.0,
"velocity_threshold": 60.0
},
"audio_control": {
"duration": 0.2,
"frequency": 9999.0
},
"wait_to_start_duration": 0.0,
"wait_to_finish_duration": 0.0
}
},
"version": "1.1.2",
"stage_name": "shaping"
},
"graph": {
"nodes": {
"0": "aind_behavior_vr_foraging_curricula.learning_sets.policies.p_introduce_negative_sites",
"1": "aind_behavior_vr_foraging_curricula.learning_sets.policies.p_seed_stop_velocity",
"2": "aind_behavior_vr_foraging_curricula.learning_sets.policies.p_seed_stop_duration",
"3": "aind_behavior_vr_foraging_curricula.learning_sets.policies.p_ease_geometry"
},
"graph": {
"0": [],
"1": [],
"2": [],
"3": []
}
},
"start_policies": [
"aind_behavior_vr_foraging_curricula.learning_sets.policies.p_introduce_negative_sites",
"aind_behavior_vr_foraging_curricula.learning_sets.policies.p_seed_stop_velocity",
"aind_behavior_vr_foraging_curricula.learning_sets.policies.p_seed_stop_duration",
"aind_behavior_vr_foraging_curricula.learning_sets.policies.p_ease_geometry"
],
"metrics_provider": "aind_behavior_vr_foraging_curricula.learning_sets.metrics.metrics_from_dataset"
},
"1": {
"name": "graduated",
"task": {
"name": "AindVrForaging",
"description": "",
"task_parameters": {
"rng_seed": null,
"aind_behavior_services_pkg_version": "0.13.7",
"updaters": {},
"environment": {
"blocks": [
{
"environment": {
"environment_type": "Sequence",
"patches": [
{
"label": "0_NonRewarded",
"state_index": 0,
"odor_specification": [
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "1_NonRewarded",
"state_index": 1,
"odor_specification": [
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "2_NonRewarded",
"state_index": 2,
"odor_specification": [
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "3_NonRewarded",
"state_index": 3,
"odor_specification": [
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "4_NonRewarded",
"state_index": 4,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "5_NonRewarded",
"state_index": 5,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "6_NonRewarded",
"state_index": 6,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "0_Rewarded",
"state_index": 7,
"odor_specification": [
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "1_Rewarded",
"state_index": 8,
"odor_specification": [
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "2_Rewarded",
"state_index": 9,
"odor_specification": [
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "3_Rewarded",
"state_index": 10,
"odor_specification": [
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "4_Rewarded",
"state_index": 11,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "5_Rewarded",
"state_index": 12,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
},
{
"label": "6_Rewarded",
"state_index": 13,
"odor_specification": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"reward_specification": {
"operant_logic": {
"is_operant": false,
"stop_duration": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 3.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"time_to_collect_reward": 100000.0,
"grace_distance_threshold": 10.0
},
"delay": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 0.5
},
"truncation_parameters": null,
"scaling_parameters": null
},
"amount": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 6.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"probability": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"available": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 10.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"reward_function": []
},
"patch_virtual_sites_generator": {
"inter_site": {
"render_specification": {
"contrast": 0.5
},
"label": "InterSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 15.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
},
"inter_patch": {
"render_specification": {
"contrast": 1.0
},
"label": "InterPatch",
"length_distribution": {
"family": "Exponential",
"distribution_parameters": {
"family": "Exponential",
"rate": 0.016666666666666666
},
"truncation_parameters": {
"truncation_mode": "exclude",
"min": 30.0,
"max": 190.0
},
"scaling_parameters": {
"scale": 1.0,
"offset": 30.0
}
},
"treadmill_specification": null
},
"post_patch": null,
"reward_site": {
"render_specification": {
"contrast": 0.5
},
"label": "RewardSite",
"length_distribution": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 40.0
},
"truncation_parameters": null,
"scaling_parameters": null
},
"treadmill_specification": null
}
},
"patch_terminators": [
{
"terminator_type": "OnRewardSite",
"count": {
"family": "Scalar",
"distribution_parameters": {
"family": "Scalar",
"value": 1.0
},
"truncation_parameters": null,
"scaling_parameters": null
}
}
]
}
],
"patch_indices": [
11,
2,
2,
2,
11,
11,
11,
11,
2,
2,
5,
7,
5,
5,
7,
7,
7,
5,
5,
7,
4,
10,
4,
4,
10,
10,
4,
4,
10,
10,
6,
6,
6,
7,
6,
7,
7,
6,
7,
7,
2,
8,
8,
8,
2,
8,
8,
2,
2,
2,
7,
4,
4,
7,
4,
7,
7,
4,
4,
7,
2,
12,
2,
12,
12,
2,
2,
2,
12,
12,
3,
11,
3,
3,
11,
3,
11,
11,
11,
3,
1,
1,
1,
9,
1,
9,
9,
9,
9,
1,
10,
10,
0,
10,
0,
0,
10,
10,
0,
0,
12,
12,
12,
1,
1,
12,
1,
1,
1,
12,
2,
10,
2,
2,
2,
2,
10,
10,
10,
10,
0,
12,
12,
12,
0,
0,
0,
12,
12,
0,
10,
4,
4,
4,
4,
10,
10,
10,
4,
10,
2,
8,
8,
2,
8,
2,
2,
8,
8,
2,
7,
3,
3,
3,
7,
7,
7,
7,
3,
3,
5,
5,
8,
5,
5,
8,
8,
8,
8,
5,
3,
3,
3,
7,
7,
3,
7,
7,
7,
3,
12,
12,
2,
2,
12,
12,
2,
12,
2,
2,
4,
4,
13,
13,
13,
4,
13,
13,
4,
4,
7,
2,
2,
7,
2,
2,
7,
7,
2,
7,
12,
1,
12,
1,
12,
12,
1,
1,
1,
12,
13,
13,
13,
2,
13,
2,
2,
2,
13,
2,
3,
7,
7,
7,
7,
3,
7,
3,
3,
3,
6,
6,
9,
9,
6,
9,
9,
6,
9,
6,
11,
11,
11,
5,
5,
11,
5,
11,
5,
5,
6,
6,
10,
10,
6,
10,
10,
6,
6,
10,
5,
5,
5,
7,
7,
7,
7,
5,
5,
7,
9,
1,
1,
9,
9,
9,
1,
1,
1,
9,
12,
6,
6,
6,
12,
12,
6,
6,
12,
12,
11,
2,
11,
2,
11,
2,
2,
11,
11,
2,
7,
7,
6,
6,
6,
7,
6,
7,
6,
7,
4,
10,
4,
10,
4,
10,
4,
10,
10,
4,
7,
6,
7,
6,
7,
7,
6,
7,
6,
6,
2,
10,
2,
2,
10,
2,
10,
10,
10,
2,
6,
7,
6,
6,
7,
6,
7,
6,
7,
7,
2,
11,
11,
2,
11,
2,
11,
2,
11,
2,
6,
6,
10,
10,
6,
10,
10,
6,
10,
6,
2,
11,
2,
2,
11,
11,
11,
2,
11,
2,
12,
1,
1,
12,
1,
1,
12,
12,
12,
1,
0,
0,
13,
13,
0,
13,
13,
0,
0,
13,
12,
12,
12,
12,
12,
3,
3,
3,
3,
3,
11,
11,
11,
6,
11,
6,
11,
6,
6,
6,
10,
10,
10,
5,
5,
5,
5,
5,
10,
10,
0,
13,
13,
0,
0,
13,
13,
13,
0,
0,
1,
12,
1,
12,
1,
1,
1,
12,
12,
12,
7,
3,
3,
3,
7,
3,
7,
7,
7,
3,
1,
1,
1,
12,
12,
12,
1,
1,
12,
12,
7,
7,
4,
7,
4,
4,
7,
4,
4,
7,
12,
1,
1,
12,
1,
1,
12,
1,
12,
12,
10,
4,
10,
4,
4,
10,
4,
10,
4,
10,
9,
0,
0,
9,
0,
0,
9,
9,
9,
0,
13,
13,
5,
13,
5,
5,
5,
13,
13,
5,
8,
3,
8,
8,
3,
8,
8,
3,
3,
3,
11,
5,
5,
11,
11,
5,
5,
5,
11,
11,
10,
1,
1,
10,
10,
1,
10,
1,
10,
1,
4,
12,
4,
4,
4,
12,
12,
12,
12,
4,
10,
0,
10,
10,
0,
0,
0,
10,
0,
10,
13,
2,
2,
2,
13,
13,
2,
2,
13,
13,
10,
5,
10,
5,
5,
5,
10,
5,
10,
10,
0,
0,
8,
0,
8,
0,
8,
8,
8,
0,
10,
6,
10,
6,
6,
6,
10,
10,
10,
6,
0,
8,
8,
8,
8,
0,
0,
8,
0,
0,
4,
9,
9,
9,
4,
9,
4,
4,
4,
9,
6,
12,
6,
12,
12,
12,
6,
12,
6,
6,
8,
8,
8,
2,
2,
8,
2,
2,
8,
2,
11,
0,
11,
11,
0,
0,
11,
0,
11,
0,
3,
3,
13,
13,
3,
3,
13,
13,
13,
3,
8,
4,
4,
8,
8,
8,
4,
4,
4,
8,
12,
12,
12,
2,
2,
12,
2,
2,
2,
12,
11,
0,
0,
0,
11,
0,
0,
11,
11,
11,
2,
10,
10,
10,
2,
2,
10,
10,
2,
2,
11,
0,
0,
11,
11,
11,
0,
11,
0,
0,
10,
10,
10,
10,
1,
1,
1,
10,
1,
1,
4,
4,
4,
7,
7,
7,
4,
7,
7,
4,
3,
9,
9,
9,
3,
3,
3,
9,
9,
3,
13,
5,
13,
13,
5,
13,
5,
5,
13,
5,
3,
7,
3,
3,
7,
7,
7,
7,
3,
3,
2,
2,
12,
2,
12,
12,
12,
12,
2,
2,
7,
7,
3,
7,
3,
3,
7,
3,
7,
3,
13,
13,
2,
2,
2,
13,
13,
2,
13,
2,
1,
7,
7,
1,
7,
1,
7,
1,
7,
1,
9,
5,
5,
5,
9,
5,
9,
5,
9,
9,
3,
7,
7,
3,
7,
3,
3,
3,
7,
7,
12,
12,
6,
6,
12,
6,
6,
12,
6,
12,
2,
2,
2,
2,
2,
8,
8,
8,
8,
8,
12,
12,
0,
12,
0,
12,
12,
0,
0,
0,
8,
8,
4,
4,
8,
4,
4,
8,
4,
8,
5,
5,
7,
5,
7,
7,
7,
7,
5,
5,
4,
8,
4,
4,
4,
8,
8,
8,
4,
8,
13,
0,
13,
0,
0,
0,
13,
13,
0,
13,
9,
9,
3,
3,
9,
3,
9,
9,
3,
3,
5,
8,
8,
8,
5,
5,
5,
5,
8,
8,
4,
10,
10,
10,
4,
4,
4,
10,
10,
4,
1,
13,
1,
1,
13,
13,
1,
13,
1,
13,
9,
4,
9,
4,
4,
4,
4,
9,
9,
9,
5,
5,
5,
5,
8,
8,
8,
5,
8,
8,
10,
10,
10,
0,
0,
10,
0,
10,
0,
0,
8,
8,
8,
2,
2,
8,
8,
2,
2,
2,
10,
10,
0,
0,
0,
10,
10,
10,
0,
0,
4,
8,
8,
4,
8,
4,
8,
4,
4,
8,
0,
12,
12,
0,
0,
12,
0,
0,
12,
12,
6,
10,
10,
10,
10,
6,
6,
10,
6,
6,
2,
7,
7,
7,
2,
7,
2,
7,
2,
2,
10,
6,
6,
10,
10,
6,
6,
10,
10,
6,
5,
7,
5,
5,
5,
7,
5,
7,
7,
7,
9,
1,
1,
1,
1,
9,
1,
9,
9,
9,
10,
10,
5,
10,
5,
10,
5,
5,
5,
10,
4,
13,
13,
4,
4,
13,
13,
4,
13,
4,
2,
2,
2,
7,
2,
7,
7,
2,
7,
7,
10,
1,
10,
1,
1,
1,
10,
10,
1,
10,
2,
2,
2,
7,
2,
7,
2,
7,
7,
7,
3,
11,
11,
3,
11,
3,
3,
3,
11,
11,
12,
12,
6,
6,
6,
12,
12,
6,
12,
6,
2,
11,
2,
2,
11,
11,
11,
2,
2,
11,
7,
5,
7,
7,
5,
5,
7,
7,
5,
5,
10,
10,
10,
2,
2,
10,
2,
10,
2,
2,
7,
7,
6,
7,
6,
6,
7,
6,
7,
6,
12,
12,
1,
1,
12,
12,
1,
12,
1,
1,
0,
0,
13,
13,
13,
13,
0,
0,
0,
13,
10,
5,
10,
5,
10,
5,
5,
5,
10,
10,
11,
6,
11,
6,
6,
11,
6,
11,
11,
6,
10,
0,
10,
10,
0,
0,
0,
10,
0,
10,
1,
1,
13,
1,
13,
1,
1,
13,
13,
13,
3,
3,
11,
11,
3,
11,
11,
11,
3,
3,
2,
8,
8,
2,
2,
2,
8,
8,
8,
2,
10,
5,
10,
10,
5,
10,
5,
5,
10,
5,
9,
6,
6,
9,
9,
6,
9,
6,
6,
9,
0,
0,
12,
12,
12,
0,
0,
12,
12,
0,
9,
9,
3,
9,
3,
9,
3,
9,
3,
3,
0,
13,
13,
0,
0,
13,
0,
0,
13,
13,
11,
1,
1,
11,
1,
1,
11,
11,
1,
11,
10,
5,
10,
10,
10,
5,
5,
10,
5,
5,
7,
6,
6,
7,
6,
6,
6,
7,
7,
7,
12,
12,
12,
12,
1,
1,
1,
1,
1,
12,
6,
7,
7,
7,
6,
6,
7,
6,
6,
7,
9,
5,
9,
5,
5,
5,
5,
9,
9,
9,
8,
4,
8,
4,
8,
8,
4,
4,
8,
4,
0,
12,
0,
12,
0,
12,
12,
0,
12,
0,
1,
1,
9,
9,
9,
1,
1,
9,
1,
9,
11,
11,
5,
5,
5,
11,
11,
11,
5,
5,
10,
10,
10,
1,
1,
1,
1,
10,
1,
10,
11,
0,
0,
11,
11,
0,
11,
0,
11,
0,
2,
8,
8,
2,
8,
8,
2,
2,
2,
8,
5,
5,
13,
5,
5,
13,
5,
13,
13,
13,
0,
10,
0,
0,
10,
10,
10,
10,
0,
0,
9,
4,
9,
9,
4,
9,
9,
4,
4,
4,
3,
3,
8,
8,
3,
8,
3,
8,
8,
3,
13,
4,
13,
4,
4,
4,
4,
13,
13,
13,
5,
5,
5,
9,
9,
9,
5,
9,
5,
9,
0,
0,
0,
8,
8,
0,
8,
8,
8,
0,
11,
11,
6,
11,
11,
6,
6,
6,
6,
11,
1,
7,
7,
1,
7,
1,
7,
1,
1,
7,
12,
12,
6,
6,
12,
12,
6,
6,
6,
12,
11,
0,
11,
11,
11,
0,
0,
11,
0,
0,
9,
5,
9,
5,
9,
5,
5,
9,
9,
5,
4,
7,
7,
4,
4,
7,
4,
7,
7,
4,
5,
5,
10,
10,
10,
10,
5,
10,
5,
5,
4,
8,
4,
4,
8,
4,
4,
8,
8,
8,
13,
13,
13,
2,
2,
2,
13,
2,
2,
13,
4,
10,
10,
10,
10,
4,
10,
4,
4,
4,
2,
2,
8,
8,
8,
8,
2,
8,
2,
2,
5,
10,
10,
10,
5,
5,
5,
5,
10,
10,
13,
2,
2,
13,
13,
2,
13,
2,
13,
2,
7,
3,
3,
7,
3,
7,
3,
7,
7,
3,
12,
6,
6,
6,
12,
6,
12,
6,
12,
12,
1,
9,
9,
1,
9,
9,
1,
1,
9,
1,
7,
5,
7,
7,
5,
5,
7,
7,
5,
5,
3,
3,
11,
11,
3,
11,
3,
11,
3,
11,
12,
12,
2,
12,
12,
12,
2,
2,
2,
2,
13,
1,
13,
1,
1,
1,
13,
13,
13,
1,
7,
7,
7,
3,
3,
7,
3,
7,
3,
3,
13,
2,
13,
13,
2,
2,
13,
13,
2,
2,
4,
7,
7,
4,
4,
7,
7,
4,
4,
7,
5,
13,
13,
5,
13,
5,
5,
5,
13,
13,
1,
1,
11,
11,
1,
11,
1,
11,
11,
1,
0,
0,
0,
0,
13,
0,
13,
13,
13,
13,
5,
5,
5,
10,
10,
5,
10,
5,
10,
10,
4,
8,
8,
4,
8,
4,
4,
8,
4,
8,
6,
12,
12,
6,
6,
12,
6,
6,
12,
12,
8,
0,
8,
0,
8,
0,
8,
8,
0,
0,
3,
3,
3,
3,
12,
12,
12,
12,
3,
12,
0,
0,
11,
0,
11,
11,
11,
11,
0,
0,
9,
9,
6,
6,
6,
9,
6,
6,
9,
9,
7,
4,
4,
4,
7,
4,
4,
7,
7,
7,
10,
10,
2,
2,
10,
2,
10,
2,
2,
10,
8,
4,
8,
8,
8,
4,
8,
4,
4,
4,
10,
5,
5,
10,
10,
5,
5,
5,
10,
10,
4,
13,
4,
13,
13,
13,
4,
4,
4,
13,
0,
9,
9,
0,
0,
0,
0,
9,
9,
9,
4,
4,
4,
8,
8,
8,
4,
8,
4,
8,
6,
7,
6,
6,
7,
6,
7,
6,
7,
7,
3,
3,
8,
8,
3,
3,
8,
8,
8,
3,
9,
9,
9,
9,
5,
5,
5,
9,
5,
5,
11,
0,
11,
11,
0,
11,
0,
0,
0,
11,
9,
9,
1,
9,
9,
9,
1,
1,
1,
1,
12,
6,
6,
12,
12,
12,
6,
12,
6,
6,
0,
0,
0,
10,
0,
10,
10,
10,
10,
0,
5,
5,
8,
5,
8,
8,
8,
8,
5,
5,
4,
4,
13,
13,
4,
13,
13,
13,
4,
4,
7,
2,
2,
2,
7,
2,
7,
7,
7,
2,
12,
12,
6,
6,
6,
6,
12,
12,
12,
6,
1,
1,
7,
1,
1,
7,
7,
7,
7,
1,
2,
2,
12,
2,
12,
2,
12,
12,
2,
12,
8,
8,
8,
3,
3,
3,
8,
8,
3,
3,
0,
0,
12,
12,
0,
0,
12,
0,
12,
12,
1,
1,
9,
9,
1,
1,
9,
9,
9,
1,
5,
13,
5,
13,
5,
5,
13,
13,
5,
13,
10,
2,
2,
2,
10,
10,
2,
2,
10,
10,
6,
6,
6,
6,
6,
11,
11,
11,
11,
11,
8,
8,
8,
3,
3,
8,
3,
3,
8,
3,
2,
7,
7,
2,
7,
2,
2,
7,
2,
7,
6,
8,
6,
8,
8,
8,
6,
6,
8,
6,
11,
5,
11,
11,
11,
5,
11,
5,
5,
5,
3,
3,
3,
7,
7,
7,
3,
7,
3,
7,
4,
8,
4,
8,
4,
4,
4,
8,
8,
8,
0,
12,
12,
0,
0,
0,
12,
12,
0,
12,
3,
3,
13,
3,
3,
13,
13,
13,
3,
13,
0,
8,
0,
8,
8,
8,
0,
0,
8,
0,
4,
12,
12,
4,
12,
12,
4,
12,
4,
4,
9,
9,
6,
6,
6,
9,
6,
9,
9,
6,
7,
4,
7,
7,
4,
7,
7,
4,
4,
4,
13,
13,
13,
13,
3,
3,
13,
3,
3,
3,
7,
2,
7,
2,
7,
2,
7,
7,
2,
2,
1,
10,
1,
10,
10,
10,
1,
1,
10,
1,
4,
7,
7,
4,
4,
4,
4,
7,
7,
7,
13,
13,
2,
2,
13,
13,
2,
2,
2,
13,
11,
11,
1,
1,
11,
1,
11,
1,
1,
11,
2,
2,
12,
12,
2,
12,
12,
12,
2,
2,
13,
0,
13,
0,
0,
13,
0,
0,
13,
13,
8,
3,
8,
8,
8,
3,
3,
3,
3,
8,
11,
0,
11,
0,
0,
11,
11,
11,
0,
0,
1,
1,
12,
12,
12,
12,
1,
1,
1,
12,
13,
4,
4,
13,
13,
13,
4,
4,
4,
13,
2,
2,
2,
7,
7,
2,
2,
7,
7,
7,
8,
8,
6,
6,
8,
8,
6,
6,
8,
6,
0,
0,
0,
11,
11,
11,
0,
11,
0,
11,
5,
13,
13,
13,
5,
5,
5,
13,
5,
13,
0,
10,
10,
0,
10,
0,
10,
0,
0,
10,
4,
4,
12,
4,
12,
12,
4,
4,
12,
12,
8,
3,
8,
3,
8,
3,
8,
3,
3,
8,
11,
0,
11,
11,
11,
0,
11,
0,
0,
0,
6,
9,
9,
9,
9,
6,
6,
6,
9,
6,
1,
1,
12,
12,
1,
12,
12,
1,
12,
1,
9,
3,
3,
9,
9,
9,
3,
9,
3,
3,
12,
1,
1,
12,
12,
12,
1,
12,
1,
1,
13,
4,
4,
13,
4,
4,
13,
13,
13,
4,
0,
10,
0,
10,
10,
0,
10,
0,
0,
10,
1,
1,
12,
12,
1,
1,
12,
1,
12,
12,
3,
3,
7,
3,
3,
7,
3,
7,
7,
7,
13,
13,
13,
1,
1,
1,
13,
1,
1,
13,
11,
3,
3,
3,
11,
3,
11,
11,
3,
11,
1,
1,
13,
13,
13,
13,
1,
13,
1,
1,
0,
0,
10,
0,
10,
0,
10,
0,
10,
10,
12,
12,
2,
12,
2,
2,
2,
2,
12,
12,
13,
13,
13,
13,
1,
1,
1,
1,
13,
1,
4,
12,
4,
12,
4,
4,
4,
12,
12,
12,
8,
0,
0,
0,
8,
0,
8,
8,
0,
8,
6,
12,
6,
12,
12,
12,
6,
12,
6,
6,
0,
10,
0,
10,
10,
10,
0,
10,
0,
0,
5,
8,
5,
8,
8,
5,
5,
8,
5,
8,
9,
9,
6,
9,
6,
9,
6,
9,
6,
6,
12,
12,
12,
1,
1,
1,
12,
12,
1,
1,
13,
0,
13,
0,
13,
13,
0,
0,
0,
13,
12,
1,
1,
1,
12,
1,
12,
12,
12,
1,
6,
7,
6,
6,
7,
6,
7,
6,
7,
7,
12,
1,
1,
12,
12,
1,
12,
1,
1,
12,
7,
7,
2,
7,
7,
2,
2,
2,
7,
2,
1,
12,
1,
12,
12,
1,
12,
1,
12,
1,
10,
6,
6,
6,
6,
10,
6,
10,
10,
10,
5,
7,
5,
5,
7,
7,
7,
5,
7,
5,
9,
9,
6,
6,
6,
9,
6,
9,
9,
6,
1,
1,
10,
1,
10,
1,
10,
10,
10,
1,
5,
13,
5,
13,
5,
13,
5,
5,
13,
13,
8,
8,
8,
8,
3,
3,
8,
3,
3,
3,
5,
13,
5,
5,
5,
13,
5,
13,
13,
13,
4,
8,
8,
4,
8,
4,
4,
8,
8,
4,
3,
13,
3,
13,
13,
3,
3,
13,
3,
13,
4,
7,
4,
4,
7,
4,
7,
7,
7,
4,
5,
5,
9,
9,
5,
9,
5,
9,
9,
5,
11,
3,
11,
3,
11,
3,
3,
11,
11,
3,
6,
6,
9,
9,
9,
6,
9,
9,
6,
6,
8,
8,
0,
8,
8,
0,
8,
0,
0,
0,
12,
12,
6,
6,
12,
6,
12,
6,
12,
6,
0,
8,
0,
0,
8,
8,
8,
8,
0,
0,
6,
11,
6,
11,
6,
11,
6,
11,
11,
6,
12,
3,
3,
12,
3,
12,
12,
3,
3,
12,
8,
4,
4,
4,
8,
4,
4,
8,
8,
8,
12,
2,
12,
2,
2,
2,
12,
12,
2,
12,
7,
4,
7,
4,
7,
7,
4,
4,
7,
4,
13,
13,
13,
13,
1,
1,
1,
1,
13,
1,
4,
10,
10,
10,
4,
4,
4,
10,
4,
10,
1,
12,
1,
1,
12,
12,
1,
12,
1,
12,
0,
10,
0,
10,
0,
10,
10,
10,
0,
0,
11,
2,
11,
2,
11,
11,
11,
2,
2,
2,
7,
7,
3,
7,
7,
3,
3,
3,
7,
3,
5,
11,
5,
5,
11,
5,
5,
11,
11,
11,
0,
8,
8,
0,
0,
8,
0,
0,
8,
8,
9,
3,
9,
9,
9,
3,
3,
3,
3,
9,
8,
8,
0,
8,
0,
8,
0,
0,
8,
0,
10,
2,
10,
2,
2,
10,
10,
2,
2,
10,
13,
13,
1,
13,
13,
1,
13,
1,
1,
1,
9,
9,
3,
3,
9,
9,
9,
3,
3,
3,
11,
0,
11,
0,
11,
0,
11,
11,
0,
0,
13,
5,
5,
13,
5,
13,
5,
13,
13,
5,
8,
3,
8,
3,
3,
8,
8,
3,
8,
3,
7,
6,
7,
7,
7,
6,
6,
7,
6,
6,
5,
10,
10,
5,
10,
5,
10,
5,
10,
5,
13,
4,
4,
4,
13,
13,
13,
4,
13,
4,
1,
1,
1,
1,
1,
9,
9,
9,
9,
9,
10,
10,
0,
10,
0,
10,
10,
0,
0,
0,
4,
12,
12,
4,
4,
4,
4,
12,
12,
12,
8,
6,
8,
8,
8,
6,
6,
8,
6,
6,
5,
5,
11,
11,
11,
5,
11,
11,
5,
5,
9,
9,
9,
9,
3,
9,
3,
3,
3,
3,
12,
0,
0,
0,
12,
12,
12,
0,
0,
12,
11,
1,
1,
1,
11,
1,
11,
11,
1,
11,
9,
6,
9,
9,
6,
9,
6,
6,
6,
9,
11,
11,
11,
1,
1,
1,
11,
1,
11,
1,
9,
3,
3,
3,
9,
3,
3,
9,
9,
9,
5,
5,
11,
5,
11,
5,
11,
11,
5,
11,
3,
3,
9,
9,
3,
3,
9,
9,
3,
9,
6,
7,
7,
7,
7,
6,
6,
7,
6,
6,
12,
3,
3,
12,
12,
3,
3,
12,
12,
3,
6,
6,
6,
6,
9,
6,
9,
9,
9,
9,
4,
4,
10,
4,
10,
10,
10,
4,
10,
4,
13,
13,
5,
13,
13,
5,
5,
5,
13,
5,
0,
0,
10,
0,
10,
10,
10,
0,
10,
0,
9,
9,
4,
4,
9,
4,
9,
4,
4,
9,
8,
8,
8,
8,
5,
8,
5,
5,
5,
5,
0,
0,
13,
0,
13,
0,
13,
13,
0,
13,
5,
10,
5,
10,
10,
10,
5,
10,
5,
5,
8,
8,
4,
8,
4,
8,
4,
4,
4,
8,
13,
13,
5,
13,
5,
13,
5,
5,
13,
5,
3,
11,
11,
3,
3,
3,
11,
3,
11,
11,
5,
8,
5,
8,
8,
5,
5,
8,
5,
8,
11,
11,
0,
11,
0,
11,
0,
11,
0,
0,
3,
8,
8,
3,
3,
8,
3,
3,
8,
8,
4,
4,
9,
4,
9,
4,
9,
9,
9,
4,
5,
10,
10,
5,
10,
5,
5,
10,
10,
5,
1,
11,
1,
11,
11,
1,
1,
1,
11,
11,
6,
12,
12,
12,
6,
12,
12,
6,
6,
6,
7,
7,
7,
1,
1,
7,
1,
1,
1,
7,
11,
6,
6,
11,
11,
6,
6,
11,
6,
11,
3,
8,
3,
8,
3,
8,
3,
8,
3,
8,
6,
6,
6,
6,
11,
11,
11,
6,
11,
11,
5,
8,
8,
5,
8,
5,
5,
8,
5,
8,
4,
4,
9,
9,
9,
4,
9,
4,
9,
4,
7,
1,
1,
7,
1,
7,
7,
1,
1,
7,
10,
5,
5,
5,
5,
5,
10,
10,
10,
10,
8,
6,
8,
6,
6,
8,
8,
6,
6,
8,
9,
9,
9,
3,
3,
9,
3,
9,
3,
3,
13,
13,
4,
13,
4,
13,
4,
13,
4,
4,
2,
2,
2,
2,
8,
2,
8,
8,
8,
8,
6,
10,
10,
10,
6,
10,
6,
10,
6,
6,
7,
2,
7,
7,
2,
2,
7,
7,
2,
2,
12,
3,
3,
12,
3,
3,
12,
12,
3,
12,
9,
9,
9,
6,
6,
6,
6,
6,
9,
9,
3,
11,
11,
11,
3,
3,
11,
11,
3,
3,
13,
13,
13,
1,
13,
1,
1,
1,
13,
1,
5,
9,
9,
9,
5,
9,
5,
9,
5,
5,
10,
10,
10,
0,
0,
0,
10,
10,
0,
0,
9,
1,
1,
1,
1,
1,
9,
9,
9,
9,
5,
5,
13,
5,
13,
5,
13,
13,
5,
13,
1,
1,
11,
11,
1,
1,
11,
11,
1,
11,
7,
3,
3,
3,
7,
3,
3,
7,
7,
7,
13,
5,
13,
13,
5,
5,
5,
13,
13,
5,
3,
3,
8,
3,
8,
8,
8,
8,
3,
3,
7,
6,
6,
7,
6,
6,
6,
7,
7,
7,
12,
12,
12,
2,
2,
2,
2,
12,
2,
12,
13,
4,
13,
4,
13,
13,
4,
13,
4,
4,
10,
10,
10,
10,
2,
10,
2,
2,
2,
2,
12,
6,
6,
12,
6,
12,
6,
12,
12,
6,
4,
4,
7,
7,
4,
7,
7,
7,
4,
4,
6,
8,
6,
8,
6,
8,
8,
6,
8,
6,
0,
0,
11,
11,
0,
11,
0,
11,
0,
11,
2,
10,
10,
2,
10,
2,
2,
2,
10,
10,
1,
12,
12,
1,
12,
12,
1,
1,
12,
1,
11,
0,
0,
11,
0,
0,
11,
0,
11,
11,
1,
10,
10,
10,
1,
1,
10,
1,
10,
1,
4,
13,
13,
13,
4,
4,
13,
4,
13,
4,
8,
8,
2,
2,
2,
2,
2,
8,
8,
8,
10,
10,
6,
6,
6,
10,
10,
6,
10,
6,
5,
5,
5,
11,
11,
5,
5,
11,
11,
11,
9,
0,
0,
9,
9,
0,
9,
0,
0,
9,
3,
13,
13,
3,
3,
3,
13,
3,
13,
13,
4,
7,
7,
4,
4,
7,
7,
7,
4,
4,
10,
5,
5,
5,
10,
5,
5,
10,
10,
10,
0,
0,
11,
0,
11,
11,
0,
0,
11,
11,
13,
3,
3,
13,
3,
3,
13,
3,
13,
13,
5,
5,
5,
8,
8,
5,
8,
8,
5,
8,
10,
6,
10,
10,
10,
10,
6,
6,
6,
6,
1,
12,
1,
1,
12,
12,
1,
1,
12,
12,
6,
6,
7,
7,
6,
6,
7,
7,
7,
6,
3,
11,
11,
3,
11,
3,
11,
3,
11,
3,
0,
13,
0,
13,
0,
13,
13,
0,
0,
13,
3,
11,
11,
11,
3,
11,
3,
11,
3,
3,
2,
2,
2,
2,
13,
13,
13,
13,
2,
13,
0,
8,
8,
0,
8,
8,
0,
0,
8,
0,
6,
6,
12,
12,
6,
12,
6,
6,
12,
12,
10,
10,
10,
1,
1,
1,
1,
10,
10,
1,
11,
6,
11,
11,
6,
6,
6,
6,
11,
11,
10,
10,
5,
5,
10,
10,
10,
5,
5,
5,
8,
8,
8,
8,
4,
4,
8,
4,
4,
4,
12,
0,
12,
12,
0,
0,
0,
12,
0,
12,
8,
8,
8,
8,
2,
2,
8,
2,
2,
2,
10,
6,
6,
10,
10,
6,
6,
10,
6,
10,
12,
2,
2,
2,
2,
12,
12,
12,
12,
2,
6,
10,
6,
6,
10,
6,
6,
10,
10,
10,
1,
9,
1,
1,
1,
1,
9,
9,
9,
9,
13,
3,
13,
3,
13,
3,
13,
3,
13,
3,
11,
11,
11,
11,
11,
1,
1,
1,
1,
1,
12,
6,
6,
6,
12,
12,
6,
12,
6,
12,
3,
9,
3,
9,
3,
3,
9,
9,
3,
9,
8,
6,
6,
6,
8,
6,
8,
8,
6,
8,
2,
2,
2,
12,
2,
12,
2,
12,
12,
12,
0,
11,
0,
0,
11,
11,
11,
11,
0,
0,
13,
13,
13,
1,
1,
1,
1,
13,
1,
13,
11,
11,
5,
11,
5,
5,
11,
5,
11,
5,
1,
1,
9,
9,
9,
9,
1,
9,
1,
1,
11,
11,
3,
11,
3,
11,
11,
3,
3,
3,
7,
7,
7,
5,
5,
5,
7,
5,
7,
5,
11,
11,
3,
11,
11,
11,
3,
3,
3,
3,
5,
5,
5,
5,
7,
7,
7,
7,
7,
5,
9,
9,
1,
1,
9,
1,
9,
9,
1,
1,
6,
6,
6,
6,
6,
11,
11,
11,
11,
11,
12,
3,
3,
3,
12,
12,
3,
12,
3,
12,
0,
0,
0,
11,
11,
11,
0,
0,
11,
11,
13,
13,
5,
13,
5,
13,
5,
5,
5,
13,
10,
4,
10,
4,
10,
10,
4,
4,
10,
4,
8,
0,
8,
8,
8,
8,
0,
0,
0,
0,
2,
11,
2,
11,
2,
11,
11,
2,
2,
11,
13,
13,
0,
0,
13,
0,
0,
13,
13,
0,
8,
8,
8,
5,
8,
8,
5,
5,
5,
5,
11,
6,
6,
11,
11,
6,
6,
11,
11,
6,
9,
9,
9,
3,
3,
3,
9,
3,
9,
3,
11,
11,
11,
5,
5,
11,
11,
5,
5,
5,
0,
0,
0,
0,
10,
0,
10,
10,
10,
10,
1,
1,
1,
12,
1,
12,
12,
12,
1,
12,
9,
9,
3,
9,
9,
3,
9,
3,
3,
3,
12,
12,
1,
12,
12,
1,
1,
1,
1,
12,
0,
13,
13,
0,
13,
0,
0,
13,
0,
13,
8,
8,
8,
3,
3,
3,
3,
8,
3,
8,
11,
11,
11,
2,
2,
2,
2,
11,
2,
11,
1,
12,
1,
12,
12,
1,
1,
12,
1,
12,
4,
9,
4,
9,
9,
4,
9,
4,
4,
9,
7,
6,
6,
7,
6,
6,
7,
7,
6,
7,
12,
4,
4,
12,
12,
4,
12,
4,
4,
12,
8,
8,
6,
8,
8,
6,
6,
6,
8,
6,
3,
11,
11,
3,
11,
3,
11,
3,
3,
11,
2,
12,
2,
2,
2,
12,
12,
2,
12,
12,
13,
4,
13,
13,
4,
4,
4,
4,
13,
13,
1,
9,
9,
1,
1,
1,
9,
9,
9,
1,
5,
5,
11,
11,
11,
11,
5,
5,
11,
5,
13,
13,
1,
13,
1,
13,
1,
1,
13,
1,
10,
10,
10,
5,
5,
10,
5,
10,
5,
5,
8,
4,
4,
8,
4,
8,
4,
8,
4,
8,
10,
2,
10,
2,
10,
10,
2,
2,
2,
10,
1,
7,
7,
1,
7,
7,
7,
1,
1,
1,
12,
2,
12,
2,
12,
2,
2,
2,
12,
12,
10,
4,
4,
4,
4,
10,
10,
10,
10,
4,
5,
5,
8,
8,
5,
8,
8,
5,
5,
8,
7,
7,
7,
2,
2,
7,
7,
2,
2,
2,
4,
4,
4,
12,
12,
12,
12,
12,
4,
4,
3,
7,
3,
3,
7,
7,
7,
7,
3,
3,
2,
11,
11,
2,
11,
11,
2,
2,
2,
11,
0,
12,
12,
0,
12,
0,
0,
0,
12,
12,
11,
1,
11,
1,
11,
1,
11,
1,
1,
11,
6,
9,
9,
6,
9,
6,
6,
9,
9,
6,
7,
7,
1,
1,
1,
7,
1,
7,
1,
7,
2,
11,
11,
2,
2,
11,
2,
11,
11,
2,
8,
6,
6,
8,
8,
6,
8,
6,
6,
8,
2,
12,
2,
2,
12,
2,
12,
12,
2,
12,
0,
11,
11,
0,
0,
11,
11,
0,
11,
0,
3,
8,
8,
8,
3,
3,
3,
8,
3,
8,
12,
6,
12,
12,
6,
12,
6,
6,
6,
12,
10,
10,
10,
10,
4,
4,
4,
4,
10,
4,
7,
6,
6,
7,
7,
6,
6,
7,
6,
7,
10,
10,
1,
1,
10,
10,
1,
1,
10,
1,
11,
5,
5,
11,
11,
5,
11,
5,
11,
5,
3,
3,
7,
7,
3,
7,
7,
3,
3,
7,
5,
9,
9,
5,
9,
5,
9,
5,
9,
5,
4,
4,
13,
13,
13,
13,
4,
4,
4,
13,
3,
3,
12,
12,
12,
3,
3,
12,
3,
12,
0,
0,
11,
0,
11,
11,
0,
0,
11,
11,
8,
5,
5,
5,
5,
8,
8,
8,
8,
5,
10,
10,
0,
0,
0,
10,
10,
10,
0,
0,
8,
4,
8,
8,
4,
4,
4,
4,
8,
8,
9,
0,
9,
9,
0,
0,
0,
0,
9,
9,
3,
12,
12,
3,
3,
12,
3,
12,
3,
12,
7,
4,
4,
4,
7,
7,
7,
4,
7,
4,
2,
2,
2,
8,
8,
8,
2,
8,
2,
8,
4,
4,
4,
13,
13,
13,
13,
4,
4,
13,
2,
2,
2,
8,
8,
8,
2,
8,
8,
2,
13,
13,
0,
13,
0,
13,
0,
0,
13,
0,
5,
5,
10,
10,
10,
5,
10,
5,
10,
5,
8,
8,
2,
8,
8,
2,
8,
2,
2,
2,
11,
11,
11,
0,
0,
11,
11,
0,
0,
0,
6,
6,
9,
6,
6,
9,
9,
9,
6,
9,
5,
7,
5,
7,
5,
7,
7,
7,
5,
5,
8,
3,
8,
3,
3,
3,
8,
3,
8,
8,
7,
6,
7,
6,
7,
6,
6,
6,
7,
7,
12,
3,
3,
3,
3,
12,
12,
3,
12,
12,
9,
1,
9,
1,
1,
1,
9,
1,
9,
9,
11,
0,
11,
0,
0,
11,
11,
0,
11,
0,
6,
6,
8,
8,
8,
6,
8,
8,
6,
6,
4,
9,
4,
4,
9,
4,
4,
9,
9,
9,
0,
0,
12,
12,
0,
12,
12,
12,
0,
0,
6,
9,
9,
9,
6,
9,
9,
6,
6,
6,
10,
10,
4,
4,
4,
10,
4,
10,
4,
10,
2,
8,
2,
8,
2,
2,
8,
8,
2,
8,
10,
4,
4,
10,
4,
10,
10,
4,
4,
10,
5,
5,
5,
13,
13,
5,
13,
5,
13,
13,
3,
11,
3,
3,
11,
11,
11,
3,
11,
3,
12,
6,
12,
6,
6,
12,
12,
12,
6,
6,
10,
1,
10,
10,
1,
10,
10,
1,
1,
1,
11,
2,
2,
11,
11,
2,
11,
2,
2,
11,
10,
6,
6,
6,
6,
10,
10,
6,
10,
10,
11,
11,
2,
11,
2,
2,
2,
11,
11,
2,
13,
5,
13,
5,
13,
5,
13,
5,
5,
13,
11,
11,
3,
11,
11,
11,
3,
3,
3,
3,
0,
13,
0,
0,
13,
13,
0,
0,
13,
13,
11,
5,
11,
11,
11,
5,
5,
11,
5,
5,
9,
9,
3,
9,
9,
9,
3,
3,
3,
3,
6,
12,
12,
6,
6,
6,
12,
12,
6,
12,
1,
7,
1,
1,
1,
7,
1,
7,
7,
7,
6,
6,
6,
10,
10,
10,
10,
6,
10,
6,
7,
2,
2,
7,
7,
7,
7,
2,
2,
2,
13,
13,
13,
1,
1,
13,
13,
1,
1,
1,
2,
12,
12,
2,
12,
2,
2,
2,
12,
12,
8,
8,
8,
6,
8,
6,
6,
6,
8,
6,
7,
5,
5,
7,
5,
5,
7,
7,
7,
5,
2,
8,
2,
2,
8,
8,
8,
2,
8,
2,
11,
11,
0,
11,
0,
0,
0,
11,
11,
0,
5,
13,
5,
5,
5,
13,
5,
13,
13,
13,
4,
8,
4,
4,
4,
8,
8,
8,
8,
4,
0,
0,
13,
13,
13,
13,
0,
0,
0,
13,
11,
5,
11,
11,
5,
5,
5,
11,
11,
5,
3,
3,
9,
9,
3,
3,
9,
9,
3,
9,
5,
5,
13,
13,
5,
5,
5,
13,
13,
13,
11,
0,
11,
0,
0,
11,
0,
11,
11,
0,
12,
1,
1,
12,
12,
1,
1,
1,
12,
12,
11,
11,
11,
6,
6,
11,
6,
6,
11,
6,
8,
2,
8,
2,
8,
2,
2,
8,
8,
2,
6,
7,
6,
7,
6,
7,
7,
6,
6,
7,
5,
5,
5,
11,
11,
5,
11,
11,
11,
5,
0,
10,
0,
0,
10,
10,
0,
10,
10,
0,
8,
2,
8,
8,
2,
2,
8,
8,
2,
2,
12,
12,
12,
3,
3,
12,
3,
12,
3,
3,
7,
1,
1,
7,
7,
7,
1,
1,
1,
7,
12,
12,
3,
3,
3,
12,
3,
12,
12,
3,
1,
7,
1,
1,
1,
1,
7,
7,
7,
7,
2,
10,
10,
10,
2,
2,
2,
10,
2,
10,
13,
1,
13,
1,
13,
1,
13,
1,
13,
1,
12,
0,
0,
12,
0,
12,
0,
12,
0,
12,
9,
9,
4,
9,
9,
4,
4,
4,
9,
4,
0,
13,
13,
13,
0,
0,
13,
0,
13,
0,
9,
4,
9,
4,
9,
4,
9,
4,
4,
9,
1,
13,
1,
13,
1,
1,
1,
13,
13,
13,
7,
4,
4,
7,
7,
7,
4,
7,
4,
4,
6,
10,
10,
6,
6,
10,
10,
10,
6,
6,
1,
1,
12,
12,
1,
12,
12,
1,
12,
1,
4,
13,
4,
13,
13,
13,
4,
4,
13,
4,
9,
9,
9,
9,
9,
0,
0,
0,
0,
0,
5,
8,
8,
5,
5,
5,
8,
8,
8,
5,
10,
0,
0,
0,
0,
10,
0,
10,
10,
10,
8,
8,
6,
6,
8,
8,
8,
6,
6,
6,
5,
10,
5,
10,
10,
5,
10,
5,
5,
10,
6,
9,
9,
6,
9,
9,
6,
6,
6,
9,
10,
1,
1,
1,
10,
1,
10,
1,
10,
10,
4,
7,
7,
7,
4,
7,
7,
4,
4,
4,
3,
3,
3,
13,
13,
13,
3,
3,
13,
13,
8,
8,
2,
8,
2,
2,
2,
8,
8,
2,
5,
13,
13,
13,
5,
5,
13,
13,
5,
5,
11,
2,
2,
11,
2,
11,
11,
11,
2,
2,
5,
13,
13,
13,
13,
5,
13,
5,
5,
5,
8,
2,
8,
2,
8,
2,
2,
2,
8,
8,
11,
11,
6,
11,
6,
6,
6,
11,
6,
11,
10,
2,
2,
2,
10,
2,
10,
2,
10,
10,
7,
4,
4,
7,
7,
7,
4,
4,
7,
4,
6,
6,
8,
8,
8,
8,
6,
6,
8,
6,
0,
0,
10,
10,
0,
10,
0,
0,
10,
10,
11,
11,
2,
11,
2,
2,
2,
11,
11,
2,
8,
5,
8,
5,
5,
5,
5,
8,
8,
8,
9,
6,
9,
9,
6,
9,
9,
6,
6,
6,
11,
5,
5,
11,
5,
11,
5,
5,
11,
11,
8,
2,
2,
2,
8,
8,
8,
8,
2,
2,
7,
3,
3,
3,
7,
3,
3,
7,
7,
7,
12,
2,
2,
2,
12,
2,
12,
2,
12,
12,
3,
3,
7,
3,
7,
7,
3,
3,
7,
7,
11,
11,
5,
5,
11,
5,
11,
11,
5,
5,
7,
7,
1,
1,
1,
1,
7,
7,
1,
7,
6,
6,
6,
11,
6,
6,
11,
11,
11,
11,
0,
0,
12,
0,
12,
12,
12,
12,
0,
0,
11,
11,
11,
1,
1,
11,
1,
1,
11,
1,
2,
10,
10,
2,
2,
10,
2,
10,
2,
10,
13,
0,
13,
0,
0,
13,
13,
0,
0,
13,
9,
1,
9,
9,
1,
9,
1,
1,
1,
9,
4,
7,
7,
4,
4,
4,
7,
7,
4,
7,
9,
9,
3,
9,
3,
3,
9,
3,
9,
3,
5,
5,
7,
5,
7,
7,
7,
7,
5,
5,
11,
3,
11,
3,
3,
11,
11,
3,
11,
3,
7,
2,
2,
7,
7,
2,
2,
7,
7,
2,
8,
4,
4,
8,
4,
8,
8,
8,
4,
4,
5,
9,
9,
9,
5,
5,
9,
9,
5,
5,
8,
0,
0,
8,
0,
8,
8,
0,
0,
8,
3,
3,
13,
13,
13,
3,
3,
13,
13,
3,
0,
8,
0,
8,
0,
0,
8,
0,
8,
8,
9,
4,
9,
4,
4,
9,
9,
4,
9,
4,
3,
7,
7,
3,
3,
3,
7,
7,
7,
3,
11,
2,
11,
11,
11,
2,
2,
11,
2,
2,
5,
7,
7,
5,
7,
5,
5,
7,
7,
5,
9,
3,
9,
9,
9,
3,
3,
3,
3,
9,
7,
7,
7,
5,
7,
5,
7,
5,
5,
5,
13,
13,
2,
2,
2,
13,
13,
2,
2,
13,
7,
7,
7,
3,
7,
7,
3,
3,
3,
3,
2,
2,
13,
2,
13,
13,
13,
13,
2,
2,
8,
8,
3,
8,
3,
8,
8,
3,
3,
3,
2,
7,
7,
7,
7,
7,
2,
2,
2,
2,
11,
5,
5,
11,
5,
11,
5,
11,
5,
11,
3,
13,
3,
3,
3,
3,
13,
13,
13,
13,
8,
4,
8,
4,
8,
4,
8,
8,
4,
4,
2,
2,
2,
7,
7,
7,
2,
7,
2,
7,
11,
11,
3,
3,
3,
3,
3,
11,
11,
11,
0,
12,
0,
0,
0,
0,
12,
12,
12,
12,
4,
8,
8,
8,
4,
8,
4,
8,
4,
4,
7,
7,
3,
7,
7,
3,
3,
3,
7,
3,
8,
8,
6,
8,
6,
8,
6,
8,
6,
6,
5,
5,
11,
11,
5,
11,
5,
11,
5,
11,
8,
3,
3,
3,
8,
3,
8,
8,
8,
3,
12,
12,
12,
4,
12,
4,
4,
12,
4,
4,
7,
7,
1,
7,
1,
1,
7,
1,
1,
7,
5,
11,
5,
11,
11,
5,
11,
11,
5,
5,
10,
10,
10,
10,
6,
6,
6,
10,
6,
6,
4,
12,
4,
4,
12,
12,
4,
4,
12,
12,
13,
13,
13,
13,
1,
1,
1,
1,
13,
1,
4,
4,
10,
10,
4,
10,
4,
4,
10,
10,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
10,
10,
10,
4,
4,
4,
4,
10,
4,
10,
7,
7,
2,
7,
2,
7,
2,
2,
7,
2,
13,
1,
13,
1,
1,
13,
1,
13,
13,
1,
3,
7,
7,
7,
3,
3,
7,
3,
7,
3,
1,
11,
11,
1,
11,
11,
1,
11,
1,
1,
12,
12,
12,
12,
0,
12,
0,
0,
0,
0,
4,
4,
4,
10,
10,
10,
4,
10,
10,
4,
6,
7,
7,
6,
7,
7,
6,
6,
6,
7,
9,
5,
5,
9,
5,
5,
5,
9,
9,
9,
4,
4,
4,
13,
4,
4,
13,
13,
13,
13,
12,
12,
0,
0,
12,
12,
0,
0,
0,
12,
1,
10,
1,
10,
10,
1,
1,
10,
1,
10,
9,
9,
4,
4,
9,
4,
4,
9,
9,
4,
1,
1,
1,
1,
10,
10,
10,
1,
10,
10,
6,
11,
6,
11,
6,
6,
11,
11,
11,
6,
12,
3,
3,
12,
12,
12,
3,
3,
3,
12,
4,
9,
4,
9,
4,
9,
4,
9,
9,
4,
1,
12,
12,
12,
12,
1,
1,
1,
12,
1,
2,
11,
11,
11,
2,
2,
11,
11,
2,
2,
0,
10,
10,
0,
0,
10,
0,
10,
10,
0,
4,
4,
12,
12,
4,
12,
12,
12,
4,
4,
13,
13,
2,
2,
13,
13,
2,
2,
13,
2,
0,
0,
8,
8,
8,
0,
8,
8,
0,
0,
6,
12,
6,
12,
12,
6,
6,
12,
12,
6,
8,
4,
4,
8,
8,
4,
8,
4,
4,
8,
2,
2,
2,
10,
10,
10,
2,
2,
10,
10,
1,
11,
1,
1,
11,
1,
11,
1,
11,
11,
7,
2,
7,
2,
7,
2,
7,
2,
2,
7,
12,
12,
12,
4,
4,
4,
4,
12,
4,
12,
1,
7,
7,
1,
1,
7,
7,
1,
1,
7,
13,
5,
13,
5,
5,
5,
13,
13,
13,
5,
1,
1,
9,
9,
9,
9,
1,
9,
1,
1,
0,
0,
11,
11,
11,
0,
0,
11,
11,
0,
2,
12,
2,
2,
12,
2,
12,
12,
2,
12,
0,
0,
8,
8,
0,
8,
8,
0,
0,
8,
4,
4,
10,
10,
4,
10,
4,
10,
10,
4,
6,
12,
6,
12,
6,
6,
6,
12,
12,
12,
11,
2,
11,
11,
11,
2,
2,
2,
11,
2,
8,
6,
6,
8,
8,
8,
6,
6,
8,
6,
10,
4,
10,
4,
4,
4,
10,
4,
10,
10,
9,
1,
9,
1,
9,
1,
1,
1,
9,
9,
5,
10,
10,
5,
5,
10,
10,
5,
5,
10,
2,
11,
11,
2,
11,
11,
2,
11,
2,
2,
6,
12,
6,
12,
6,
6,
12,
12,
12,
6,
7,
2,
2,
2,
7,
7,
2,
7,
7,
2,
5,
5,
11,
5,
11,
11,
11,
11,
5,
5,
9,
3,
3,
9,
3,
3,
9,
9,
3,
9,
12,
1,
12,
1,
1,
12,
1,
1,
12,
12,
6,
6,
10,
10,
10,
10,
10,
6,
6,
6,
2,
2,
2,
2,
12,
12,
12,
12,
2,
12,
3,
7,
7,
3,
7,
3,
3,
3,
7,
7,
13,
5,
5,
13,
13,
13,
5,
13,
5,
5,
3,
3,
11,
11,
11,
3,
11,
3,
3,
11,
13,
13,
2,
2,
13,
13,
13,
2,
2,
2,
4,
4,
4,
4,
10,
10,
4,
10,
10,
10,
0,
9,
0,
0,
0,
9,
9,
9,
9,
0,
13,
4,
13,
13,
4,
13,
4,
4,
4,
13,
1,
12,
12,
12,
1,
1,
12,
1,
12,
1,
6,
6,
11,
6,
11,
6,
11,
6,
11,
11,
0,
9,
9,
9,
0,
0,
9,
0,
9,
0,
1,
11,
1,
11,
11,
1,
1,
1,
11,
11,
0,
0,
0,
9,
9,
9,
0,
9,
0,
9,
8,
8,
3,
8,
3,
8,
3,
8,
3,
3,
6,
6,
9,
6,
9,
6,
9,
9,
9,
6,
0,
0,
0,
0,
11,
11,
11,
0,
11,
11,
10,
5,
5,
5,
5,
5,
10,
10,
10,
10,
9,
9,
9,
6,
6,
9,
6,
9,
6,
6,
4,
4,
12,
12,
12,
4,
12,
12,
4,
4,
10,
0,
10,
0,
0,
0,
10,
10,
10,
0,
2,
8,
2,
8,
8,
2,
8,
2,
2,
8,
12,
6,
6,
12,
6,
12,
12,
6,
6,
12,
0,
9,
9,
0,
0,
0,
9,
9,
9,
0,
5,
5,
13,
13,
13,
5,
5,
13,
13,
5,
0,
10,
0,
10,
0,
0,
10,
0,
10,
10,
1,
1,
1,
1,
12,
12,
1,
12,
12,
12,
2,
10,
2,
10,
2,
2,
10,
10,
2,
10,
4,
8,
4,
4,
4,
4,
8,
8,
8,
8,
13,
13,
3,
13,
3,
13,
3,
13,
3,
3,
0,
11,
11,
11,
11,
0,
0,
0,
0,
11,
1,
1,
9,
9,
9,
9,
9,
1,
1,
1,
7,
6,
7,
6,
6,
7,
7,
6,
6,
7,
2,
11,
2,
11,
11,
11,
2,
11,
2,
2,
5,
5,
8,
8,
5,
5,
5,
8,
8,
8,
3,
3,
3,
13,
13,
13,
3,
3,
13,
13,
1,
1,
9,
1,
9,
9,
1,
9,
1,
9,
11,
3,
11,
3,
3,
11,
3,
3,
11,
11,
0,
0,
0,
8,
0,
0,
8,
8,
8,
8,
2,
12,
2,
2,
12,
12,
12,
12,
2,
2,
8,
8,
3,
8,
8,
3,
3,
3,
8,
3,
11,
11,
6,
11,
6,
6,
6,
11,
11,
6,
3,
12,
3,
12,
12,
3,
3,
12,
12,
3,
11,
1,
11,
11,
1,
11,
1,
11,
1,
1,
7,
6,
7,
6,
7,
7,
6,
6,
7,
6,
10,
10,
5,
10,
5,
10,
10,
5,
5,
5,
9,
9,
6,
9,
6,
6,
6,
9,
6,
9,
10,
10,
10,
5,
10,
5,
5,
5,
5,
10,
13,
4,
13,
4,
13,
13,
4,
13,
4,
4,
0,
0,
12,
0,
12,
12,
0,
12,
12,
0,
13,
13,
13,
4,
13,
13,
4,
4,
4,
4,
10,
10,
10,
10,
0,
0,
0,
0,
0,
10,
9,
9,
5,
9,
5,
9,
5,
5,
9,
5,
13,
0,
13,
13,
0,
0,
0,
13,
13,
0,
11,
5,
11,
5,
11,
5,
11,
5,
11,
5,
10,
2,
10,
2,
2,
10,
2,
10,
10,
2,
1,
12,
1,
12,
1,
12,
1,
12,
12,
1,
10,
2,
10,
2,
10,
10,
10,
2,
2,
2,
11,
11,
11,
0,
0,
11,
0,
0,
0,
11,
9,
9,
6,
6,
6,
9,
6,
9,
9,
6,
11,
1,
1,
1,
11,
11,
1,
1,
11,
11,
7,
7,
6,
6,
6,
7,
7,
6,
7,
6,
1,
10,
10,
1,
1,
10,
10,
1,
1,
10,
4,
9,
9,
9,
4,
9,
4,
9,
4,
4,
10,
5,
10,
10,
10,
5,
5,
5,
10,
5,
11,
11,
11,
6,
11,
6,
11,
6,
6,
6,
0,
0,
0,
8,
0,
0,
8,
8,
8,
8,
6,
11,
11,
6,
11,
6,
6,
11,
6,
11,
10,
10,
0,
10,
0,
0,
0,
10,
10,
0,
13,
13,
13,
5,
5,
5,
5,
13,
5,
13,
3,
11,
11,
11,
3,
3,
3,
11,
3,
11,
6,
6,
9,
9,
6,
6,
9,
6,
9,
9,
4,
4,
4,
10,
4,
10,
10,
10,
4,
10,
7,
7,
7,
7,
6,
7,
6,
6,
6,
6,
12,
12,
3,
3,
12,
12,
3,
3,
3,
12,
6,
6,
7,
6,
7,
7,
6,
6,
7,
7,
8,
8,
2,
8,
8,
2,
2,
2,
2,
8,
5,
13,
13,
5,
5,
5,
5,
13,
13,
13,
11,
0,
0,
0,
0,
11,
11,
11,
11,
0,
9,
3,
9,
3,
9,
9,
9,
3,
3,
3,
0,
12,
0,
0,
12,
12,
12,
0,
12,
0,
6,
11,
6,
11,
11,
11,
11,
6,
6,
6,
0,
10,
0,
0,
0,
10,
0,
10,
10,
10,
1,
1,
12,
1,
12,
1,
1,
12,
12,
12,
7,
7,
6,
7,
6,
6,
7,
7,
6,
6,
4,
4,
4,
10,
4,
10,
4,
10,
10,
10,
2,
2,
2,
2,
12,
2,
12,
12,
12,
12,
8,
0,
0,
8,
8,
0,
8,
8,
0,
0,
13,
13,
4,
4,
4,
13,
4,
13,
13,
4,
3,
12,
3,
12,
3,
12,
3,
3,
12,
12,
8,
6,
6,
8,
6,
8,
6,
8,
8,
6,
11,
11,
11,
11,
2,
2,
11,
2,
2,
2,
8,
8,
0,
0,
8,
0,
0,
8,
0,
8,
13,
4,
4,
13,
13,
4,
13,
4,
4,
13,
5,
9,
9,
5,
5,
9,
5,
5,
9,
9,
13,
13,
4,
13,
4,
4,
13,
4,
4,
13,
3,
12,
3,
12,
12,
3,
12,
3,
3,
12,
13,
13,
4,
4,
4,
13,
4,
4,
13,
13,
0,
0,
0,
9,
9,
9,
9,
9,
0,
0,
10,
10,
6,
6,
6,
6,
10,
10,
6,
10,
12,
2,
2,
12,
2,
12,
12,
2,
12,
2,
7,
7,
1,
1,
1,
1,
7,
7,
7,
1,
11,
3,
3,
11,
11,
3,
3,
11,
11,
3,
7,
7,
2,
7,
7,
2,
7,
2,
2,
2,
8,
6,
8,
8,
6,
8,
8,
6,
6,
6,
5,
11,
11,
11,
11,
11,
5,
5,
5,
5,
13,
3,
3,
13,
3,
13,
13,
3,
13,
3,
1,
7,
7,
1,
1,
1,
7,
1,
7,
7,
4,
13,
4,
13,
13,
13,
4,
4,
13,
4,
9,
9,
5,
5,
5,
9,
9,
5,
5,
9,
7,
6,
7,
7,
6,
6,
7,
7,
6,
6,
10,
5,
10,
5,
5,
5,
10,
5,
10,
10,
4,
4,
7,
7,
7,
4,
7,
4,
4,
7,
8,
8,
6,
6,
8,
6,
6,
6,
8,
8,
10,
4,
4,
4,
4,
10,
10,
10,
10,
4,
5,
9,
5,
5,
9,
9,
5,
5,
9,
9,
8,
8,
0,
8,
0,
0,
8,
0,
0,
8,
9,
6,
9,
9,
6,
9,
6,
6,
9,
6,
7,
7,
5,
5,
5,
7,
5,
7,
5,
7,
13,
13,
13,
13,
3,
3,
3,
3,
3,
13,
8,
5,
8,
5,
8,
5,
5,
5,
8,
8,
7,
6,
6,
7,
7,
6,
7,
6,
7,
6,
9,
9,
9,
9,
9,
1,
1,
1,
1,
1,
6,
6,
11,
6,
11,
6,
11,
11,
11,
6,
2,
2,
12,
12,
2,
12,
2,
2,
12,
12,
13,
13,
1,
1,
13,
1,
1,
1,
13,
13,
11,
0,
11,
0,
0,
11,
11,
0,
11,
0,
1,
9,
1,
1,
1,
9,
9,
9,
9,
1,
4,
13,
4,
4,
13,
4,
4,
13,
13,
13,
0,
8,
8,
0,
0,
8,
8,
0,
0,
8,
13,
13,
3,
3,
3,
3,
3,
13,
13,
13,
7,
2,
7,
2,
7,
2,
7,
2,
2,
7,
5,
5,
5,
13,
13,
5,
13,
13,
13,
5,
8,
8,
8,
4,
4,
8,
8,
4,
4,
4,
7,
3,
7,
3,
3,
3,
7,
7,
7,
3,
5,
13,
5,
13,
13,
5,
5,
5,
13,
13,
0,
11,
11,
0,
0,
11,
11,
0,
0,
11,
10,
1,
1,
10,
10,
1,
10,
1,
1,
10,
2,
2,
2,
2,
13,
13,
13,
13,
13,
2,
8,
8,
8,
8,
0,
0,
8,
0,
0,
0,
6,
12,
6,
6,
12,
12,
12,
6,
12,
6,
9,
9,
4,
4,
9,
4,
9,
9,
4,
4,
8,
8,
0,
0,
0,
0,
8,
8,
0,
8,
11,
5,
5,
5,
11,
11,
11,
5,
11,
5,
10,
10,
10,
6,
6,
10,
6,
6,
6,
10,
5,
11,
11,
11,
11,
5,
5,
11,
5,
5,
9,
9,
0,
9,
0,
0,
9,
9,
0,
0,
3,
12,
12,
12,
12,
3,
12,
3,
3,
3,
13,
13,
13,
13,
2,
13,
2,
2,
2,
2,
0,
0,
0,
10,
0,
10,
10,
10,
0,
10,
13,
1,
13,
1,
13,
13,
1,
1,
1,
13,
7,
7,
3,
3,
7,
3,
3,
7,
7,
3,
1,
12,
12,
1,
12,
1,
12,
1,
1,
12,
2,
2,
13,
13,
2,
13,
13,
2,
2,
13,
12,
4,
4,
12,
4,
12,
4,
12,
12,
4,
3,
7,
3,
7,
7,
7,
7,
3,
3,
3,
13,
4,
4,
4,
4,
4,
13,
13,
13,
13,
10,
10,
10,
5,
10,
5,
5,
5,
10,
5,
13,
13,
2,
13,
13,
2,
13,
2,
2,
2,
8,
8,
8,
4,
4,
4,
8,
8,
4,
4,
5,
7,
7,
7,
5,
5,
7,
5,
5,
7,
4,
4,
4,
4,
4,
8,
8,
8,
8,
8,
6,
9,
6,
6,
6,
9,
6,
9,
9,
9,
0,
12,
0,
12,
12,
0,
0,
0,
12,
12,
2,
2,
8,
8,
2,
8,
8,
2,
2,
8,
3,
12,
3,
3,
12,
12,
12,
3,
3,
12,
6,
6,
8,
6,
8,
8,
8,
6,
6,
8,
5,
7,
7,
5,
5,
5,
7,
7,
7,
5,
10,
4,
10,
4,
4,
10,
10,
4,
10,
4,
13,
13,
1,
1,
1,
13,
1,
13,
13,
1,
2,
2,
2,
10,
2,
10,
10,
10,
10,
2,
4,
4,
7,
4,
7,
4,
7,
7,
4,
7,
13,
1,
1,
13,
1,
13,
13,
1,
1,
13,
7,
7,
3,
7,
3,
3,
3,
7,
3,
7,
12,
6,
6,
6,
6,
12,
6,
12,
12,
12,
0,
10,
0,
10,
0,
10,
10,
10,
0,
0,
11,
11,
6,
6,
6,
6,
11,
11,
11,
6,
8,
8,
2,
2,
8,
2,
8,
2,
8,
2,
12,
12,
6,
6,
12,
12,
6,
6,
6,
12,
9,
3,
9,
3,
3,
9,
3,
9,
9,
3,
0,
0,
0,
0,
13,
13,
13,
0,
13,
13,
10,
10,
10,
10,
10,
4,
4,
4,
4,
4,
0,
12,
0,
12,
0,
0,
12,
12,
0,
12,
9,
9,
9,
3,
3,
3,
9,
3,
9,
3,
13,
0,
13,
13,
0,
0,
0,
13,
0,
13,
8,
5,
5,
8,
5,
5,
8,
8,
5,
8,
3,
13,
13,
3,
3,
13,
13,
3,
3,
13,
5,
5,
5,
11,
11,
11,
5,
5,
11,
11,
2,
8,
2,
2,
8,
2,
8,
2,
8,
8,
12,
4,
12,
4,
12,
4,
4,
12,
4,
12,
1,
7,
1,
1,
7,
1,
7,
7,
7,
1,
3,
11,
3,
3,
11,
3,
11,
11,
3,
11,
1,
1,
9,
9,
1,
1,
1,
9,
9,
9,
12,
12,
6,
12,
6,
6,
12,
12,
6,
6,
2,
2,
2,
2,
11,
11,
2,
11,
11,
11,
3,
7,
7,
3,
3,
7,
3,
7,
3,
7,
11,
1,
1,
11,
1,
11,
1,
1,
11,
11,
3,
3,
9,
9,
3,
9,
9,
3,
3,
9,
1,
11,
11,
1,
1,
1,
11,
1,
11,
11,
13,
2,
13,
2,
2,
13,
2,
13,
2,
13,
12,
0,
12,
0,
0,
12,
0,
12,
0,
12,
3,
8,
8,
3,
8,
3,
8,
8,
3,
3,
11,
6,
11,
11,
11,
6,
6,
6,
11,
6,
2,
2,
10,
2,
2,
10,
2,
10,
10,
10,
11,
1,
11,
11,
1,
11,
11,
1,
1,
1,
0,
12,
12,
0,
12,
0,
0,
12,
12,
0,
9,
6,
9,
9,
6,
6,
6,
6,
9,
9,
8,
0,
8,
8,
0,
0,
8,
8,
0,
0,
13,
3,
3,
3,
13,
3,
13,
13,
3,
13,
8,
2,
2,
2,
2,
2,
8,
8,
8,
8,
12,
12,
3,
12,
3,
12,
3,
3,
12,
3,
6,
9,
9,
9,
9,
6,
6,
9,
6,
6,
1,
10,
10,
1,
10,
1,
1,
10,
1,
10,
4,
13,
13,
4,
13,
4,
13,
4,
4,
13,
2,
2,
2,
2,
10,
10,
2,
10,
10,
10,
7,
4,
7,
4,
7,
7,
4,
4,
7,
4,
6,
9,
6,
6,
9,
6,
9,
9,
6,
9,
10,
10,
0,
10,
0,
10,
10,
0,
0,
0,
13,
13,
5,
5,
5,
5,
13,
5,
13,
13,
7,
1,
7,
1,
7,
7,
7,
1,
1,
1,
12,
2,
12,
2,
12,
12,
12,
2,
2,
2,
3,
3,
3,
3,
8,
3,
8,
8,
8,
8,
4,
4,
4,
7,
4,
7,
7,
7,
4,
7,
9,
9,
3,
3,
3,
9,
3,
9,
3,
9,
0,
8,
0,
8,
0,
0,
8,
8,
8,
0,
5,
5,
10,
10,
10,
10,
5,
5,
10,
5,
9,
6,
9,
9,
6,
9,
6,
6,
9,
6,
4,
4,
8,
8,
8,
8,
8,
4,
4,
4,
10,
0,
0,
10,
10,
10,
0,
10,
0,
0,
9,
9,
9,
9,
9,
6,
6,
6,
6,
6,
12,
12,
4,
4,
4,
12,
4,
12,
12,
4,
13,
13,
13,
13,
1,
1,
1,
1,
13,
1,
0,
0,
11,
0,
11,
11,
0,
0,
11,
11,
1,
1,
1,
1,
1,
12,
12,
12,
12,
12,
13,
13,
13,
13,
13,
2,
2,
2,
2,
2,
3,
3,
3,
8,
8,
8,
8,
3,
3,
8,
0,
9,
0,
9,
0,
9,
0,
9,
9,
0,
8,
8,
8,
5,
5,
8,
5,
5,
5,
8,
6,
9,
9,
9,
9,
6,
6,
9,
6,
6,
10,
4,
10,
10,
4,
4,
10,
4,
10,
4,
12,
0,
0,
0,
0,
12,
12,
12,
12,
0,
13,
2,
13,
2,
13,
13,
2,
2,
2,
13,
10,
10,
4,
4,
10,
4,
4,
10,
10,
4,
12,
12,
1,
1,
12,
1,
1,
12,
1,
12,
10,
6,
6,
6,
6,
10,
10,
10,
6,
10,
0,
0,
12,
12,
12,
12,
0,
12,
0,
0,
1,
13,
1,
1,
13,
13,
1,
13,
1,
13,
4,
4,
7,
4,
4,
7,
7,
4,
7,
7,
2,
10,
10,
2,
2,
10,
2,
2,
10,
10,
8,
8,
0,
0,
8,
0,
8,
8,
0,
0,
6,
12,
12,
6,
6,
12,
6,
6,
12,
12,
9,
3,
9,
3,
3,
9,
3,
9,
3,
9,
8,
8,
5,
8,
5,
5,
8,
5,
5,
8,
0,
13,
13,
13,
0,
0,
13,
13,
0,
0,
5,
5,
10,
5,
10,
5,
10,
10,
10,
5,
8,
8,
8,
6,
6,
6,
6,
8,
8,
6,
0,
10,
10,
0,
10,
10,
0,
0,
10,
0,
11,
1,
1,
11,
1,
1,
1,
11,
11,
11,
3,
7,
7,
3,
3,
7,
7,
3,
7,
3,
2,
2,
2,
2,
13,
2,
13,
13,
13,
13,
5,
7,
5,
7,
7,
5,
7,
5,
5,
7,
1,
1,
1,
9,
9,
9,
1,
9,
9,
1,
4,
4,
4,
13,
13,
13,
13,
13,
4,
4,
8,
2,
8,
2,
2,
8,
2,
8,
8,
2,
13,
0,
13,
13,
13,
0,
13,
0,
0,
0,
10,
5,
10,
10,
5,
10,
5,
10,
5,
5,
0,
0,
0,
0,
9,
9,
9,
9,
0,
9,
13,
13,
5,
13,
5,
13,
5,
5,
13,
5,
2,
2,
2,
2,
10,
10,
10,
10,
2,
10,
1,
11,
1,
1,
1,
1,
11,
11,
11,
11,
3,
3,
12,
12,
12,
3,
12,
3,
12,
3,
9,
1,
1,
9,
1,
1,
9,
9,
1,
9,
3,
3,
11,
11,
11,
11,
3,
3,
11,
3,
9,
9,
9,
0,
9,
9,
0,
0,
0,
0,
12,
12,
6,
6,
12,
6,
6,
12,
6,
12,
3,
9,
9,
3,
3,
9,
9,
3,
9,
3,
1,
1,
11,
1,
11,
11,
11,
1,
1,
11,
5,
9,
9,
5,
5,
9,
9,
5,
9,
5,
1,
1,
1,
13,
13,
13,
13,
1,
13,
1,
10,
4,
4,
4,
10,
10,
4,
4,
10,
10,
13,
13,
13,
13,
0,
13,
0,
0,
0,
0,
11,
11,
5,
5,
11,
5,
11,
5,
5,
11,
13,
3,
13,
3,
13,
13,
3,
13,
3,
3,
1,
9,
9,
9,
1,
1,
9,
1,
1,
9,
11,
6,
6,
11,
6,
6,
6,
11,
11,
11,
3,
3,
3,
8,
3,
8,
8,
8,
8,
3,
4,
9,
4,
9,
9,
9,
4,
9,
4,
4,
0,
13,
13,
13,
0,
0,
0,
13,
0,
13,
2,
8,
8,
2,
2,
8,
8,
8,
2,
2,
12,
4,
12,
4,
4,
4,
12,
12,
4,
12,
9,
0,
0,
0,
9,
9,
9,
0,
9,
0,
4,
4,
8,
8,
4,
4,
8,
4,
8,
8,
6,
12,
6,
6,
12,
6,
12,
12,
6,
12,
10,
10,
10,
0,
0,
10,
0,
0,
0,
10,
9,
9,
4,
4,
9,
9,
4,
9,
4,
4,
5,
13,
13,
5,
13,
5,
5,
13,
5,
13,
10,
10,
10,
10,
10,
1,
1,
1,
1,
1,
7,
7,
7,
7,
6,
6,
7,
6,
6,
6,
4,
10,
10,
10,
4,
10,
4,
4,
4,
10,
5,
7,
7,
5,
7,
7,
7,
5,
5,
5,
6,
9,
9,
9,
6,
6,
6,
6,
9,
9,
10,
0,
10,
10,
10,
0,
0,
0,
10,
0,
4,
4,
13,
13,
13,
13,
4,
4,
13,
4,
3,
8,
8,
3,
3,
3,
8,
8,
3,
8,
2,
13,
2,
2,
13,
2,
13,
13,
2,
13,
8,
0,
8,
8,
8,
0,
8,
0,
0,
0,
3,
9,
9,
9,
3,
3,
3,
9,
3,
9,
1,
1,
1,
12,
1,
12,
1,
12,
12,
12,
2,
2,
7,
7,
7,
2,
2,
2,
7,
7,
13,
13,
13,
13,
3,
3,
3,
13,
3,
3,
9,
9,
1,
9,
1,
1,
9,
1,
9,
1,
5,
5,
11,
5,
11,
11,
5,
11,
5,
11,
6,
6,
10,
10,
6,
10,
6,
10,
6,
10,
11,
11,
11,
2,
2,
2,
11,
11,
2,
2
],
"sampling_mode": "Ordered"
},
"end_conditions": []
}
],
"sampling_mode": "Sequential"
},
"operation_control": {
"movable_spout_control": {
"enabled": false,
"time_to_collect_after_reward": 1.0,
"retracting_distance": 0.0
},
"odor_control": {
"target_total_flow": 1000,
"target_odor_flow": 100
},
"position_control": {
"gain": {
"x": 1.0,
"y": 1.0,
"z": 1.0
},
"initial_position": {
"x": 0.0,
"y": 2.56,
"z": 0.0
},
"frequency_filter_cutoff": 5.0,
"velocity_threshold": 8.0
},
"audio_control": {
"duration": 0.2,
"frequency": 9999.0
},
"wait_to_start_duration": 0.0,
"wait_to_finish_duration": 0.0
}
},
"version": "1.1.2",
"stage_name": "graduated"
},
"graph": {
"nodes": {
"0": "aind_behavior_vr_foraging_curricula.learning_sets.policies.p_introduce_negative_sites",
"1": "aind_behavior_vr_foraging_curricula.learning_sets.policies.p_water_cap"
},
"graph": {
"0": [],
"1": []
}
},
"start_policies": [
"aind_behavior_vr_foraging_curricula.learning_sets.policies.p_introduce_negative_sites",
"aind_behavior_vr_foraging_curricula.learning_sets.policies.p_water_cap"
],
"metrics_provider": "aind_behavior_vr_foraging_curricula.learning_sets.metrics.metrics_from_dataset"
}
},
"graph": {
"0": [
[
"aind_behavior_vr_foraging_curricula.learning_sets.curriculum.st_shaping_to_graduated",
1
]
],
"1": []
}
}
}