aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/attribute.def5
-rw-r--r--include/tosa_generated.h65
-rw-r--r--include/tosa_schema.h355
-rw-r--r--include/tosa_serialization_handler.h1
4 files changed, 366 insertions, 60 deletions
diff --git a/include/attribute.def b/include/attribute.def
index 0e97629..52d5179 100644
--- a/include/attribute.def
+++ b/include/attribute.def
@@ -57,10 +57,7 @@ DEF_ATTRIBUTE(Pad, 1,
DEF_ATTRIBUTE(Axis, 1,
int32_t, S, axis)
-DEF_ATTRIBUTE(Resize, 4,
- int16_t, V, scale,
- int16_t, V, offset,
- int16_t, V, border,
+DEF_ATTRIBUTE(Resize, 1,
ResizeMode, S, mode)
DEF_ATTRIBUTE(Clamp, 2,
diff --git a/include/tosa_generated.h b/include/tosa_generated.h
index c907c89..994b72c 100644
--- a/include/tosa_generated.h
+++ b/include/tosa_generated.h
@@ -10,7 +10,7 @@
// generated, otherwise it may not be compatible.
static_assert(FLATBUFFERS_VERSION_MAJOR == 24 &&
FLATBUFFERS_VERSION_MINOR == 3 &&
- FLATBUFFERS_VERSION_REVISION == 7,
+ FLATBUFFERS_VERSION_REVISION == 25,
"Non-compatible flatbuffers version included");
namespace tosa {
@@ -277,11 +277,12 @@ enum Op : uint32_t {
Op_DIV_SHAPE = 78,
Op_COS = 79,
Op_SIN = 80,
+ Op_CAST_STOCHASTIC = 81,
Op_MIN = Op_UNKNOWN,
- Op_MAX = Op_SIN
+ Op_MAX = Op_CAST_STOCHASTIC
};
-inline const Op (&EnumValuesOp())[81] {
+inline const Op (&EnumValuesOp())[82] {
static const Op values[] = {
Op_UNKNOWN,
Op_ARGMAX,
@@ -363,13 +364,14 @@ inline const Op (&EnumValuesOp())[81] {
Op_MUL_SHAPE,
Op_DIV_SHAPE,
Op_COS,
- Op_SIN
+ Op_SIN,
+ Op_CAST_STOCHASTIC
};
return values;
}
inline const char * const *EnumNamesOp() {
- static const char * const names[82] = {
+ static const char * const names[83] = {
"UNKNOWN",
"ARGMAX",
"AVG_POOL2D",
@@ -451,13 +453,14 @@ inline const char * const *EnumNamesOp() {
"DIV_SHAPE",
"COS",
"SIN",
+ "CAST_STOCHASTIC",
nullptr
};
return names;
}
inline const char *EnumNameOp(Op e) {
- if (::flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_SIN)) return "";
+ if (::flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_CAST_STOCHASTIC)) return "";
const size_t index = static_cast<size_t>(e);
return EnumNamesOp()[index];
}
@@ -1087,31 +1090,13 @@ inline ::flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
typedef ResizeAttributeBuilder Builder;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
- VT_SCALE = 4,
- VT_OFFSET = 6,
- VT_BORDER = 8,
VT_MODE = 10
};
- const ::flatbuffers::Vector<int16_t> *scale() const {
- return GetPointer<const ::flatbuffers::Vector<int16_t> *>(VT_SCALE);
- }
- const ::flatbuffers::Vector<int16_t> *offset() const {
- return GetPointer<const ::flatbuffers::Vector<int16_t> *>(VT_OFFSET);
- }
- const ::flatbuffers::Vector<int16_t> *border() const {
- return GetPointer<const ::flatbuffers::Vector<int16_t> *>(VT_BORDER);
- }
tosa::ResizeMode mode() const {
return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
}
bool Verify(::flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
- VerifyOffset(verifier, VT_SCALE) &&
- verifier.VerifyVector(scale()) &&
- VerifyOffset(verifier, VT_OFFSET) &&
- verifier.VerifyVector(offset()) &&
- VerifyOffset(verifier, VT_BORDER) &&
- verifier.VerifyVector(border()) &&
VerifyField<uint32_t>(verifier, VT_MODE, 4) &&
verifier.EndTable();
}
@@ -1121,15 +1106,6 @@ struct ResizeAttributeBuilder {
typedef ResizeAttribute Table;
::flatbuffers::FlatBufferBuilder &fbb_;
::flatbuffers::uoffset_t start_;
- void add_scale(::flatbuffers::Offset<::flatbuffers::Vector<int16_t>> scale) {
- fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale);
- }
- void add_offset(::flatbuffers::Offset<::flatbuffers::Vector<int16_t>> offset) {
- fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
- }
- void add_border(::flatbuffers::Offset<::flatbuffers::Vector<int16_t>> border) {
- fbb_.AddOffset(ResizeAttribute::VT_BORDER, border);
- }
void add_mode(tosa::ResizeMode mode) {
fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
}
@@ -1146,35 +1122,12 @@ struct ResizeAttributeBuilder {
inline ::flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
::flatbuffers::FlatBufferBuilder &_fbb,
- ::flatbuffers::Offset<::flatbuffers::Vector<int16_t>> scale = 0,
- ::flatbuffers::Offset<::flatbuffers::Vector<int16_t>> offset = 0,
- ::flatbuffers::Offset<::flatbuffers::Vector<int16_t>> border = 0,
tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
ResizeAttributeBuilder builder_(_fbb);
builder_.add_mode(mode);
- builder_.add_border(border);
- builder_.add_offset(offset);
- builder_.add_scale(scale);
return builder_.Finish();
}
-inline ::flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
- ::flatbuffers::FlatBufferBuilder &_fbb,
- const std::vector<int16_t> *scale = nullptr,
- const std::vector<int16_t> *offset = nullptr,
- const std::vector<int16_t> *border = nullptr,
- tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
- auto scale__ = scale ? _fbb.CreateVector<int16_t>(*scale) : 0;
- auto offset__ = offset ? _fbb.CreateVector<int16_t>(*offset) : 0;
- auto border__ = border ? _fbb.CreateVector<int16_t>(*border) : 0;
- return tosa::CreateResizeAttribute(
- _fbb,
- scale__,
- offset__,
- border__,
- mode);
-}
-
struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
typedef ClampAttributeBuilder Builder;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
diff --git a/include/tosa_schema.h b/include/tosa_schema.h
new file mode 100644
index 0000000..0d645de
--- /dev/null
+++ b/include/tosa_schema.h
@@ -0,0 +1,355 @@
+const char TOSA_SCHEMA[] = {
+0x0a, 0x2f, 0x2f, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63,
+0x29, 0x20, 0x32, 0x30, 0x32, 0x30, 0x2d, 0x32, 0x30, 0x32, 0x34, 0x2c, 0x20, 0x41, 0x52, 0x4d,
+0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x2f, 0x2f, 0x0a, 0x2f, 0x2f, 0x20,
+0x20, 0x20, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65,
+0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63,
+0x65, 0x6e, 0x73, 0x65, 0x2c, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x2e,
+0x30, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x22, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22,
+0x29, 0x3b, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6d, 0x61, 0x79,
+0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69,
+0x6c, 0x65, 0x20, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d,
+0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65,
+0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20,
+0x59, 0x6f, 0x75, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x6f, 0x62, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x61,
+0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63,
+0x65, 0x6e, 0x73, 0x65, 0x20, 0x61, 0x74, 0x0a, 0x2f, 0x2f, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
+0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65,
+0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30,
+0x0a, 0x2f, 0x2f, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x6c, 0x65, 0x73, 0x73,
+0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, 0x70, 0x70,
+0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x6c, 0x61, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x61,
+0x67, 0x72, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x20, 0x77, 0x72, 0x69, 0x74,
+0x69, 0x6e, 0x67, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0a, 0x2f, 0x2f,
+0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x20,
+0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73,
+0x65, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64,
+0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x22, 0x41, 0x53, 0x20, 0x49, 0x53, 0x22, 0x20, 0x42,
+0x41, 0x53, 0x49, 0x53, 0x2c, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x57, 0x49, 0x54, 0x48,
+0x4f, 0x55, 0x54, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, 0x20, 0x4f,
+0x52, 0x20, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x20, 0x4f, 0x46, 0x20,
+0x41, 0x4e, 0x59, 0x20, 0x4b, 0x49, 0x4e, 0x44, 0x2c, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72,
+0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x69, 0x6d, 0x70, 0x6c,
+0x69, 0x65, 0x64, 0x2e, 0x0a, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x65, 0x20, 0x74,
+0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74,
+0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6c, 0x61, 0x6e, 0x67,
+0x75, 0x61, 0x67, 0x65, 0x20, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x70,
+0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x2f,
+0x2f, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e,
+0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x74,
+0x6f, 0x73, 0x61, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f,
+0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65,
+0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69,
+0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x22, 0x54, 0x4f, 0x53, 0x41, 0x22,
+0x3b, 0x0a, 0x2f, 0x2f, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
+0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x77, 0x72, 0x69, 0x74, 0x74,
+0x65, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65,
+0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x74, 0x6f, 0x73, 0x61, 0x22, 0x3b,
+0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x4e, 0x4f, 0x54, 0x45, 0x3a, 0x20, 0x4e, 0x65, 0x77, 0x20, 0x76,
+0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74,
+0x68, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64,
+0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x0a, 0x2f, 0x2f, 0x20, 0x61, 0x74,
+0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20,
+0x6c, 0x69, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x6f,
+0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x73, 0x74, 0x61,
+0x62, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x20, 0x44, 0x54, 0x79, 0x70, 0x65,
+0x3a, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x55, 0x4e, 0x4b, 0x4e,
+0x4f, 0x57, 0x4e, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x0a, 0x20, 0x20, 0x42, 0x4f, 0x4f, 0x4c, 0x2c,
+0x0a, 0x20, 0x20, 0x55, 0x49, 0x4e, 0x54, 0x38, 0x2c, 0x0a, 0x20, 0x20, 0x49, 0x4e, 0x54, 0x34,
+0x2c, 0x0a, 0x20, 0x20, 0x49, 0x4e, 0x54, 0x38, 0x2c, 0x0a, 0x20, 0x20, 0x49, 0x4e, 0x54, 0x31,
+0x36, 0x2c, 0x0a, 0x20, 0x20, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x49, 0x4e,
+0x54, 0x34, 0x38, 0x2c, 0x0a, 0x20, 0x20, 0x46, 0x50, 0x33, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x55,
+0x49, 0x4e, 0x54, 0x31, 0x36, 0x2c, 0x0a, 0x20, 0x20, 0x46, 0x50, 0x31, 0x36, 0x2c, 0x0a, 0x20,
+0x20, 0x42, 0x46, 0x31, 0x36, 0x2c, 0x0a, 0x20, 0x20, 0x53, 0x48, 0x41, 0x50, 0x45, 0x2c, 0x0a,
+0x20, 0x20, 0x46, 0x50, 0x38, 0x45, 0x34, 0x4d, 0x33, 0x2c, 0x0a, 0x20, 0x20, 0x46, 0x50, 0x38,
+0x45, 0x35, 0x4d, 0x32, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x20, 0x52, 0x65,
+0x73, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x20,
+0x7b, 0x0a, 0x20, 0x20, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x20, 0x3d, 0x20, 0x30, 0x2c,
+0x0a, 0x20, 0x20, 0x4e, 0x45, 0x41, 0x52, 0x45, 0x53, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x42, 0x49,
+0x4c, 0x49, 0x4e, 0x45, 0x41, 0x52, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x20,
+0x4f, 0x70, 0x3a, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x55, 0x4e,
+0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x0a, 0x20, 0x20, 0x41, 0x52, 0x47,
+0x4d, 0x41, 0x58, 0x2c, 0x0a, 0x20, 0x20, 0x41, 0x56, 0x47, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x32,
+0x44, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x4f, 0x4e, 0x56, 0x32, 0x44, 0x2c, 0x0a, 0x20, 0x20, 0x43,
+0x4f, 0x4e, 0x56, 0x33, 0x44, 0x2c, 0x0a, 0x20, 0x20, 0x44, 0x45, 0x50, 0x54, 0x48, 0x57, 0x49,
+0x53, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x32, 0x44, 0x2c, 0x0a, 0x20, 0x20, 0x46, 0x55, 0x4c,
+0x4c, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x2c, 0x0a, 0x20, 0x20,
+0x4d, 0x41, 0x54, 0x4d, 0x55, 0x4c, 0x2c, 0x0a, 0x20, 0x20, 0x4d, 0x41, 0x58, 0x5f, 0x50, 0x4f,
+0x4f, 0x4c, 0x32, 0x44, 0x2c, 0x0a, 0x20, 0x20, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x53,
+0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x32, 0x44, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x4c, 0x41, 0x4d,
+0x50, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x2c, 0x0a, 0x20,
+0x20, 0x53, 0x49, 0x47, 0x4d, 0x4f, 0x49, 0x44, 0x2c, 0x0a, 0x20, 0x20, 0x54, 0x41, 0x4e, 0x48,
+0x2c, 0x0a, 0x20, 0x20, 0x41, 0x44, 0x44, 0x2c, 0x0a, 0x20, 0x20, 0x41, 0x52, 0x49, 0x54, 0x48,
+0x4d, 0x45, 0x54, 0x49, 0x43, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x48, 0x49, 0x46,
+0x54, 0x2c, 0x0a, 0x20, 0x20, 0x42, 0x49, 0x54, 0x57, 0x49, 0x53, 0x45, 0x5f, 0x41, 0x4e, 0x44,
+0x2c, 0x0a, 0x20, 0x20, 0x42, 0x49, 0x54, 0x57, 0x49, 0x53, 0x45, 0x5f, 0x4f, 0x52, 0x2c, 0x0a,
+0x20, 0x20, 0x42, 0x49, 0x54, 0x57, 0x49, 0x53, 0x45, 0x5f, 0x58, 0x4f, 0x52, 0x2c, 0x0a, 0x20,
+0x20, 0x49, 0x4e, 0x54, 0x44, 0x49, 0x56, 0x2c, 0x0a, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x49, 0x43,
+0x41, 0x4c, 0x5f, 0x41, 0x4e, 0x44, 0x2c, 0x0a, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41,
+0x4c, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, 0x48, 0x49, 0x46, 0x54, 0x2c, 0x0a, 0x20, 0x20,
+0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x53, 0x48,
+0x49, 0x46, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x4f,
+0x52, 0x2c, 0x0a, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x58, 0x4f, 0x52,
+0x2c, 0x0a, 0x20, 0x20, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x2c, 0x0a, 0x20, 0x20, 0x4d,
+0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x2c, 0x0a, 0x20, 0x20, 0x4d, 0x55, 0x4c, 0x2c, 0x0a, 0x20,
+0x20, 0x50, 0x4f, 0x57, 0x2c, 0x0a, 0x20, 0x20, 0x53, 0x55, 0x42, 0x2c, 0x0a, 0x20, 0x20, 0x54,
+0x41, 0x42, 0x4c, 0x45, 0x2c, 0x0a, 0x20, 0x20, 0x41, 0x42, 0x53, 0x2c, 0x0a, 0x20, 0x20, 0x42,
+0x49, 0x54, 0x57, 0x49, 0x53, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x45,
+0x49, 0x4c, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x4c, 0x5a, 0x2c, 0x0a, 0x20, 0x20, 0x45, 0x58, 0x50,
+0x2c, 0x0a, 0x20, 0x20, 0x46, 0x4c, 0x4f, 0x4f, 0x52, 0x2c, 0x0a, 0x20, 0x20, 0x4c, 0x4f, 0x47,
+0x2c, 0x0a, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x2c,
+0x0a, 0x20, 0x20, 0x4e, 0x45, 0x47, 0x41, 0x54, 0x45, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x45, 0x43,
+0x49, 0x50, 0x52, 0x4f, 0x43, 0x41, 0x4c, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x53, 0x51, 0x52, 0x54,
+0x2c, 0x0a, 0x20, 0x20, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x45, 0x51,
+0x55, 0x41, 0x4c, 0x2c, 0x0a, 0x20, 0x20, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x2c, 0x0a,
+0x20, 0x20, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x2c,
+0x0a, 0x20, 0x20, 0x52, 0x45, 0x44, 0x55, 0x43, 0x45, 0x5f, 0x41, 0x4e, 0x59, 0x2c, 0x0a, 0x20,
+0x20, 0x52, 0x45, 0x44, 0x55, 0x43, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x2c, 0x0a, 0x20, 0x20, 0x52,
+0x45, 0x44, 0x55, 0x43, 0x45, 0x5f, 0x4d, 0x41, 0x58, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x45, 0x44,
+0x55, 0x43, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x45, 0x44, 0x55, 0x43,
+0x45, 0x5f, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x45, 0x44,
+0x55, 0x43, 0x45, 0x5f, 0x53, 0x55, 0x4d, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x4f, 0x4e, 0x43, 0x41,
+0x54, 0x2c, 0x0a, 0x20, 0x20, 0x50, 0x41, 0x44, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x45, 0x53, 0x48,
+0x41, 0x50, 0x45, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x2c, 0x0a,
+0x20, 0x20, 0x53, 0x4c, 0x49, 0x43, 0x45, 0x2c, 0x0a, 0x20, 0x20, 0x54, 0x49, 0x4c, 0x45, 0x2c,
+0x0a, 0x20, 0x20, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x53, 0x45, 0x2c, 0x0a, 0x20, 0x20,
+0x47, 0x41, 0x54, 0x48, 0x45, 0x52, 0x2c, 0x0a, 0x20, 0x20, 0x53, 0x43, 0x41, 0x54, 0x54, 0x45,
+0x52, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x2c, 0x0a, 0x20, 0x20, 0x43,
+0x41, 0x53, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x45, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x2c, 0x0a,
+0x20, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x49, 0x44, 0x45, 0x4e, 0x54,
+0x49, 0x54, 0x59, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x2c, 0x0a, 0x20,
+0x20, 0x43, 0x4f, 0x4e, 0x44, 0x5f, 0x49, 0x46, 0x2c, 0x0a, 0x20, 0x20, 0x57, 0x48, 0x49, 0x4c,
+0x45, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x2c, 0x0a, 0x20, 0x20, 0x46, 0x46, 0x54, 0x32, 0x44, 0x2c,
+0x0a, 0x20, 0x20, 0x52, 0x46, 0x46, 0x54, 0x32, 0x44, 0x2c, 0x0a, 0x20, 0x20, 0x45, 0x52, 0x46,
+0x2c, 0x0a, 0x20, 0x20, 0x44, 0x49, 0x4d, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x54,
+0x5f, 0x53, 0x48, 0x41, 0x50, 0x45, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x4f, 0x4e, 0x43, 0x41, 0x54,
+0x5f, 0x53, 0x48, 0x41, 0x50, 0x45, 0x2c, 0x0a, 0x20, 0x20, 0x41, 0x44, 0x44, 0x5f, 0x53, 0x48,
+0x41, 0x50, 0x45, 0x2c, 0x0a, 0x20, 0x20, 0x53, 0x55, 0x42, 0x5f, 0x53, 0x48, 0x41, 0x50, 0x45,
+0x2c, 0x0a, 0x20, 0x20, 0x4d, 0x55, 0x4c, 0x5f, 0x53, 0x48, 0x41, 0x50, 0x45, 0x2c, 0x0a, 0x20,
+0x20, 0x44, 0x49, 0x56, 0x5f, 0x53, 0x48, 0x41, 0x50, 0x45, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x4f,
+0x53, 0x2c, 0x0a, 0x20, 0x20, 0x53, 0x49, 0x4e, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x41, 0x53, 0x54,
+0x5f, 0x53, 0x54, 0x4f, 0x43, 0x48, 0x41, 0x53, 0x54, 0x49, 0x43, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a,
+0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20,
+0x7b, 0x0a, 0x20, 0x20, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+0x65, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x76, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x73, 0x65, 0x43,
+0x6f, 0x6e, 0x76, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20,
+0x50, 0x61, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20,
+0x41, 0x78, 0x69, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20,
+0x20, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+0x2c, 0x0a, 0x20, 0x20, 0x43, 0x6c, 0x61, 0x6d, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x52, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x41, 0x74, 0x74,
+0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x4d, 0x75, 0x6c, 0x41, 0x74, 0x74,
+0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x41, 0x72, 0x69, 0x74, 0x68, 0x6d,
+0x65, 0x74, 0x69, 0x63, 0x52, 0x69, 0x67, 0x68, 0x74, 0x53, 0x68, 0x69, 0x66, 0x74, 0x41, 0x74,
+0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x64, 0x49,
+0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x57, 0x68,
+0x69, 0x6c, 0x65, 0x4c, 0x6f, 0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+0x2c, 0x0a, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x74, 0x74,
+0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41,
+0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x4d, 0x61, 0x74, 0x4d,
+0x75, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x46,
+0x75, 0x6c, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74,
+0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x65,
+0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20, 0x43, 0x75, 0x73,
+0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20,
+0x46, 0x46, 0x54, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x20, 0x20,
+0x52, 0x46, 0x46, 0x54, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x0a, 0x7d,
+0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x74, 0x74, 0x72,
+0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x3a, 0x20, 0x5b,
+0x69, 0x6e, 0x74, 0x33, 0x32, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c,
+0x3a, 0x20, 0x5b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x74, 0x72,
+0x69, 0x64, 0x65, 0x3a, 0x20, 0x5b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5d, 0x3b, 0x0a, 0x20, 0x20,
+0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x7a, 0x70, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b,
+0x0a, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x7a, 0x70, 0x3a, 0x20, 0x69, 0x6e,
+0x74, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x63, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3a,
+0x20, 0x44, 0x54, 0x79, 0x70, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65,
+0x20, 0x43, 0x6f, 0x6e, 0x76, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b,
+0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x3a, 0x20, 0x5b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5d, 0x3b,
+0x0a, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x3a, 0x20, 0x5b, 0x69, 0x6e, 0x74, 0x33,
+0x32, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,
+0x5b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74,
+0x5f, 0x7a, 0x70, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x65,
+0x69, 0x67, 0x68, 0x74, 0x5f, 0x7a, 0x70, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a,
+0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x62,
+0x6f, 0x6f, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x61, 0x63, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3a,
+0x20, 0x44, 0x54, 0x79, 0x70, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65,
+0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x41, 0x74,
+0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x5f,
+0x70, 0x61, 0x64, 0x3a, 0x20, 0x5b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5d, 0x3b, 0x0a, 0x20, 0x20,
+0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x3a, 0x20, 0x5b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5d, 0x3b,
+0x0a, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x7a, 0x70, 0x3a, 0x20, 0x69, 0x6e, 0x74,
+0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x7a, 0x70, 0x3a,
+0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
+0x62, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x61,
+0x63, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x44, 0x54, 0x79, 0x70, 0x65, 0x3b, 0x0a,
+0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x50, 0x61, 0x64, 0x41, 0x74, 0x74, 0x72,
+0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x64, 0x5f, 0x63, 0x6f,
+0x6e, 0x73, 0x74, 0x3a, 0x20, 0x5b, 0x75, 0x62, 0x79, 0x74, 0x65, 0x5d, 0x20, 0x28, 0x66, 0x6f,
+0x72, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x38, 0x29, 0x3b, 0x0a, 0x7d,
+0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x41, 0x78, 0x69, 0x73, 0x41, 0x74, 0x74, 0x72,
+0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x78, 0x69, 0x73, 0x3a, 0x20,
+0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20,
+0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20,
+0x7b, 0x0a, 0x20, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3a, 0x20, 0x5b, 0x69, 0x6e, 0x74, 0x31,
+0x36, 0x5d, 0x20, 0x28, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x29, 0x3b,
+0x0a, 0x20, 0x20, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x20, 0x5b, 0x69, 0x6e, 0x74, 0x31,
+0x36, 0x5d, 0x20, 0x28, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x29, 0x3b,
+0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x5b, 0x69, 0x6e, 0x74, 0x31,
+0x36, 0x5d, 0x20, 0x28, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x29, 0x3b,
+0x0a, 0x20, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x3a, 0x20, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x4d,
+0x6f, 0x64, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x43, 0x6c,
+0x61, 0x6d, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20,
+0x20, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x3a, 0x20, 0x5b, 0x75, 0x62, 0x79, 0x74, 0x65,
+0x5d, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20,
+0x38, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x3a, 0x20, 0x5b,
+0x75, 0x62, 0x79, 0x74, 0x65, 0x5d, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x6c,
+0x69, 0x67, 0x6e, 0x3a, 0x20, 0x38, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c,
+0x65, 0x20, 0x52, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x7a, 0x70, 0x3a,
+0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
+0x5f, 0x7a, 0x70, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x73, 0x63,
+0x61, 0x6c, 0x65, 0x33, 0x32, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x64,
+0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x62, 0x6f, 0x6f,
+0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
+0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f,
+0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x3b, 0x0a,
+0x20, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65,
+0x64, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c,
+0x65, 0x20, 0x4d, 0x75, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b,
+0x0a, 0x20, 0x20, 0x73, 0x68, 0x69, 0x66, 0x74, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b,
+0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x41, 0x72, 0x69, 0x74, 0x68, 0x6d,
+0x65, 0x74, 0x69, 0x63, 0x52, 0x69, 0x67, 0x68, 0x74, 0x53, 0x68, 0x69, 0x66, 0x74, 0x41, 0x74,
+0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x6f, 0x75, 0x6e,
+0x64, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c,
+0x65, 0x20, 0x43, 0x6f, 0x6e, 0x64, 0x49, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68,
+0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65,
+0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x0a,
+0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x57, 0x68, 0x69, 0x6c, 0x65, 0x4c, 0x6f,
+0x6f, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20,
+0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69,
+0x6e, 0x67, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68,
+0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62,
+0x6c, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x74, 0x74, 0x72,
+0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x3a,
+0x20, 0x5b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62,
+0x6c, 0x65, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x5b, 0x69, 0x6e,
+0x74, 0x31, 0x36, 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x4d,
+0x61, 0x74, 0x4d, 0x75, 0x6c, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b,
+0x0a, 0x20, 0x20, 0x61, 0x5f, 0x7a, 0x70, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a,
+0x20, 0x20, 0x62, 0x5f, 0x7a, 0x70, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a, 0x7d,
+0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x79, 0x43, 0x6f, 0x6e,
+0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20,
+0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x7a, 0x70, 0x3a, 0x20, 0x69, 0x6e,
+0x74, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x7a, 0x70,
+0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c,
+0x65, 0x20, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x31, 0x5f, 0x7a, 0x70, 0x3a,
+0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
+0x5f, 0x7a, 0x70, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74,
+0x61, 0x62, 0x6c, 0x65, 0x20, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69,
+0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
+0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x0a, 0x20,
+0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x73, 0x74, 0x72,
+0x69, 0x6e, 0x67, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x73, 0x3a, 0x5b, 0x75, 0x62, 0x79,
+0x74, 0x65, 0x5d, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x46, 0x46,
+0x54, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x69,
+0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x3b, 0x0a, 0x20, 0x20,
+0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x62, 0x6f, 0x6f,
+0x6c, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x46, 0x46, 0x54,
+0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6c, 0x6f,
+0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x3b,
+0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
+0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x3a, 0x20, 0x69, 0x6e,
+0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x69, 0x6e,
+0x6f, 0x72, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x3b, 0x0a,
+0x20, 0x20, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x20,
+0x3d, 0x20, 0x2d, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x3a, 0x20,
+0x62, 0x6f, 0x6f, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a,
+0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x54, 0x6f, 0x73, 0x61, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72,
+0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
+0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f,
+0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x2c, 0x20, 0x75, 0x73,
+0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x64,
+0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x0a, 0x20, 0x20, 0x73, 0x68, 0x61, 0x70,
+0x65, 0x3a, 0x5b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5d, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f,
+0x20, 0x73, 0x68, 0x61, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65,
+0x6e, 0x73, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x44, 0x54, 0x79, 0x70,
+0x65, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x64, 0x61, 0x74, 0x61,
+0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6e,
+0x73, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x20, 0x5b, 0x75, 0x62, 0x79,
+0x74, 0x65, 0x5d, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e,
+0x3a, 0x20, 0x38, 0x29, 0x3b, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x72, 0x61, 0x77, 0x20, 0x64,
+0x61, 0x74, 0x61, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x27,
+0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x74, 0x65, 0x6e,
+0x73, 0x6f, 0x72, 0x2e, 0x0a, 0x20, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x3a,
+0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x69, 0x73, 0x20, 0x74,
+0x68, 0x69, 0x73, 0x20, 0x61, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74,
+0x65, 0x6e, 0x73, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x69, 0x73, 0x5f, 0x75, 0x6e, 0x72, 0x61, 0x6e,
+0x6b, 0x65, 0x64, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x77, 0x68, 0x65,
+0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20,
+0x75, 0x6e, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x64, 0x20, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x0a,
+0x20, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x3a,
+0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20,
+0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+0x74, 0x65, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x54, 0x6f, 0x73, 0x61,
+0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6f, 0x70, 0x3a,
+0x4f, 0x70, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
+0x6f, 0x72, 0x20, 0x65, 0x6e, 0x75, 0x6d, 0x0a, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
+0x75, 0x74, 0x65, 0x3a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x3b, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x72,
+0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
+0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x70,
+0x75, 0x74, 0x73, 0x3a, 0x5b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5d, 0x3b, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f,
+0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x20, 0x6e,
+0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x3a, 0x5b,
+0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5d, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x20, 0x2f, 0x2f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x70,
+0x75, 0x74, 0x20, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a,
+0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x54, 0x6f, 0x73, 0x61, 0x42, 0x61, 0x73,
+0x69, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x62,
+0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x6f, 0x70, 0x65, 0x72,
+0x61, 0x74, 0x6f, 0x72, 0x73, 0x3a, 0x5b, 0x54, 0x6f, 0x73, 0x61, 0x4f, 0x70, 0x65, 0x72, 0x61,
+0x74, 0x6f, 0x72, 0x5d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
+0x72, 0x73, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x0a, 0x20, 0x20, 0x74, 0x65, 0x6e, 0x73, 0x6f,
+0x72, 0x73, 0x3a, 0x5b, 0x54, 0x6f, 0x73, 0x61, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x5d, 0x3b,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x20,
+0x61, 0x72, 0x72, 0x61, 0x79, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x3a, 0x5b,
+0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5d, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x72, 0x61,
+0x70, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x70,
+0x75, 0x74, 0x73, 0x3a, 0x5b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5d, 0x3b, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66,
+0x20, 0x67, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x0a, 0x7d,
+0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x54, 0x6f, 0x73, 0x61, 0x52, 0x65, 0x67, 0x69,
+0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x73, 0x74, 0x72, 0x69,
+0x6e, 0x67, 0x3b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+0x2f, 0x2f, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f,
+0x6e, 0x0a, 0x20, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x3a, 0x5b, 0x54, 0x6f, 0x73, 0x61,
+0x42, 0x61, 0x73, 0x69, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x5d, 0x3b, 0x20, 0x2f, 0x2f, 0x20,
+0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x20, 0x61, 0x72, 0x72,
+0x61, 0x79, 0x0a, 0x7d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x54, 0x6f, 0x73, 0x61,
+0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
+0x6e, 0x3a, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x72, 0x65, 0x71, 0x75, 0x69,
+0x72, 0x65, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x3a,
+0x5b, 0x54, 0x6f, 0x73, 0x61, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5d, 0x3b, 0x20, 0x20, 0x20,
+0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61,
+0x72, 0x72, 0x61, 0x79, 0x0a, 0x7d, 0x0a, 0x0a, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x74, 0x79, 0x70,
+0x65, 0x20, 0x54, 0x6f, 0x73, 0x61, 0x47, 0x72, 0x61, 0x70, 0x68, 0x3b, 0x0a, 0x00 };
+
+const size_t TOSA_SCHEMA_SIZE = 5629;
diff --git a/include/tosa_serialization_handler.h b/include/tosa_serialization_handler.h
index c09a47d..5b3882e 100644
--- a/include/tosa_serialization_handler.h
+++ b/include/tosa_serialization_handler.h
@@ -410,6 +410,7 @@ public:
tosa_err_t SaveFileJson(const char* filename);
tosa_err_t SaveFileTosaFlatbuffer(const char* filename);
tosa_err_t LoadFileSchema(const char* schema_filename);
+ tosa_err_t LoadTosaSchema();
// data format conversion. little-endian.
static tosa_err_t ConvertBF16toU8(const std::vector<bf16>& in, std::vector<uint8_t>& out);