|
our @ISA = qw(Exporter) ;
our $VERSION = '5.004' ;
our ( @EXPORT_OK , %DEFINE , %TAG_INFO_HASH , @TAG_INFO_ARRAY );
our %EXPORT_TAGS = ( all => \ @EXPORT_OK );
BEGIN {
%DEFINE = (
"SRL_HDR_ALIAS" => 46,
"SRL_HDR_ARRAY" => 43,
"SRL_HDR_ARRAYREF" => 64,
"SRL_HDR_ARRAYREF_HIGH" => 79,
"SRL_HDR_ARRAYREF_LOW" => 64,
"SRL_HDR_BINARY" => 38,
"SRL_HDR_CANONICAL_UNDEF" => 57,
"SRL_HDR_COPY" => 47,
"SRL_HDR_DOUBLE" => 35,
"SRL_HDR_EXTEND" => 62,
"SRL_HDR_FALSE" => 58,
"SRL_HDR_FLOAT" => 34,
"SRL_HDR_FLOAT_128" => 56,
"SRL_HDR_HASH" => 42,
"SRL_HDR_HASHREF" => 80,
"SRL_HDR_HASHREF_HIGH" => 95,
"SRL_HDR_HASHREF_LOW" => 80,
"SRL_HDR_LONG_DOUBLE" => 36,
"SRL_HDR_MANY" => 60,
"SRL_HDR_NEG" => 16,
"SRL_HDR_NEG_HIGH" => 31,
"SRL_HDR_NEG_LOW" => 16,
"SRL_HDR_NO" => 52,
"SRL_HDR_OBJECT" => 44,
"SRL_HDR_OBJECTV" => 45,
"SRL_HDR_OBJECTV_FREEZE" => 51,
"SRL_HDR_OBJECT_FREEZE" => 50,
"SRL_HDR_PACKET_START" => 61,
"SRL_HDR_PAD" => 63,
"SRL_HDR_POS" => 0,
"SRL_HDR_POS_HIGH" => 15,
"SRL_HDR_POS_LOW" => 0,
"SRL_HDR_REFN" => 40,
"SRL_HDR_REFP" => 41,
"SRL_HDR_REGEXP" => 49,
"SRL_HDR_RESERVED" => 54,
"SRL_HDR_RESERVED_HIGH" => 55,
"SRL_HDR_RESERVED_LOW" => 54,
"SRL_HDR_SHORT_BINARY" => 96,
"SRL_HDR_SHORT_BINARY_HIGH" => 127,
"SRL_HDR_SHORT_BINARY_LOW" => 96,
"SRL_HDR_STR_UTF8" => 39,
"SRL_HDR_TRACK_FLAG" => 128,
"SRL_HDR_TRUE" => 59,
"SRL_HDR_UNDEF" => 37,
"SRL_HDR_VARINT" => 32,
"SRL_HDR_WEAKEN" => 48,
"SRL_HDR_YES" => 53,
"SRL_HDR_ZIGZAG" => 33,
"SRL_MAGIC_STRING" => "=srl" ,
"SRL_MAGIC_STRING_HIGHBIT" => "=\363rl" ,
"SRL_MAGIC_STRING_HIGHBIT_UINT_BE" => 1039364716,
"SRL_MAGIC_STRING_HIGHBIT_UINT_LE" => 1819472701,
"SRL_MAGIC_STRING_HIGHBIT_UTF8" => "=\303\263rl" ,
"SRL_MAGIC_STRING_HIGHBIT_UTF8_UINT_BE" => 1036235634,
"SRL_MAGIC_STRING_HIGHBIT_UTF8_UINT_LE" => 1924383549,
"SRL_MAGIC_STRING_UINT_BE" => 1030976108,
"SRL_MAGIC_STRING_UINT_LE" => 1819439933,
"SRL_MAGIC_STRLEN" => 4,
"SRL_MASK_ARRAYREF_COUNT" => 15,
"SRL_MASK_HASHREF_COUNT" => 15,
"SRL_MASK_SHORT_BINARY_LEN" => 31,
"SRL_NEG_MIN_SIZE" => 16,
"SRL_POS_MAX_SIZE" => 15,
"SRL_PROTOCOL_ENCODING_MASK" => 240,
"SRL_PROTOCOL_ENCODING_RAW" => 0,
"SRL_PROTOCOL_ENCODING_SNAPPY" => 16,
"SRL_PROTOCOL_ENCODING_SNAPPY_INCREMENTAL" => 32,
"SRL_PROTOCOL_ENCODING_ZLIB" => 48,
"SRL_PROTOCOL_ENCODING_ZSTD" => 64,
"SRL_PROTOCOL_HDR_CONTINUE" => 8,
"SRL_PROTOCOL_HDR_USER_DATA" => 1,
"SRL_PROTOCOL_VERSION" => 5,
"SRL_PROTOCOL_VERSION_BITS" => 4,
"SRL_PROTOCOL_VERSION_MASK" => 15
);
}
push @EXPORT_OK , keys %DEFINE ;
@TAG_INFO_ARRAY = (
{
"comment" => "small positive integer - value in low 4 bits (identity)" ,
"masked" => 1,
"masked_val" => 0,
"name" => "POS_0" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 0
},
{
"masked" => 1,
"masked_val" => 1,
"name" => "POS_1" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 1
},
{
"masked" => 1,
"masked_val" => 2,
"name" => "POS_2" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 2
},
{
"masked" => 1,
"masked_val" => 3,
"name" => "POS_3" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 3
},
{
"masked" => 1,
"masked_val" => 4,
"name" => "POS_4" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 4
},
{
"masked" => 1,
"masked_val" => 5,
"name" => "POS_5" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 5
},
{
"masked" => 1,
"masked_val" => 6,
"name" => "POS_6" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 6
},
{
"masked" => 1,
"masked_val" => 7,
"name" => "POS_7" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 7
},
{
"masked" => 1,
"masked_val" => 8,
"name" => "POS_8" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 8
},
{
"masked" => 1,
"masked_val" => 9,
"name" => "POS_9" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 9
},
{
"masked" => 1,
"masked_val" => 10,
"name" => "POS_10" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 10
},
{
"masked" => 1,
"masked_val" => 11,
"name" => "POS_11" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 11
},
{
"masked" => 1,
"masked_val" => 12,
"name" => "POS_12" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 12
},
{
"masked" => 1,
"masked_val" => 13,
"name" => "POS_13" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 13
},
{
"masked" => 1,
"masked_val" => 14,
"name" => "POS_14" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 14
},
{
"masked" => 1,
"masked_val" => 15,
"name" => "POS_15" ,
"type_name" => "POS" ,
"type_value" => 0,
"value" => 15
},
{
"comment" => "small negative integer - value in low 4 bits (k+32)" ,
"masked" => 1,
"masked_val" => 16,
"name" => "NEG_16" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 16
},
{
"masked" => 1,
"masked_val" => 15,
"name" => "NEG_15" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 17
},
{
"masked" => 1,
"masked_val" => 14,
"name" => "NEG_14" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 18
},
{
"masked" => 1,
"masked_val" => 13,
"name" => "NEG_13" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 19
},
{
"masked" => 1,
"masked_val" => 12,
"name" => "NEG_12" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 20
},
{
"masked" => 1,
"masked_val" => 11,
"name" => "NEG_11" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 21
},
{
"masked" => 1,
"masked_val" => 10,
"name" => "NEG_10" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 22
},
{
"masked" => 1,
"masked_val" => 9,
"name" => "NEG_9" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 23
},
{
"masked" => 1,
"masked_val" => 8,
"name" => "NEG_8" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 24
},
{
"masked" => 1,
"masked_val" => 7,
"name" => "NEG_7" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 25
},
{
"masked" => 1,
"masked_val" => 6,
"name" => "NEG_6" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 26
},
{
"masked" => 1,
"masked_val" => 5,
"name" => "NEG_5" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 27
},
{
"masked" => 1,
"masked_val" => 4,
"name" => "NEG_4" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 28
},
{
"masked" => 1,
"masked_val" => 3,
"name" => "NEG_3" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 29
},
{
"masked" => 1,
"masked_val" => 2,
"name" => "NEG_2" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 30
},
{
"masked" => 1,
"masked_val" => 1,
"name" => "NEG_1" ,
"type_name" => "NEG" ,
"type_value" => 16,
"value" => 31
},
{
"comment" => "<VARINT> - Varint variable length integer" ,
"name" => "VARINT" ,
"type_name" => "VARINT" ,
"type_value" => 32,
"value" => 32
},
{
"comment" => "<ZIGZAG-VARINT> - Zigzag variable length integer" ,
"name" => "ZIGZAG" ,
"type_name" => "ZIGZAG" ,
"type_value" => 33,
"value" => 33
},
{
"comment" => "<IEEE-FLOAT>" ,
"name" => "FLOAT" ,
"type_name" => "FLOAT" ,
"type_value" => 34,
"value" => 34
},
{
"comment" => "<IEEE-DOUBLE>" ,
"name" => "DOUBLE" ,
"type_name" => "DOUBLE" ,
"type_value" => 35,
"value" => 35
},
{
"comment" => "<IEEE-LONG-DOUBLE>" ,
"name" => "LONG_DOUBLE" ,
"type_name" => "LONG_DOUBLE" ,
"type_value" => 36,
"value" => 36
},
{
"comment" => "None - Perl undef var; eg my \$var= undef;" ,
"name" => "UNDEF" ,
"type_name" => "UNDEF" ,
"type_value" => 37,
"value" => 37
},
{
"comment" => "<LEN-VARINT> <BYTES> - binary/(latin1) string" ,
"name" => "BINARY" ,
"type_name" => "BINARY" ,
"type_value" => 38,
"value" => 38
},
{
"comment" => "<LEN-VARINT> <UTF8> - utf8 string" ,
"name" => "STR_UTF8" ,
"type_name" => "STR_UTF8" ,
"type_value" => 39,
"value" => 39
},
{
"comment" => "<ITEM-TAG> - ref to next item" ,
"name" => "REFN" ,
"type_name" => "REFN" ,
"type_value" => 40,
"value" => 40
},
{
"comment" => "<OFFSET-VARINT> - ref to previous item stored at offset" ,
"name" => "REFP" ,
"type_name" => "REFP" ,
"type_value" => 41,
"value" => 41
},
{
"comment" =>
"<COUNT-VARINT> [<KEY-TAG> <ITEM-TAG> ...] - count followed by key/value pairs" ,
"name" => "HASH" ,
"type_name" => "HASH" ,
"type_value" => 42,
"value" => 42
},
{
"comment" => "<COUNT-VARINT> [<ITEM-TAG> ...] - count followed by items" ,
"name" => "ARRAY" ,
"type_name" => "ARRAY" ,
"type_value" => 43,
"value" => 43
},
{
"comment" => "<STR-TAG> <ITEM-TAG> - class, object-item" ,
"name" => "OBJECT" ,
"type_name" => "OBJECT" ,
"type_value" => 44,
"value" => 44
},
{
"comment" =>
"<OFFSET-VARINT> <ITEM-TAG> - offset of previously used classname tag - object-item" ,
"name" => "OBJECTV" ,
"type_name" => "OBJECTV" ,
"type_value" => 45,
"value" => 45
},
{
"comment" => "<OFFSET-VARINT> - alias to item defined at offset" ,
"name" => "ALIAS" ,
"type_name" => "ALIAS" ,
"type_value" => 46,
"value" => 46
},
{
"comment" => "<OFFSET-VARINT> - copy of item defined at offset" ,
"name" => "COPY" ,
"type_name" => "COPY" ,
"type_value" => 47,
"value" => 47
},
{
"comment" => "<REF-TAG> - Weaken the following reference" ,
"name" => "WEAKEN" ,
"type_name" => "WEAKEN" ,
"type_value" => 48,
"value" => 48
},
{
"comment" => "<PATTERN-STR-TAG> <MODIFIERS-STR-TAG>" ,
"name" => "REGEXP" ,
"type_name" => "REGEXP" ,
"type_value" => 49,
"value" => 49
},
{
"comment" =>
"<STR-TAG> <ITEM-TAG> - class, object-item. Need to call \"THAW\" method on class after decoding" ,
"name" => "OBJECT_FREEZE" ,
"type_name" => "OBJECT_FREEZE" ,
"type_value" => 50,
"value" => 50
},
{
"comment" =>
"<OFFSET-VARINT> <ITEM-TAG> - (OBJECTV_FREEZE is to OBJECT_FREEZE as OBJECTV is to OBJECT)" ,
"name" => "OBJECTV_FREEZE" ,
"type_name" => "OBJECTV_FREEZE" ,
"type_value" => 51,
"value" => 51
},
{
"comment" => "SvIsBOOL() == PL_No, 5.36 and later only (json false)" ,
"name" => "NO" ,
"type_name" => "NO" ,
"type_value" => 52,
"value" => 52
},
{
"comment" => "SvIsBOOL() == PL_Yes, 5.36 and later only (json true)" ,
"name" => "YES" ,
"type_name" => "YES" ,
"type_value" => 53,
"value" => 53
},
{
"masked" => 1,
"masked_val" => 0,
"name" => "RESERVED_0" ,
"type_name" => "RESERVED" ,
"type_value" => 54,
"value" => 54
},
{
"masked" => 1,
"masked_val" => 1,
"name" => "RESERVED_1" ,
"type_name" => "RESERVED" ,
"type_value" => 54,
"value" => 55
},
{
"comment" => "quadmath _float128" ,
"name" => "FLOAT_128" ,
"type_name" => "FLOAT_128" ,
"type_value" => 56,
"value" => 56
},
{
"comment" => "undef (PL_sv_undef) - \"the\" Perl undef (see notes)" ,
"name" => "CANONICAL_UNDEF" ,
"type_name" => "CANONICAL_UNDEF" ,
"type_value" => 57,
"value" => 57
},
{
"comment" => "false (PL_sv_no)" ,
"name" => "FALSE" ,
"type_name" => "FALSE" ,
"type_value" => 58,
"value" => 58
},
{
"comment" => "true (PL_sv_yes)" ,
"name" => "TRUE" ,
"type_name" => "TRUE" ,
"type_value" => 59,
"value" => 59
},
{
"comment" =>
"<LEN-VARINT> <TYPE-BYTE> <TAG-DATA> - repeated tag (not done yet, will be implemented in version 3)" ,
"name" => "MANY" ,
"type_name" => "MANY" ,
"type_value" => 60,
"value" => 60
},
{
"comment" => "(first byte of magic string in header)" ,
"name" => "PACKET_START" ,
"type_name" => "PACKET_START" ,
"type_value" => 61,
"value" => 61
},
{
"comment" => "<BYTE> - for additional tags" ,
"name" => "EXTEND" ,
"type_name" => "EXTEND" ,
"type_value" => 62,
"value" => 62
},
{
"comment" => "(ignored tag, skip to next byte)" ,
"name" => "PAD" ,
"type_name" => "PAD" ,
"type_value" => 63,
"value" => 63
},
{
"comment" => "[<ITEM-TAG> ...] - count of items in low 4 bits (ARRAY must be refcnt=1)" ,
"masked" => 1,
"masked_val" => 0,
"name" => "ARRAYREF_0" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 64
},
{
"masked" => 1,
"masked_val" => 1,
"name" => "ARRAYREF_1" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 65
},
{
"masked" => 1,
"masked_val" => 2,
"name" => "ARRAYREF_2" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 66
},
{
"masked" => 1,
"masked_val" => 3,
"name" => "ARRAYREF_3" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 67
},
{
"masked" => 1,
"masked_val" => 4,
"name" => "ARRAYREF_4" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 68
},
{
"masked" => 1,
"masked_val" => 5,
"name" => "ARRAYREF_5" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 69
},
{
"masked" => 1,
"masked_val" => 6,
"name" => "ARRAYREF_6" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 70
},
{
"masked" => 1,
"masked_val" => 7,
"name" => "ARRAYREF_7" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 71
},
{
"masked" => 1,
"masked_val" => 8,
"name" => "ARRAYREF_8" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 72
},
{
"masked" => 1,
"masked_val" => 9,
"name" => "ARRAYREF_9" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 73
},
{
"masked" => 1,
"masked_val" => 10,
"name" => "ARRAYREF_10" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 74
},
{
"masked" => 1,
"masked_val" => 11,
"name" => "ARRAYREF_11" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 75
},
{
"masked" => 1,
"masked_val" => 12,
"name" => "ARRAYREF_12" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 76
},
{
"masked" => 1,
"masked_val" => 13,
"name" => "ARRAYREF_13" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 77
},
{
"masked" => 1,
"masked_val" => 14,
"name" => "ARRAYREF_14" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 78
},
{
"masked" => 1,
"masked_val" => 15,
"name" => "ARRAYREF_15" ,
"type_name" => "ARRAYREF" ,
"type_value" => 64,
"value" => 79
},
{
"comment" =>
"[<KEY-TAG> <ITEM-TAG> ...] - count in low 4 bits, key/value pairs (HASH must be refcnt=1)" ,
"masked" => 1,
"masked_val" => 0,
"name" => "HASHREF_0" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 80
},
{
"masked" => 1,
"masked_val" => 1,
"name" => "HASHREF_1" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 81
},
{
"masked" => 1,
"masked_val" => 2,
"name" => "HASHREF_2" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 82
},
{
"masked" => 1,
"masked_val" => 3,
"name" => "HASHREF_3" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 83
},
{
"masked" => 1,
"masked_val" => 4,
"name" => "HASHREF_4" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 84
},
{
"masked" => 1,
"masked_val" => 5,
"name" => "HASHREF_5" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 85
},
{
"masked" => 1,
"masked_val" => 6,
"name" => "HASHREF_6" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 86
},
{
"masked" => 1,
"masked_val" => 7,
"name" => "HASHREF_7" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 87
},
{
"masked" => 1,
"masked_val" => 8,
"name" => "HASHREF_8" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 88
},
{
"masked" => 1,
"masked_val" => 9,
"name" => "HASHREF_9" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 89
},
{
"masked" => 1,
"masked_val" => 10,
"name" => "HASHREF_10" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 90
},
{
"masked" => 1,
"masked_val" => 11,
"name" => "HASHREF_11" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 91
},
{
"masked" => 1,
"masked_val" => 12,
"name" => "HASHREF_12" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 92
},
{
"masked" => 1,
"masked_val" => 13,
"name" => "HASHREF_13" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 93
},
{
"masked" => 1,
"masked_val" => 14,
"name" => "HASHREF_14" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 94
},
{
"masked" => 1,
"masked_val" => 15,
"name" => "HASHREF_15" ,
"type_name" => "HASHREF" ,
"type_value" => 80,
"value" => 95
},
{
"comment" => "<BYTES> - binary/latin1 string, length encoded in low 5 bits of tag" ,
"masked" => 1,
"masked_val" => 0,
"name" => "SHORT_BINARY_0" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 96
},
{
"masked" => 1,
"masked_val" => 1,
"name" => "SHORT_BINARY_1" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 97
},
{
"masked" => 1,
"masked_val" => 2,
"name" => "SHORT_BINARY_2" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 98
},
{
"masked" => 1,
"masked_val" => 3,
"name" => "SHORT_BINARY_3" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 99
},
{
"masked" => 1,
"masked_val" => 4,
"name" => "SHORT_BINARY_4" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 100
},
{
"masked" => 1,
"masked_val" => 5,
"name" => "SHORT_BINARY_5" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 101
},
{
"masked" => 1,
"masked_val" => 6,
"name" => "SHORT_BINARY_6" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 102
},
{
"masked" => 1,
"masked_val" => 7,
"name" => "SHORT_BINARY_7" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 103
},
{
"masked" => 1,
"masked_val" => 8,
"name" => "SHORT_BINARY_8" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 104
},
{
"masked" => 1,
"masked_val" => 9,
"name" => "SHORT_BINARY_9" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 105
},
{
"masked" => 1,
"masked_val" => 10,
"name" => "SHORT_BINARY_10" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 106
},
{
"masked" => 1,
"masked_val" => 11,
"name" => "SHORT_BINARY_11" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 107
},
{
"masked" => 1,
"masked_val" => 12,
"name" => "SHORT_BINARY_12" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 108
},
{
"masked" => 1,
"masked_val" => 13,
"name" => "SHORT_BINARY_13" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 109
},
{
"masked" => 1,
"masked_val" => 14,
"name" => "SHORT_BINARY_14" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 110
},
{
"masked" => 1,
"masked_val" => 15,
"name" => "SHORT_BINARY_15" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 111
},
{
"masked" => 1,
"masked_val" => 16,
"name" => "SHORT_BINARY_16" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 112
},
{
"masked" => 1,
"masked_val" => 17,
"name" => "SHORT_BINARY_17" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 113
},
{
"masked" => 1,
"masked_val" => 18,
"name" => "SHORT_BINARY_18" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 114
},
{
"masked" => 1,
"masked_val" => 19,
"name" => "SHORT_BINARY_19" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 115
},
{
"masked" => 1,
"masked_val" => 20,
"name" => "SHORT_BINARY_20" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 116
},
{
"masked" => 1,
"masked_val" => 21,
"name" => "SHORT_BINARY_21" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 117
},
{
"masked" => 1,
"masked_val" => 22,
"name" => "SHORT_BINARY_22" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 118
},
{
"masked" => 1,
"masked_val" => 23,
"name" => "SHORT_BINARY_23" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 119
},
{
"masked" => 1,
"masked_val" => 24,
"name" => "SHORT_BINARY_24" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 120
},
{
"masked" => 1,
"masked_val" => 25,
"name" => "SHORT_BINARY_25" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 121
},
{
"masked" => 1,
"masked_val" => 26,
"name" => "SHORT_BINARY_26" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 122
},
{
"masked" => 1,
"masked_val" => 27,
"name" => "SHORT_BINARY_27" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 123
},
{
"masked" => 1,
"masked_val" => 28,
"name" => "SHORT_BINARY_28" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 124
},
{
"masked" => 1,
"masked_val" => 29,
"name" => "SHORT_BINARY_29" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 125
},
{
"masked" => 1,
"masked_val" => 30,
"name" => "SHORT_BINARY_30" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 126
},
{
"masked" => 1,
"masked_val" => 31,
"name" => "SHORT_BINARY_31" ,
"type_name" => "SHORT_BINARY" ,
"type_value" => 96,
"value" => 127
} );
$TAG_INFO_HASH { chr $_ }= $TAG_INFO_ARRAY [ $_ ] for 0 .. 127;
push @EXPORT_OK , qw(%TAG_INFO_HASH @TAG_INFO_ARRAY) ;
1;
|