Codebase list golang-github-influxdata-go-syslog / 2495553
Update upstream source from tag 'upstream/2.0.1' Update to upstream version '2.0.1' with Debian dir 74494e1f667d98ad6faf5f6e6f102aa4fb7e4a2a Sergio Durigan Junior 3 years ago
28 changed file(s) with 5309 addition(s) and 5153 deletion(s). Raw diff Collapse all Expand all
2121 ## Installation
2222
2323 ```
24 go get github.com/influxdata/go-syslog
24 go get github.com/influxdata/go-syslog/v2
2525 ```
2626
2727 ## Docs
0 %%{
1 machine common;
2
3 # whitespace
4 sp = ' ';
5
6 # closing square bracket
7 csb = ']';
8
9 # double quote
10 dq = '"';
11
12 # backslash
13 bs = 0x5C;
14
15 # ", ], \
16 toescape = (dq | csb | bs);
17
18 # 0..59
19 sexagesimal = '0'..'5' . '0'..'9';
20
21 # 01..31
22 datemday = ('0' . '1'..'9' | '1'..'2' . '0'..'9' | '3' . '0'..'1');
23
24 # 01..12
25 datemonth = ('0' . '1'..'9' | '1' . '0'..'2');
26
27 datefullyear = digit{4};
28
29 fulldate = datefullyear '-' datemonth '-' datemday;
30
31 # 01..23
32 timehour = ('0'..'1' . '0'..'9' | '2' . '0'..'3');
33
34 timeminute = sexagesimal;
35
36 timesecond = sexagesimal;
37
38 timesecfrac = '.' digit{1,6};
39
40 timenumoffset = ('+' | '-') timehour ':' timeminute;
41
42 timeoffset = 'Z' | timenumoffset;
43
44 partialtime = timehour ':' timeminute ':' timesecond . timesecfrac?;
45
46 fulltime = partialtime . timeoffset;
47
48 printusascii = '!'..'~';
49
50 hostnamerange = printusascii{1,255};
51
52 appnamerange = printusascii{1,48};
53
54 procidrange = printusascii{1,128};
55
56 msgidrange = printusascii{1,32};
57
58 sdname = (printusascii - ('=' | sp | csb | dq)){1,32};
59
60 # rfc 3629
61 utf8tail = 0x80..0xBF;
62
63 utf81 = 0x00..0x7F;
64
65 utf82 = 0xC2..0xDF utf8tail;
66
67 utf83 = 0xE0 0xA0..0xBF utf8tail | 0xE1..0xEC utf8tail{2} | 0xED 0x80..0x9F utf8tail | 0xEE..0xEF utf8tail{2};
68
69 utf84 = 0xF0 0x90..0xBF utf8tail{2} | 0xF1..0xF3 utf8tail{3} | 0xF4 0x80..0x8F utf8tail{2};
70
71 utf8char = utf81 | utf82 | utf83 | utf84;
72
73 utf8octets = utf8char*;
74
75 bom = 0xEF 0xBB 0xBF;
76
77 # utf8char except ", ], \
78 utf8charwodelims = utf8char - toescape;
79
80 }%%
0 package common
1
2 // UnsafeUTF8DecimalCodePointsToInt converts a slice containing
3 // a series of UTF-8 decimal code points into their integer rapresentation.
4 //
5 // It assumes input code points are in the range 48-57.
6 // Returns a pointer since an empty slice is equal to nil and not to the zero value of the codomain (ie., `int`).
7 func UnsafeUTF8DecimalCodePointsToInt(chars []uint8) int {
8 out := 0
9 ord := 1
10 for i := len(chars) - 1; i >= 0; i-- {
11 curchar := int(chars[i])
12 out += (curchar - '0') * ord
13 ord *= 10
14 }
15 return out
16 }
17
18 // RemoveBytes removes byte at given positions from data byte slice, starting from the given offset.
19 func RemoveBytes(data []byte, positions []int, offset int) []byte {
20 // We need a copy here to not modify original data
21 cp := append([]byte(nil), data...)
22 for i, pos := range positions {
23 at := pos - i - offset
24 cp = append(cp[:at], cp[(at+1):]...)
25 }
26 return cp
27 }
28
29 // EscapeBytes adds a backslash to \, ], " characters.
30 func EscapeBytes(value string) string {
31 res := ""
32 for i, c := range value {
33 // todo(leodido): generalize byte codes (the function should ideally accept a byte slice containing byte codes to escape)
34 if c == 92 || c == 93 || c == 34 {
35 res += `\`
36 }
37 res += string(value[i])
38 }
39
40 return res
41 }
0 package common
1
2 import (
3 "testing"
4
5 "github.com/stretchr/testify/assert"
6 )
7
8 func TestSimpleUTF8DecimalConversion(t *testing.T) {
9 slice := []uint8{49, 48, 49}
10 res := UnsafeUTF8DecimalCodePointsToInt(slice)
11 assert.Equal(t, 101, res)
12 }
13
14 func TestNumberStartingWithZero(t *testing.T) {
15 slice := []uint8{48, 48, 50}
16 res := UnsafeUTF8DecimalCodePointsToInt(slice)
17 assert.Equal(t, 2, res)
18 }
19
20 func TestCharsNotInRange(t *testing.T) {
21 point := 10
22 slice := []uint8{uint8(point)} // Line Feed (LF)
23 res := UnsafeUTF8DecimalCodePointsToInt(slice)
24 assert.Equal(t, res, -(48 - point))
25 }
26
27 func TestAllDigits(t *testing.T) {
28 slice := []uint8{49, 50, 51, 52, 53, 54, 55, 56, 57, 48}
29 res := UnsafeUTF8DecimalCodePointsToInt(slice)
30 assert.Equal(t, 1234567890, res)
31 }
77 3;
88 node [ shape = circle ];
99 1 -> 2 [ label = "'<' / on_init" ];
10 2 -> 2 [ label = "1..'\\t', '\\v'..255, '\\n'(!27:13), 0(!27:13)" ];
11 2 -> 3 [ label = "'\\n'(27:13), 0(28:13) / on_trailer" ];
12 3 -> 2 [ label = "1..'\\t', '\\v'..';', '='..255, '\\n'(!27:13), 0(!27:13)" ];
10 2 -> 2 [ label = "1..'\\t', '\\v'..255, '\\n'(!28:13), 0(!28:13)" ];
11 2 -> 3 [ label = "'\\n'(28:13), 0(29:13) / on_trailer" ];
12 3 -> 2 [ label = "1..'\\t', '\\v'..';', '='..255, '\\n'(!28:13), 0(!28:13)" ];
1313 3 -> 2 [ label = "'<' / on_init" ];
14 3 -> 3 [ label = "'\\n'(27:13), 0(28:13) / on_trailer" ];
14 3 -> 3 [ label = "'\\n'(28:13), 0(29:13) / on_trailer" ];
1515 ENTRY -> 1 [ label = "IN" ];
1616 en_1 -> 1 [ label = "main" ];
1717 }
0 module github.com/influxdata/go-syslog
0 module github.com/influxdata/go-syslog/v2
11
22 require (
33 github.com/davecgh/go-spew v1.1.1
00 SHELL := /bin/bash
1 RAGEL := ragel -I common
12
23 export GO_TEST=env GOTRACEBACK=all GO111MODULE=on go test $(GO_ARGS)
34
78 @gofmt -w -s ./octetcounting
89 @gofmt -w -s ./nontransparent
910
10 rfc5424/machine.go: rfc5424/machine.go.rl rfc5424/rfc5424.rl
11 rfc5424/machine.go: rfc5424/machine.go.rl common/common.rl
1112
12 rfc5424/builder.go: rfc5424/builder.go.rl rfc5424/rfc5424.rl
13 rfc5424/builder.go: rfc5424/builder.go.rl common/common.rl
1314
1415 rfc5424/builder.go rfc5424/machine.go:
15 ragel -Z -G2 -e -o $@ $<
16 $(RAGEL) -Z -G2 -e -o $@ $<
1617 @sed -i '/^\/\/line/d' $@
1718 $(MAKE) file=$@ snake2camel
1819
1920 nontransparent/parser.go: nontransparent/parser.go.rl
20 ragel -Z -G2 -e -o $@ $<
21 $(RAGEL) -Z -G2 -e -o $@ $<
2122 @sed -i '/^\/\/line/d' $@
2223 $(MAKE) file=$@ snake2camel
2324
3839 $(GO_TEST) ./...
3940
4041 docs/nontransparent.dot: nontransparent/parser.go.rl
41 ragel -Z -Vp $< -o $@
42 $(RAGEL) -Z -Vp $< -o $@
4243
43 docs/rfc5424.dot: rfc5424/machine.go.rl rfc5424/rfc5424.rl
44 ragel -Z -Vp $< -o $@
44 docs/rfc5424.dot: rfc5424/machine.go.rl common/common.rl
45 $(RAGEL) -Z -Vp $< -o $@
4546
46 docs/rfc5424_pri.dot: rfc5424/machine.go.rl rfc5424/rfc5424.rl
47 ragel -Z -Vp -M pri $< -o $@
47 docs/rfc5424_pri.dot: rfc5424/machine.go.rl common/common.rl
48 $(RAGEL) -Z -Vp -M pri $< -o $@
4849
4950 docs/rfc5424_pri.png: docs/rfc5424_pri.dot
5051 dot $< -Tpng -o $@
5152
52 docs/rfc5424_version.dot: rfc5424/machine.go.rl rfc5424/rfc5424.rl
53 ragel -Z -Vp -M version $< -o $@
53 docs/rfc5424_version.dot: rfc5424/machine.go.rl common/common.rl
54 $(RAGEL) -Z -Vp -M version $< -o $@
5455
5556 docs/rfc5424_version.png: docs/rfc5424_version.dot
5657 dot $< -Tpng -o $@
5758
58 docs/rfc5424_timestamp.dot: rfc5424/machine.go.rl rfc5424/rfc5424.rl
59 ragel -Z -Vp -M timestamp $< -o $@
59 docs/rfc5424_timestamp.dot: rfc5424/machine.go.rl common/common.rl
60 $(RAGEL) -Z -Vp -M timestamp $< -o $@
6061
6162 docs/rfc5424_timestamp.png: docs/rfc5424_timestamp.dot
6263 dot $< -Tpng -o $@
6364
64 docs/rfc5424_hostname.dot: rfc5424/machine.go.rl rfc5424/rfc5424.rl
65 ragel -Z -Vp -M hostname $< -o $@
65 docs/rfc5424_hostname.dot: rfc5424/machine.go.rl common/common.rl
66 $(RAGEL) -Z -Vp -M hostname $< -o $@
6667
6768 docs/rfc5424_hostname.png: docs/rfc5424_hostname.dot
6869 dot $< -Tpng -o $@
6970
70 docs/rfc5424_appname.dot: rfc5424/machine.go.rl rfc5424/rfc5424.rl
71 ragel -Z -Vp -M appname $< -o $@
71 docs/rfc5424_appname.dot: rfc5424/machine.go.rl common/common.rl
72 $(RAGEL) -Z -Vp -M appname $< -o $@
7273
7374 docs/rfc5424_appname.png: docs/rfc5424_appname.dot
7475 dot $< -Tpng -o $@
7576
76 docs/rfc5424_procid.dot: rfc5424/machine.go.rl rfc5424/rfc5424.rl
77 ragel -Z -Vp -M procid $< -o $@
77 docs/rfc5424_procid.dot: rfc5424/machine.go.rl common/common.rl
78 $(RAGEL) -Z -Vp -M procid $< -o $@
7879
7980 docs/rfc5424_procid.png: docs/rfc5424_procid.dot
8081 dot $< -Tpng -o $@
8182
82 docs/rfc5424_msgid.dot: rfc5424/machine.go.rl rfc5424/rfc5424.rl
83 ragel -Z -Vp -M msgid $< -o $@
83 docs/rfc5424_msgid.dot: rfc5424/machine.go.rl common/common.rl
84 $(RAGEL) -Z -Vp -M msgid $< -o $@
8485
8586 docs/rfc5424_msgid.png: docs/rfc5424_msgid.dot
8687 dot $< -Tpng -o $@
8788
88 docs/rfc5424_structureddata.dot: rfc5424/machine.go.rl rfc5424/rfc5424.rl
89 ragel -Z -Vp -M structureddata $< -o $@
89 docs/rfc5424_structureddata.dot: rfc5424/machine.go.rl common/common.rl
90 $(RAGEL) -Z -Vp -M structureddata $< -o $@
9091
9192 docs/rfc5424_structureddata.png: docs/rfc5424_structureddata.dot
9293 dot $< -Tpng -o $@
9394
94 docs/rfc5424_msg.dot: rfc5424/machine.go.rl rfc5424/rfc5424.rl
95 ragel -Z -Vp -M msg $< -o $@
95 docs/rfc5424_msg.dot: rfc5424/machine.go.rl common/common.rl
96 $(RAGEL) -Z -Vp -M msg $< -o $@
9697
9798 docs/rfc5424_msg.png: docs/rfc5424_msg.dot
9899 dot $< -Tpng -o $@
100101 docs:
101102 @mkdir -p docs
102103
104 .PHONY: dots
105 dots: docs
106 $(MAKE) -s docs/rfc5424.dot docs/nontransparent.dot docs/rfc5424_pri.dot docs/rfc5424_version.dot docs/rfc5424_timestamp.dot docs/rfc5424_hostname.dot docs/rfc5424_appname.dot docs/rfc5424_procid.dot docs/rfc5424_msgid.dot docs/rfc5424_structureddata.dot docs/rfc5424_msg.dot
107
103108 .PHONY: graph
104 graph: docs docs/rfc5424.dot docs/rfc5424_pri.png docs/rfc5424_version.png docs/rfc5424_timestamp.png docs/rfc5424_hostname.png docs/rfc5424_appname.png docs/rfc5424_procid.png docs/rfc5424_msgid.png docs/rfc5424_structureddata.png docs/rfc5424_msg.png
109 graph: dots docs/rfc5424_pri.png docs/rfc5424_version.png docs/rfc5424_timestamp.png docs/rfc5424_hostname.png docs/rfc5424_appname.png docs/rfc5424_procid.png docs/rfc5424_msgid.png docs/rfc5424_structureddata.png docs/rfc5424_msg.png
105110
106111 .PHONY: clean
107 clean: rfc5424/machine.go
112 clean: rfc5424/machine.go nontransparent/parser.go
108113 @rm -f $?
109114 @rm -rf docs
55 "math/rand"
66 "strings"
77
8 "github.com/influxdata/go-syslog"
8 "github.com/influxdata/go-syslog/v2"
99 "time"
1010 )
1111
00 package nontransparent
11
22 import (
3 syslog "github.com/influxdata/go-syslog"
4 "github.com/influxdata/go-syslog/rfc5424"
3 "io"
4
5 syslog "github.com/influxdata/go-syslog/v2"
6 "github.com/influxdata/go-syslog/v2/rfc5424"
57 parser "github.com/leodido/ragel-machinery/parser"
6 "io"
78 )
89
910 const nontransparentStart int = 1
11
22 import (
33 "io"
4
45 parser "github.com/leodido/ragel-machinery/parser"
5 syslog "github.com/influxdata/go-syslog"
6 "github.com/influxdata/go-syslog/rfc5424"
6 syslog "github.com/influxdata/go-syslog/v2"
7 "github.com/influxdata/go-syslog/v2/rfc5424"
78 )
89
910 %%{
2021 if len(m.candidate) > 0 {
2122 m.process()
2223 }
23 m.candidate = make([]byte, 0)
24 m.candidate = make([]byte, 0)
2425 }
2526
2627 t = 10 when { m.trailertyp == LF } |
2728 00 when { m.trailertyp == NUL };
2829
29 main :=
30 main :=
3031 start: (
3132 '<' >on_init (any)* -> trailer
3233 ),
158159 Message: res,
159160 Error: err,
160161 })
161 }
162 }
55 "strings"
66 "testing"
77
8 "github.com/influxdata/go-syslog"
9 "github.com/influxdata/go-syslog/rfc5424"
8 "github.com/influxdata/go-syslog/v2"
9 "github.com/influxdata/go-syslog/v2/rfc5424"
1010 "github.com/leodido/ragel-machinery"
1111 "github.com/stretchr/testify/assert"
1212 )
00 package octetcounting
11
22 import (
3 "github.com/influxdata/go-syslog"
43 "io"
54 "strings"
65 "time"
76
87 "github.com/davecgh/go-spew/spew"
8 syslog "github.com/influxdata/go-syslog/v2"
99 )
1010
1111 func output(out interface{}) {
33 "fmt"
44 "io"
55
6 "github.com/influxdata/go-syslog"
7 "github.com/influxdata/go-syslog/rfc5424"
6 syslog "github.com/influxdata/go-syslog/v2"
7 "github.com/influxdata/go-syslog/v2/rfc5424"
88 )
99
10 // parser is capable to parse the input stream following octetcounting.
10 // parser is capable to parse the input stream containing syslog messages with octetcounting framing.
1111 //
1212 // Use NewParser function to instantiate one.
1313 type parser struct {
11
22 import (
33 "fmt"
4 "math/rand"
54 "strings"
65 "testing"
7 "time"
8
9 "github.com/influxdata/go-syslog"
10 "github.com/influxdata/go-syslog/rfc5424"
6
7 "github.com/influxdata/go-syslog/v2"
8 "github.com/influxdata/go-syslog/v2/rfc5424"
9 syslogtesting "github.com/influxdata/go-syslog/v2/testing"
1110 "github.com/stretchr/testify/assert"
1211 )
1312
2019
2120 var testCases []testCase
2221
23 const (
24 letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
25 letterIdxBits = 6 // 6 bits to represent a letter index
26 letterIdxMask = 1<<letterIdxBits - 1 // All 1-bits, as many as letterIdxBits
27 letterIdxMax = 63 / letterIdxBits // Number of letter indices fitting in 63 bits
28 )
29
30 func getRandomString(n int) string {
31 src := rand.NewSource(time.Now().UnixNano())
32 b := make([]byte, n)
33 // A src.Int63() generates 63 random bits, enough for letterIdxMax characters
34 for i, cache, remain := n-1, src.Int63(), letterIdxMax; i >= 0; {
35 if remain == 0 {
36 cache, remain = src.Int63(), letterIdxMax
37 }
38 if idx := int(cache & letterIdxMask); idx < len(letterBytes) {
39 b[i] = letterBytes[idx]
40 i--
41 }
42 cache >>= letterIdxBits
43 remain--
44 }
45
46 return string(b)
47 }
48
49 func getStringAddress(str string) *string {
50 return &str
51 }
52
53 func getUint8Address(x uint8) *uint8 {
54 return &x
55 }
56
5722 func getTimestampError(col int) error {
58 return fmt.Errorf("expecting a RFC3339MICRO timestamp or a nil value [col %d]", col)
23 return fmt.Errorf(rfc5424.ErrTimestamp+rfc5424.ColumnPositionTemplate, col)
5924 }
6025
6126 func getParsingError(col int) error {
62 return fmt.Errorf("parsing error [col %d]", col)
27 return fmt.Errorf(rfc5424.ErrParse+rfc5424.ColumnPositionTemplate, col)
6328 }
6429
6530 func getTestCases() []testCase {
66 maxPriority := uint8(191)
67 maxVersion := uint16(999)
68 maxTimestamp := "2018-12-31T23:59:59.999999-23:59"
69 maxHostname := "abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabc"
70 maxAppname := "abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdef"
71 maxProcID := "abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzab"
72 maxMsgID := "abcdefghilmnopqrstuvzabcdefghilm"
73 message7681 := getRandomString(7681)
74
7531 return []testCase{
7632 {
7733 "empty",
300256 },
301257 {
302258 "1st ok//max",
303 fmt.Sprintf("8192 <%d>%d %s %s %s %s %s - %s", maxPriority, maxVersion, maxTimestamp, maxHostname, maxAppname, maxProcID, maxMsgID, message7681),
304 // results w/o best effort
305 []syslog.Result{
306 {
307 Message: (&rfc5424.SyslogMessage{}).
308 SetPriority(maxPriority).
309 SetVersion(maxVersion).
310 SetTimestamp(maxTimestamp).
311 SetHostname(maxHostname).
312 SetAppname(maxAppname).
313 SetProcID(maxProcID).
314 SetMsgID(maxMsgID).
315 SetMessage(message7681),
316 },
317 },
318 // results with best effort
319 []syslog.Result{
320 {
321 Message: (&rfc5424.SyslogMessage{}).
322 SetPriority(maxPriority).
323 SetVersion(maxVersion).
324 SetTimestamp(maxTimestamp).
325 SetHostname(maxHostname).
326 SetAppname(maxAppname).
327 SetProcID(maxProcID).
328 SetMsgID(maxMsgID).
329 SetMessage(message7681),
259 fmt.Sprintf(
260 "8192 <%d>%d %s %s %s %s %s - %s",
261 syslogtesting.MaxPriority,
262 syslogtesting.MaxVersion,
263 syslogtesting.MaxRFC3339MicroTimestamp,
264 string(syslogtesting.MaxHostname),
265 string(syslogtesting.MaxAppname),
266 string(syslogtesting.MaxProcID),
267 string(syslogtesting.MaxMsgID),
268 string(syslogtesting.MaxMessage),
269 ),
270 // results w/o best effort
271 []syslog.Result{
272 {
273 Message: (&rfc5424.SyslogMessage{}).
274 SetPriority(syslogtesting.MaxPriority).
275 SetVersion(syslogtesting.MaxVersion).
276 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
277 SetHostname(string(syslogtesting.MaxHostname)).
278 SetAppname(string(syslogtesting.MaxAppname)).
279 SetProcID(string(syslogtesting.MaxProcID)).
280 SetMsgID(string(syslogtesting.MaxMsgID)).
281 SetMessage(string(syslogtesting.MaxMessage)),
282 },
283 },
284 // results with best effort
285 []syslog.Result{
286 {
287 Message: (&rfc5424.SyslogMessage{}).
288 SetPriority(syslogtesting.MaxPriority).
289 SetVersion(syslogtesting.MaxVersion).
290 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
291 SetHostname(string(syslogtesting.MaxHostname)).
292 SetAppname(string(syslogtesting.MaxAppname)).
293 SetProcID(string(syslogtesting.MaxProcID)).
294 SetMsgID(string(syslogtesting.MaxMsgID)).
295 SetMessage(string(syslogtesting.MaxMessage)),
330296 },
331297 },
332298 },
333299 {
334300 "1st ok/2nd ok//max/max",
335 fmt.Sprintf("8192 <%d>%d %s %s %s %s %s - %s8192 <%d>%d %s %s %s %s %s - %s", maxPriority, maxVersion, maxTimestamp, maxHostname, maxAppname, maxProcID, maxMsgID, message7681, maxPriority, maxVersion, maxTimestamp, maxHostname, maxAppname, maxProcID, maxMsgID, message7681),
336 // results w/o best effort
337 []syslog.Result{
338 {
339 Message: (&rfc5424.SyslogMessage{}).
340 SetPriority(maxPriority).
341 SetVersion(maxVersion).
342 SetTimestamp(maxTimestamp).
343 SetHostname(maxHostname).
344 SetAppname(maxAppname).
345 SetProcID(maxProcID).
346 SetMsgID(maxMsgID).
347 SetMessage(message7681),
348 },
349 {
350 Message: (&rfc5424.SyslogMessage{}).
351 SetPriority(maxPriority).
352 SetVersion(maxVersion).
353 SetTimestamp(maxTimestamp).
354 SetHostname(maxHostname).
355 SetAppname(maxAppname).
356 SetProcID(maxProcID).
357 SetMsgID(maxMsgID).
358 SetMessage(message7681),
359 },
360 },
361 // results with best effort
362 []syslog.Result{
363 {
364 Message: (&rfc5424.SyslogMessage{}).
365 SetPriority(maxPriority).
366 SetVersion(maxVersion).
367 SetTimestamp(maxTimestamp).
368 SetHostname(maxHostname).
369 SetAppname(maxAppname).
370 SetProcID(maxProcID).
371 SetMsgID(maxMsgID).
372 SetMessage(message7681),
373 },
374 {
375 Message: (&rfc5424.SyslogMessage{}).
376 SetPriority(maxPriority).
377 SetVersion(maxVersion).
378 SetTimestamp(maxTimestamp).
379 SetHostname(maxHostname).
380 SetAppname(maxAppname).
381 SetProcID(maxProcID).
382 SetMsgID(maxMsgID).
383 SetMessage(message7681),
301 fmt.Sprintf(
302 "8192 <%d>%d %s %s %s %s %s - %s8192 <%d>%d %s %s %s %s %s - %s",
303 syslogtesting.MaxPriority,
304 syslogtesting.MaxVersion,
305 syslogtesting.MaxRFC3339MicroTimestamp,
306 string(syslogtesting.MaxHostname),
307 string(syslogtesting.MaxAppname),
308 string(syslogtesting.MaxProcID),
309 string(syslogtesting.MaxMsgID),
310 string(syslogtesting.MaxMessage),
311 syslogtesting.MaxPriority,
312 syslogtesting.MaxVersion,
313 syslogtesting.MaxRFC3339MicroTimestamp,
314 string(syslogtesting.MaxHostname),
315 string(syslogtesting.MaxAppname),
316 string(syslogtesting.MaxProcID),
317 string(syslogtesting.MaxMsgID),
318 string(syslogtesting.MaxMessage),
319 ),
320 // results w/o best effort
321 []syslog.Result{
322 {
323 Message: (&rfc5424.SyslogMessage{}).
324 SetPriority(syslogtesting.MaxPriority).
325 SetVersion(syslogtesting.MaxVersion).
326 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
327 SetHostname(string(syslogtesting.MaxHostname)).
328 SetAppname(string(syslogtesting.MaxAppname)).
329 SetProcID(string(syslogtesting.MaxProcID)).
330 SetMsgID(string(syslogtesting.MaxMsgID)).
331 SetMessage(string(syslogtesting.MaxMessage)),
332 },
333 {
334 Message: (&rfc5424.SyslogMessage{}).
335 SetPriority(syslogtesting.MaxPriority).
336 SetVersion(syslogtesting.MaxVersion).
337 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
338 SetHostname(string(syslogtesting.MaxHostname)).
339 SetAppname(string(syslogtesting.MaxAppname)).
340 SetProcID(string(syslogtesting.MaxProcID)).
341 SetMsgID(string(syslogtesting.MaxMsgID)).
342 SetMessage(string(syslogtesting.MaxMessage)),
343 },
344 },
345 // results with best effort
346 []syslog.Result{
347 {
348 Message: (&rfc5424.SyslogMessage{}).
349 SetPriority(syslogtesting.MaxPriority).
350 SetVersion(syslogtesting.MaxVersion).
351 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
352 SetHostname(string(syslogtesting.MaxHostname)).
353 SetAppname(string(syslogtesting.MaxAppname)).
354 SetProcID(string(syslogtesting.MaxProcID)).
355 SetMsgID(string(syslogtesting.MaxMsgID)).
356 SetMessage(string(syslogtesting.MaxMessage)),
357 },
358 {
359 Message: (&rfc5424.SyslogMessage{}).
360 SetPriority(syslogtesting.MaxPriority).
361 SetVersion(syslogtesting.MaxVersion).
362 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
363 SetHostname(string(syslogtesting.MaxHostname)).
364 SetAppname(string(syslogtesting.MaxAppname)).
365 SetProcID(string(syslogtesting.MaxProcID)).
366 SetMsgID(string(syslogtesting.MaxMsgID)).
367 SetMessage(string(syslogtesting.MaxMessage)),
384368 },
385369 },
386370 },
387371 {
388372 "1st ok/2nd ok/3rd ok//max/no/max",
389 fmt.Sprintf("8192 <%d>%d %s %s %s %s %s - %s16 <1>1 - - - - - -8192 <%d>%d %s %s %s %s %s - %s", maxPriority, maxVersion, maxTimestamp, maxHostname, maxAppname, maxProcID, maxMsgID, message7681, maxPriority, maxVersion, maxTimestamp, maxHostname, maxAppname, maxProcID, maxMsgID, message7681),
390 // results w/o best effort
391 []syslog.Result{
392 {
393 Message: (&rfc5424.SyslogMessage{}).
394 SetPriority(maxPriority).
395 SetVersion(maxVersion).
396 SetTimestamp(maxTimestamp).
397 SetHostname(maxHostname).
398 SetAppname(maxAppname).
399 SetProcID(maxProcID).
400 SetMsgID(maxMsgID).
401 SetMessage(message7681),
402 },
403 {
404 Message: (&rfc5424.SyslogMessage{}).SetPriority(1).SetVersion(1),
405 },
406 {
407 Message: (&rfc5424.SyslogMessage{}).
408 SetPriority(maxPriority).
409 SetVersion(maxVersion).
410 SetTimestamp(maxTimestamp).
411 SetHostname(maxHostname).
412 SetAppname(maxAppname).
413 SetProcID(maxProcID).
414 SetMsgID(maxMsgID).
415 SetMessage(message7681),
416 },
417 },
418 // results with best effort
419 []syslog.Result{
420 {
421 Message: (&rfc5424.SyslogMessage{}).
422 SetPriority(maxPriority).
423 SetVersion(maxVersion).
424 SetTimestamp(maxTimestamp).
425 SetHostname(maxHostname).
426 SetAppname(maxAppname).
427 SetProcID(maxProcID).
428 SetMsgID(maxMsgID).
429 SetMessage(message7681),
430 },
431 {
432 Message: (&rfc5424.SyslogMessage{}).SetPriority(1).SetVersion(1),
433 },
434 {
435 Message: (&rfc5424.SyslogMessage{}).
436 SetPriority(maxPriority).
437 SetVersion(maxVersion).
438 SetTimestamp(maxTimestamp).
439 SetHostname(maxHostname).
440 SetAppname(maxAppname).
441 SetProcID(maxProcID).
442 SetMsgID(maxMsgID).
443 SetMessage(message7681),
373 fmt.Sprintf(
374 "8192 <%d>%d %s %s %s %s %s - %s16 <1>1 - - - - - -8192 <%d>%d %s %s %s %s %s - %s",
375 syslogtesting.MaxPriority,
376 syslogtesting.MaxVersion,
377 syslogtesting.MaxRFC3339MicroTimestamp,
378 string(syslogtesting.MaxHostname),
379 string(syslogtesting.MaxAppname),
380 string(syslogtesting.MaxProcID),
381 string(syslogtesting.MaxMsgID),
382 string(syslogtesting.MaxMessage),
383 syslogtesting.MaxPriority,
384 syslogtesting.MaxVersion,
385 syslogtesting.MaxRFC3339MicroTimestamp,
386 string(syslogtesting.MaxHostname),
387 string(syslogtesting.MaxAppname),
388 string(syslogtesting.MaxProcID),
389 string(syslogtesting.MaxMsgID),
390 string(syslogtesting.MaxMessage),
391 ),
392 // results w/o best effort
393 []syslog.Result{
394 {
395 Message: (&rfc5424.SyslogMessage{}).
396 SetPriority(syslogtesting.MaxPriority).
397 SetVersion(syslogtesting.MaxVersion).
398 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
399 SetHostname(string(syslogtesting.MaxHostname)).
400 SetAppname(string(syslogtesting.MaxAppname)).
401 SetProcID(string(syslogtesting.MaxProcID)).
402 SetMsgID(string(syslogtesting.MaxMsgID)).
403 SetMessage(string(syslogtesting.MaxMessage)),
404 },
405 {
406 Message: (&rfc5424.SyslogMessage{}).SetPriority(1).SetVersion(1),
407 },
408 {
409 Message: (&rfc5424.SyslogMessage{}).
410 SetPriority(syslogtesting.MaxPriority).
411 SetVersion(syslogtesting.MaxVersion).
412 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
413 SetHostname(string(syslogtesting.MaxHostname)).
414 SetAppname(string(syslogtesting.MaxAppname)).
415 SetProcID(string(syslogtesting.MaxProcID)).
416 SetMsgID(string(syslogtesting.MaxMsgID)).
417 SetMessage(string(syslogtesting.MaxMessage)),
418 },
419 },
420 // results with best effort
421 []syslog.Result{
422 {
423 Message: (&rfc5424.SyslogMessage{}).
424 SetPriority(syslogtesting.MaxPriority).
425 SetVersion(syslogtesting.MaxVersion).
426 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
427 SetHostname(string(syslogtesting.MaxHostname)).
428 SetAppname(string(syslogtesting.MaxAppname)).
429 SetProcID(string(syslogtesting.MaxProcID)).
430 SetMsgID(string(syslogtesting.MaxMsgID)).
431 SetMessage(string(syslogtesting.MaxMessage)),
432 },
433 {
434 Message: (&rfc5424.SyslogMessage{}).SetPriority(1).SetVersion(1),
435 },
436 {
437 Message: (&rfc5424.SyslogMessage{}).
438 SetPriority(syslogtesting.MaxPriority).
439 SetVersion(syslogtesting.MaxVersion).
440 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
441 SetHostname(string(syslogtesting.MaxHostname)).
442 SetAppname(string(syslogtesting.MaxAppname)).
443 SetProcID(string(syslogtesting.MaxProcID)).
444 SetMsgID(string(syslogtesting.MaxMsgID)).
445 SetMessage(string(syslogtesting.MaxMessage)),
444446 },
445447 },
446448 },
447449 {
448450 "1st ml//maxlen gt 8192", // maxlength greather than the buffer size
449 fmt.Sprintf("8193 <%d>%d %s %s %s %s %s - %s", maxPriority, maxVersion, maxTimestamp, maxHostname, maxAppname, maxProcID, maxMsgID, message7681),
450 // results w/o best effort
451 []syslog.Result{
452 {
453 Error: fmt.Errorf("found %s after \"%s\", expecting a %s containing %d octets", EOF, fmt.Sprintf("<%d>%d %s %s %s %s %s - %s", maxPriority, maxVersion, maxTimestamp, maxHostname, maxAppname, maxProcID, maxMsgID, message7681), SYSLOGMSG, 8193),
454 },
455 },
456 // results with best effort
457 []syslog.Result{
458 {
459 Message: (&rfc5424.SyslogMessage{}).
460 SetPriority(maxPriority).
461 SetVersion(maxVersion).
462 SetTimestamp(maxTimestamp).
463 SetHostname(maxHostname).
464 SetAppname(maxAppname).
465 SetProcID(maxProcID).
466 SetMsgID(maxMsgID).
467 SetMessage(message7681),
468 Error: fmt.Errorf("found %s after \"%s\", expecting a %s containing %d octets", EOF, fmt.Sprintf("<%d>%d %s %s %s %s %s - %s", maxPriority, maxVersion, maxTimestamp, maxHostname, maxAppname, maxProcID, maxMsgID, message7681), SYSLOGMSG, 8193),
451 fmt.Sprintf(
452 "8193 <%d>%d %s %s %s %s %s - %s",
453 syslogtesting.MaxPriority,
454 syslogtesting.MaxVersion,
455 syslogtesting.MaxRFC3339MicroTimestamp,
456 string(syslogtesting.MaxHostname),
457 string(syslogtesting.MaxAppname),
458 string(syslogtesting.MaxProcID),
459 string(syslogtesting.MaxMsgID),
460 string(syslogtesting.MaxMessage),
461 ),
462 // results w/o best effort
463 []syslog.Result{
464 {
465 Error: fmt.Errorf(
466 "found %s after \"%s\", expecting a %s containing %d octets",
467 EOF,
468 fmt.Sprintf(
469 "<%d>%d %s %s %s %s %s - %s", syslogtesting.MaxPriority,
470 syslogtesting.MaxVersion,
471 syslogtesting.MaxRFC3339MicroTimestamp,
472 string(syslogtesting.MaxHostname),
473 string(syslogtesting.MaxAppname),
474 string(syslogtesting.MaxProcID),
475 string(syslogtesting.MaxMsgID),
476 string(syslogtesting.MaxMessage),
477 ),
478 SYSLOGMSG,
479 8193,
480 ),
481 },
482 },
483 // results with best effort
484 []syslog.Result{
485 {
486 Message: (&rfc5424.SyslogMessage{}).
487 SetPriority(syslogtesting.MaxPriority).
488 SetVersion(syslogtesting.MaxVersion).
489 SetTimestamp(syslogtesting.MaxRFC3339MicroTimestamp).
490 SetHostname(string(syslogtesting.MaxHostname)).
491 SetAppname(string(syslogtesting.MaxAppname)).
492 SetProcID(string(syslogtesting.MaxProcID)).
493 SetMsgID(string(syslogtesting.MaxMsgID)).
494 SetMessage(string(syslogtesting.MaxMessage)),
495 Error: fmt.Errorf(
496 "found %s after \"%s\", expecting a %s containing %d octets",
497 EOF,
498 fmt.Sprintf(
499 "<%d>%d %s %s %s %s %s - %s", syslogtesting.MaxPriority,
500 syslogtesting.MaxVersion,
501 syslogtesting.MaxRFC3339MicroTimestamp,
502 string(syslogtesting.MaxHostname),
503 string(syslogtesting.MaxAppname),
504 string(syslogtesting.MaxProcID),
505 string(syslogtesting.MaxMsgID),
506 string(syslogtesting.MaxMessage),
507 ),
508 SYSLOGMSG,
509 8193,
510 ),
469511 },
470512 },
471513 },
33 "fmt"
44 "sort"
55 "time"
6
7 "github.com/influxdata/go-syslog/v2/common"
68 )
79
8 const builderStart int = 59
9
10 const builderEnTimestamp int = 8
11 const builderEnHostname int = 45
12 const builderEnAppname int = 46
13 const builderEnProcid int = 47
14 const builderEnMsgid int = 48
15 const builderEnSdid int = 49
16 const builderEnSdpn int = 50
17 const builderEnSdpv int = 589
18 const builderEnMsg int = 59
10 const builder_start int = 59
11
12 const builder_en_timestamp int = 8
13 const builder_en_hostname int = 45
14 const builder_en_appname int = 46
15 const builder_en_procid int = 47
16 const builder_en_msgid int = 48
17 const builder_en_sdid int = 49
18 const builder_en_sdpn int = 50
19 const builder_en_sdpv int = 589
20 const builder_en_msg int = 59
1921
2022 type entrypoint int
2123
3436 func (e entrypoint) translate() int {
3537 switch e {
3638 case timestamp:
37 return builderEnTimestamp
39 return builder_en_timestamp
3840 case hostname:
39 return builderEnHostname
41 return builder_en_hostname
4042 case appname:
41 return builderEnAppname
43 return builder_en_appname
4244 case procid:
43 return builderEnProcid
45 return builder_en_procid
4446 case msgid:
45 return builderEnMsgid
47 return builder_en_msgid
4648 case sdid:
47 return builderEnSdid
49 return builder_en_sdid
4850 case sdpn:
49 return builderEnSdpn
51 return builder_en_sdpn
5052 case sdpv:
51 return builderEnSdpv
53 return builder_en_sdpv
5254 case msg:
53 return builderEnMsg
55 return builder_en_msg
5456 default:
55 return builderStart
57 return builder_start
5658 }
5759 }
5860
7072
7173 {
7274 if p == pe {
73 goto _testEof
75 goto _test_eof
7476 }
7577 switch cs {
7678 case 59:
77 goto stCase59
79 goto st_case_59
7880 case 60:
79 goto stCase60
81 goto st_case_60
8082 case 0:
81 goto stCase0
83 goto st_case_0
8284 case 1:
83 goto stCase1
85 goto st_case_1
8486 case 2:
85 goto stCase2
87 goto st_case_2
8688 case 3:
87 goto stCase3
89 goto st_case_3
8890 case 4:
89 goto stCase4
91 goto st_case_4
9092 case 5:
91 goto stCase5
93 goto st_case_5
9294 case 6:
93 goto stCase6
95 goto st_case_6
9496 case 7:
95 goto stCase7
97 goto st_case_7
9698 case 8:
97 goto stCase8
99 goto st_case_8
98100 case 9:
99 goto stCase9
101 goto st_case_9
100102 case 10:
101 goto stCase10
103 goto st_case_10
102104 case 11:
103 goto stCase11
105 goto st_case_11
104106 case 12:
105 goto stCase12
107 goto st_case_12
106108 case 13:
107 goto stCase13
109 goto st_case_13
108110 case 14:
109 goto stCase14
111 goto st_case_14
110112 case 15:
111 goto stCase15
113 goto st_case_15
112114 case 16:
113 goto stCase16
115 goto st_case_16
114116 case 17:
115 goto stCase17
117 goto st_case_17
116118 case 18:
117 goto stCase18
119 goto st_case_18
118120 case 19:
119 goto stCase19
121 goto st_case_19
120122 case 20:
121 goto stCase20
123 goto st_case_20
122124 case 21:
123 goto stCase21
125 goto st_case_21
124126 case 22:
125 goto stCase22
127 goto st_case_22
126128 case 23:
127 goto stCase23
129 goto st_case_23
128130 case 24:
129 goto stCase24
131 goto st_case_24
130132 case 25:
131 goto stCase25
133 goto st_case_25
132134 case 26:
133 goto stCase26
135 goto st_case_26
134136 case 27:
135 goto stCase27
137 goto st_case_27
136138 case 28:
137 goto stCase28
139 goto st_case_28
138140 case 29:
139 goto stCase29
141 goto st_case_29
140142 case 30:
141 goto stCase30
143 goto st_case_30
142144 case 31:
143 goto stCase31
145 goto st_case_31
144146 case 32:
145 goto stCase32
147 goto st_case_32
146148 case 61:
147 goto stCase61
149 goto st_case_61
148150 case 33:
149 goto stCase33
151 goto st_case_33
150152 case 34:
151 goto stCase34
153 goto st_case_34
152154 case 35:
153 goto stCase35
155 goto st_case_35
154156 case 36:
155 goto stCase36
157 goto st_case_36
156158 case 37:
157 goto stCase37
159 goto st_case_37
158160 case 38:
159 goto stCase38
161 goto st_case_38
160162 case 39:
161 goto stCase39
163 goto st_case_39
162164 case 40:
163 goto stCase40
165 goto st_case_40
164166 case 41:
165 goto stCase41
167 goto st_case_41
166168 case 42:
167 goto stCase42
169 goto st_case_42
168170 case 43:
169 goto stCase43
171 goto st_case_43
170172 case 44:
171 goto stCase44
173 goto st_case_44
172174 case 45:
173 goto stCase45
175 goto st_case_45
174176 case 62:
175 goto stCase62
177 goto st_case_62
176178 case 63:
177 goto stCase63
179 goto st_case_63
178180 case 64:
179 goto stCase64
181 goto st_case_64
180182 case 65:
181 goto stCase65
183 goto st_case_65
182184 case 66:
183 goto stCase66
185 goto st_case_66
184186 case 67:
185 goto stCase67
187 goto st_case_67
186188 case 68:
187 goto stCase68
189 goto st_case_68
188190 case 69:
189 goto stCase69
191 goto st_case_69
190192 case 70:
191 goto stCase70
193 goto st_case_70
192194 case 71:
193 goto stCase71
195 goto st_case_71
194196 case 72:
195 goto stCase72
197 goto st_case_72
196198 case 73:
197 goto stCase73
199 goto st_case_73
198200 case 74:
199 goto stCase74
201 goto st_case_74
200202 case 75:
201 goto stCase75
203 goto st_case_75
202204 case 76:
203 goto stCase76
205 goto st_case_76
204206 case 77:
205 goto stCase77
207 goto st_case_77
206208 case 78:
207 goto stCase78
209 goto st_case_78
208210 case 79:
209 goto stCase79
211 goto st_case_79
210212 case 80:
211 goto stCase80
213 goto st_case_80
212214 case 81:
213 goto stCase81
215 goto st_case_81
214216 case 82:
215 goto stCase82
217 goto st_case_82
216218 case 83:
217 goto stCase83
219 goto st_case_83
218220 case 84:
219 goto stCase84
221 goto st_case_84
220222 case 85:
221 goto stCase85
223 goto st_case_85
222224 case 86:
223 goto stCase86
225 goto st_case_86
224226 case 87:
225 goto stCase87
227 goto st_case_87
226228 case 88:
227 goto stCase88
229 goto st_case_88
228230 case 89:
229 goto stCase89
231 goto st_case_89
230232 case 90:
231 goto stCase90
233 goto st_case_90
232234 case 91:
233 goto stCase91
235 goto st_case_91
234236 case 92:
235 goto stCase92
237 goto st_case_92
236238 case 93:
237 goto stCase93
239 goto st_case_93
238240 case 94:
239 goto stCase94
241 goto st_case_94
240242 case 95:
241 goto stCase95
243 goto st_case_95
242244 case 96:
243 goto stCase96
245 goto st_case_96
244246 case 97:
245 goto stCase97
247 goto st_case_97
246248 case 98:
247 goto stCase98
249 goto st_case_98
248250 case 99:
249 goto stCase99
251 goto st_case_99
250252 case 100:
251 goto stCase100
253 goto st_case_100
252254 case 101:
253 goto stCase101
255 goto st_case_101
254256 case 102:
255 goto stCase102
257 goto st_case_102
256258 case 103:
257 goto stCase103
259 goto st_case_103
258260 case 104:
259 goto stCase104
261 goto st_case_104
260262 case 105:
261 goto stCase105
263 goto st_case_105
262264 case 106:
263 goto stCase106
265 goto st_case_106
264266 case 107:
265 goto stCase107
267 goto st_case_107
266268 case 108:
267 goto stCase108
269 goto st_case_108
268270 case 109:
269 goto stCase109
271 goto st_case_109
270272 case 110:
271 goto stCase110
273 goto st_case_110
272274 case 111:
273 goto stCase111
275 goto st_case_111
274276 case 112:
275 goto stCase112
277 goto st_case_112
276278 case 113:
277 goto stCase113
279 goto st_case_113
278280 case 114:
279 goto stCase114
281 goto st_case_114
280282 case 115:
281 goto stCase115
283 goto st_case_115
282284 case 116:
283 goto stCase116
285 goto st_case_116
284286 case 117:
285 goto stCase117
287 goto st_case_117
286288 case 118:
287 goto stCase118
289 goto st_case_118
288290 case 119:
289 goto stCase119
291 goto st_case_119
290292 case 120:
291 goto stCase120
293 goto st_case_120
292294 case 121:
293 goto stCase121
295 goto st_case_121
294296 case 122:
295 goto stCase122
297 goto st_case_122
296298 case 123:
297 goto stCase123
299 goto st_case_123
298300 case 124:
299 goto stCase124
301 goto st_case_124
300302 case 125:
301 goto stCase125
303 goto st_case_125
302304 case 126:
303 goto stCase126
305 goto st_case_126
304306 case 127:
305 goto stCase127
307 goto st_case_127
306308 case 128:
307 goto stCase128
309 goto st_case_128
308310 case 129:
309 goto stCase129
311 goto st_case_129
310312 case 130:
311 goto stCase130
313 goto st_case_130
312314 case 131:
313 goto stCase131
315 goto st_case_131
314316 case 132:
315 goto stCase132
317 goto st_case_132
316318 case 133:
317 goto stCase133
319 goto st_case_133
318320 case 134:
319 goto stCase134
321 goto st_case_134
320322 case 135:
321 goto stCase135
323 goto st_case_135
322324 case 136:
323 goto stCase136
325 goto st_case_136
324326 case 137:
325 goto stCase137
327 goto st_case_137
326328 case 138:
327 goto stCase138
329 goto st_case_138
328330 case 139:
329 goto stCase139
331 goto st_case_139
330332 case 140:
331 goto stCase140
333 goto st_case_140
332334 case 141:
333 goto stCase141
335 goto st_case_141
334336 case 142:
335 goto stCase142
337 goto st_case_142
336338 case 143:
337 goto stCase143
339 goto st_case_143
338340 case 144:
339 goto stCase144
341 goto st_case_144
340342 case 145:
341 goto stCase145
343 goto st_case_145
342344 case 146:
343 goto stCase146
345 goto st_case_146
344346 case 147:
345 goto stCase147
347 goto st_case_147
346348 case 148:
347 goto stCase148
349 goto st_case_148
348350 case 149:
349 goto stCase149
351 goto st_case_149
350352 case 150:
351 goto stCase150
353 goto st_case_150
352354 case 151:
353 goto stCase151
355 goto st_case_151
354356 case 152:
355 goto stCase152
357 goto st_case_152
356358 case 153:
357 goto stCase153
359 goto st_case_153
358360 case 154:
359 goto stCase154
361 goto st_case_154
360362 case 155:
361 goto stCase155
363 goto st_case_155
362364 case 156:
363 goto stCase156
365 goto st_case_156
364366 case 157:
365 goto stCase157
367 goto st_case_157
366368 case 158:
367 goto stCase158
369 goto st_case_158
368370 case 159:
369 goto stCase159
371 goto st_case_159
370372 case 160:
371 goto stCase160
373 goto st_case_160
372374 case 161:
373 goto stCase161
375 goto st_case_161
374376 case 162:
375 goto stCase162
377 goto st_case_162
376378 case 163:
377 goto stCase163
379 goto st_case_163
378380 case 164:
379 goto stCase164
381 goto st_case_164
380382 case 165:
381 goto stCase165
383 goto st_case_165
382384 case 166:
383 goto stCase166
385 goto st_case_166
384386 case 167:
385 goto stCase167
387 goto st_case_167
386388 case 168:
387 goto stCase168
389 goto st_case_168
388390 case 169:
389 goto stCase169
391 goto st_case_169
390392 case 170:
391 goto stCase170
393 goto st_case_170
392394 case 171:
393 goto stCase171
395 goto st_case_171
394396 case 172:
395 goto stCase172
397 goto st_case_172
396398 case 173:
397 goto stCase173
399 goto st_case_173
398400 case 174:
399 goto stCase174
401 goto st_case_174
400402 case 175:
401 goto stCase175
403 goto st_case_175
402404 case 176:
403 goto stCase176
405 goto st_case_176
404406 case 177:
405 goto stCase177
407 goto st_case_177
406408 case 178:
407 goto stCase178
409 goto st_case_178
408410 case 179:
409 goto stCase179
411 goto st_case_179
410412 case 180:
411 goto stCase180
413 goto st_case_180
412414 case 181:
413 goto stCase181
415 goto st_case_181
414416 case 182:
415 goto stCase182
417 goto st_case_182
416418 case 183:
417 goto stCase183
419 goto st_case_183
418420 case 184:
419 goto stCase184
421 goto st_case_184
420422 case 185:
421 goto stCase185
423 goto st_case_185
422424 case 186:
423 goto stCase186
425 goto st_case_186
424426 case 187:
425 goto stCase187
427 goto st_case_187
426428 case 188:
427 goto stCase188
429 goto st_case_188
428430 case 189:
429 goto stCase189
431 goto st_case_189
430432 case 190:
431 goto stCase190
433 goto st_case_190
432434 case 191:
433 goto stCase191
435 goto st_case_191
434436 case 192:
435 goto stCase192
437 goto st_case_192
436438 case 193:
437 goto stCase193
439 goto st_case_193
438440 case 194:
439 goto stCase194
441 goto st_case_194
440442 case 195:
441 goto stCase195
443 goto st_case_195
442444 case 196:
443 goto stCase196
445 goto st_case_196
444446 case 197:
445 goto stCase197
447 goto st_case_197
446448 case 198:
447 goto stCase198
449 goto st_case_198
448450 case 199:
449 goto stCase199
451 goto st_case_199
450452 case 200:
451 goto stCase200
453 goto st_case_200
452454 case 201:
453 goto stCase201
455 goto st_case_201
454456 case 202:
455 goto stCase202
457 goto st_case_202
456458 case 203:
457 goto stCase203
459 goto st_case_203
458460 case 204:
459 goto stCase204
461 goto st_case_204
460462 case 205:
461 goto stCase205
463 goto st_case_205
462464 case 206:
463 goto stCase206
465 goto st_case_206
464466 case 207:
465 goto stCase207
467 goto st_case_207
466468 case 208:
467 goto stCase208
469 goto st_case_208
468470 case 209:
469 goto stCase209
471 goto st_case_209
470472 case 210:
471 goto stCase210
473 goto st_case_210
472474 case 211:
473 goto stCase211
475 goto st_case_211
474476 case 212:
475 goto stCase212
477 goto st_case_212
476478 case 213:
477 goto stCase213
479 goto st_case_213
478480 case 214:
479 goto stCase214
481 goto st_case_214
480482 case 215:
481 goto stCase215
483 goto st_case_215
482484 case 216:
483 goto stCase216
485 goto st_case_216
484486 case 217:
485 goto stCase217
487 goto st_case_217
486488 case 218:
487 goto stCase218
489 goto st_case_218
488490 case 219:
489 goto stCase219
491 goto st_case_219
490492 case 220:
491 goto stCase220
493 goto st_case_220
492494 case 221:
493 goto stCase221
495 goto st_case_221
494496 case 222:
495 goto stCase222
497 goto st_case_222
496498 case 223:
497 goto stCase223
499 goto st_case_223
498500 case 224:
499 goto stCase224
501 goto st_case_224
500502 case 225:
501 goto stCase225
503 goto st_case_225
502504 case 226:
503 goto stCase226
505 goto st_case_226
504506 case 227:
505 goto stCase227
507 goto st_case_227
506508 case 228:
507 goto stCase228
509 goto st_case_228
508510 case 229:
509 goto stCase229
511 goto st_case_229
510512 case 230:
511 goto stCase230
513 goto st_case_230
512514 case 231:
513 goto stCase231
515 goto st_case_231
514516 case 232:
515 goto stCase232
517 goto st_case_232
516518 case 233:
517 goto stCase233
519 goto st_case_233
518520 case 234:
519 goto stCase234
521 goto st_case_234
520522 case 235:
521 goto stCase235
523 goto st_case_235
522524 case 236:
523 goto stCase236
525 goto st_case_236
524526 case 237:
525 goto stCase237
527 goto st_case_237
526528 case 238:
527 goto stCase238
529 goto st_case_238
528530 case 239:
529 goto stCase239
531 goto st_case_239
530532 case 240:
531 goto stCase240
533 goto st_case_240
532534 case 241:
533 goto stCase241
535 goto st_case_241
534536 case 242:
535 goto stCase242
537 goto st_case_242
536538 case 243:
537 goto stCase243
539 goto st_case_243
538540 case 244:
539 goto stCase244
541 goto st_case_244
540542 case 245:
541 goto stCase245
543 goto st_case_245
542544 case 246:
543 goto stCase246
545 goto st_case_246
544546 case 247:
545 goto stCase247
547 goto st_case_247
546548 case 248:
547 goto stCase248
549 goto st_case_248
548550 case 249:
549 goto stCase249
551 goto st_case_249
550552 case 250:
551 goto stCase250
553 goto st_case_250
552554 case 251:
553 goto stCase251
555 goto st_case_251
554556 case 252:
555 goto stCase252
557 goto st_case_252
556558 case 253:
557 goto stCase253
559 goto st_case_253
558560 case 254:
559 goto stCase254
561 goto st_case_254
560562 case 255:
561 goto stCase255
563 goto st_case_255
562564 case 256:
563 goto stCase256
565 goto st_case_256
564566 case 257:
565 goto stCase257
567 goto st_case_257
566568 case 258:
567 goto stCase258
569 goto st_case_258
568570 case 259:
569 goto stCase259
571 goto st_case_259
570572 case 260:
571 goto stCase260
573 goto st_case_260
572574 case 261:
573 goto stCase261
575 goto st_case_261
574576 case 262:
575 goto stCase262
577 goto st_case_262
576578 case 263:
577 goto stCase263
579 goto st_case_263
578580 case 264:
579 goto stCase264
581 goto st_case_264
580582 case 265:
581 goto stCase265
583 goto st_case_265
582584 case 266:
583 goto stCase266
585 goto st_case_266
584586 case 267:
585 goto stCase267
587 goto st_case_267
586588 case 268:
587 goto stCase268
589 goto st_case_268
588590 case 269:
589 goto stCase269
591 goto st_case_269
590592 case 270:
591 goto stCase270
593 goto st_case_270
592594 case 271:
593 goto stCase271
595 goto st_case_271
594596 case 272:
595 goto stCase272
597 goto st_case_272
596598 case 273:
597 goto stCase273
599 goto st_case_273
598600 case 274:
599 goto stCase274
601 goto st_case_274
600602 case 275:
601 goto stCase275
603 goto st_case_275
602604 case 276:
603 goto stCase276
605 goto st_case_276
604606 case 277:
605 goto stCase277
607 goto st_case_277
606608 case 278:
607 goto stCase278
609 goto st_case_278
608610 case 279:
609 goto stCase279
611 goto st_case_279
610612 case 280:
611 goto stCase280
613 goto st_case_280
612614 case 281:
613 goto stCase281
615 goto st_case_281
614616 case 282:
615 goto stCase282
617 goto st_case_282
616618 case 283:
617 goto stCase283
619 goto st_case_283
618620 case 284:
619 goto stCase284
621 goto st_case_284
620622 case 285:
621 goto stCase285
623 goto st_case_285
622624 case 286:
623 goto stCase286
625 goto st_case_286
624626 case 287:
625 goto stCase287
627 goto st_case_287
626628 case 288:
627 goto stCase288
629 goto st_case_288
628630 case 289:
629 goto stCase289
631 goto st_case_289
630632 case 290:
631 goto stCase290
633 goto st_case_290
632634 case 291:
633 goto stCase291
635 goto st_case_291
634636 case 292:
635 goto stCase292
637 goto st_case_292
636638 case 293:
637 goto stCase293
639 goto st_case_293
638640 case 294:
639 goto stCase294
641 goto st_case_294
640642 case 295:
641 goto stCase295
643 goto st_case_295
642644 case 296:
643 goto stCase296
645 goto st_case_296
644646 case 297:
645 goto stCase297
647 goto st_case_297
646648 case 298:
647 goto stCase298
649 goto st_case_298
648650 case 299:
649 goto stCase299
651 goto st_case_299
650652 case 300:
651 goto stCase300
653 goto st_case_300
652654 case 301:
653 goto stCase301
655 goto st_case_301
654656 case 302:
655 goto stCase302
657 goto st_case_302
656658 case 303:
657 goto stCase303
659 goto st_case_303
658660 case 304:
659 goto stCase304
661 goto st_case_304
660662 case 305:
661 goto stCase305
663 goto st_case_305
662664 case 306:
663 goto stCase306
665 goto st_case_306
664666 case 307:
665 goto stCase307
667 goto st_case_307
666668 case 308:
667 goto stCase308
669 goto st_case_308
668670 case 309:
669 goto stCase309
671 goto st_case_309
670672 case 310:
671 goto stCase310
673 goto st_case_310
672674 case 311:
673 goto stCase311
675 goto st_case_311
674676 case 312:
675 goto stCase312
677 goto st_case_312
676678 case 313:
677 goto stCase313
679 goto st_case_313
678680 case 314:
679 goto stCase314
681 goto st_case_314
680682 case 315:
681 goto stCase315
683 goto st_case_315
682684 case 316:
683 goto stCase316
685 goto st_case_316
684686 case 46:
685 goto stCase46
687 goto st_case_46
686688 case 317:
687 goto stCase317
689 goto st_case_317
688690 case 318:
689 goto stCase318
691 goto st_case_318
690692 case 319:
691 goto stCase319
693 goto st_case_319
692694 case 320:
693 goto stCase320
695 goto st_case_320
694696 case 321:
695 goto stCase321
697 goto st_case_321
696698 case 322:
697 goto stCase322
699 goto st_case_322
698700 case 323:
699 goto stCase323
701 goto st_case_323
700702 case 324:
701 goto stCase324
703 goto st_case_324
702704 case 325:
703 goto stCase325
705 goto st_case_325
704706 case 326:
705 goto stCase326
707 goto st_case_326
706708 case 327:
707 goto stCase327
709 goto st_case_327
708710 case 328:
709 goto stCase328
711 goto st_case_328
710712 case 329:
711 goto stCase329
713 goto st_case_329
712714 case 330:
713 goto stCase330
715 goto st_case_330
714716 case 331:
715 goto stCase331
717 goto st_case_331
716718 case 332:
717 goto stCase332
719 goto st_case_332
718720 case 333:
719 goto stCase333
721 goto st_case_333
720722 case 334:
721 goto stCase334
723 goto st_case_334
722724 case 335:
723 goto stCase335
725 goto st_case_335
724726 case 336:
725 goto stCase336
727 goto st_case_336
726728 case 337:
727 goto stCase337
729 goto st_case_337
728730 case 338:
729 goto stCase338
731 goto st_case_338
730732 case 339:
731 goto stCase339
733 goto st_case_339
732734 case 340:
733 goto stCase340
735 goto st_case_340
734736 case 341:
735 goto stCase341
737 goto st_case_341
736738 case 342:
737 goto stCase342
739 goto st_case_342
738740 case 343:
739 goto stCase343
741 goto st_case_343
740742 case 344:
741 goto stCase344
743 goto st_case_344
742744 case 345:
743 goto stCase345
745 goto st_case_345
744746 case 346:
745 goto stCase346
747 goto st_case_346
746748 case 347:
747 goto stCase347
749 goto st_case_347
748750 case 348:
749 goto stCase348
751 goto st_case_348
750752 case 349:
751 goto stCase349
753 goto st_case_349
752754 case 350:
753 goto stCase350
755 goto st_case_350
754756 case 351:
755 goto stCase351
757 goto st_case_351
756758 case 352:
757 goto stCase352
759 goto st_case_352
758760 case 353:
759 goto stCase353
761 goto st_case_353
760762 case 354:
761 goto stCase354
763 goto st_case_354
762764 case 355:
763 goto stCase355
765 goto st_case_355
764766 case 356:
765 goto stCase356
767 goto st_case_356
766768 case 357:
767 goto stCase357
769 goto st_case_357
768770 case 358:
769 goto stCase358
771 goto st_case_358
770772 case 359:
771 goto stCase359
773 goto st_case_359
772774 case 360:
773 goto stCase360
775 goto st_case_360
774776 case 361:
775 goto stCase361
777 goto st_case_361
776778 case 362:
777 goto stCase362
779 goto st_case_362
778780 case 363:
779 goto stCase363
781 goto st_case_363
780782 case 364:
781 goto stCase364
783 goto st_case_364
782784 case 47:
783 goto stCase47
785 goto st_case_47
784786 case 365:
785 goto stCase365
787 goto st_case_365
786788 case 366:
787 goto stCase366
789 goto st_case_366
788790 case 367:
789 goto stCase367
791 goto st_case_367
790792 case 368:
791 goto stCase368
793 goto st_case_368
792794 case 369:
793 goto stCase369
795 goto st_case_369
794796 case 370:
795 goto stCase370
797 goto st_case_370
796798 case 371:
797 goto stCase371
799 goto st_case_371
798800 case 372:
799 goto stCase372
801 goto st_case_372
800802 case 373:
801 goto stCase373
803 goto st_case_373
802804 case 374:
803 goto stCase374
805 goto st_case_374
804806 case 375:
805 goto stCase375
807 goto st_case_375
806808 case 376:
807 goto stCase376
809 goto st_case_376
808810 case 377:
809 goto stCase377
811 goto st_case_377
810812 case 378:
811 goto stCase378
813 goto st_case_378
812814 case 379:
813 goto stCase379
815 goto st_case_379
814816 case 380:
815 goto stCase380
817 goto st_case_380
816818 case 381:
817 goto stCase381
819 goto st_case_381
818820 case 382:
819 goto stCase382
821 goto st_case_382
820822 case 383:
821 goto stCase383
823 goto st_case_383
822824 case 384:
823 goto stCase384
825 goto st_case_384
824826 case 385:
825 goto stCase385
827 goto st_case_385
826828 case 386:
827 goto stCase386
829 goto st_case_386
828830 case 387:
829 goto stCase387
831 goto st_case_387
830832 case 388:
831 goto stCase388
833 goto st_case_388
832834 case 389:
833 goto stCase389
835 goto st_case_389
834836 case 390:
835 goto stCase390
837 goto st_case_390
836838 case 391:
837 goto stCase391
839 goto st_case_391
838840 case 392:
839 goto stCase392
841 goto st_case_392
840842 case 393:
841 goto stCase393
843 goto st_case_393
842844 case 394:
843 goto stCase394
845 goto st_case_394
844846 case 395:
845 goto stCase395
847 goto st_case_395
846848 case 396:
847 goto stCase396
849 goto st_case_396
848850 case 397:
849 goto stCase397
851 goto st_case_397
850852 case 398:
851 goto stCase398
853 goto st_case_398
852854 case 399:
853 goto stCase399
855 goto st_case_399
854856 case 400:
855 goto stCase400
857 goto st_case_400
856858 case 401:
857 goto stCase401
859 goto st_case_401
858860 case 402:
859 goto stCase402
861 goto st_case_402
860862 case 403:
861 goto stCase403
863 goto st_case_403
862864 case 404:
863 goto stCase404
865 goto st_case_404
864866 case 405:
865 goto stCase405
867 goto st_case_405
866868 case 406:
867 goto stCase406
869 goto st_case_406
868870 case 407:
869 goto stCase407
871 goto st_case_407
870872 case 408:
871 goto stCase408
873 goto st_case_408
872874 case 409:
873 goto stCase409
875 goto st_case_409
874876 case 410:
875 goto stCase410
877 goto st_case_410
876878 case 411:
877 goto stCase411
879 goto st_case_411
878880 case 412:
879 goto stCase412
881 goto st_case_412
880882 case 413:
881 goto stCase413
883 goto st_case_413
882884 case 414:
883 goto stCase414
885 goto st_case_414
884886 case 415:
885 goto stCase415
887 goto st_case_415
886888 case 416:
887 goto stCase416
889 goto st_case_416
888890 case 417:
889 goto stCase417
891 goto st_case_417
890892 case 418:
891 goto stCase418
893 goto st_case_418
892894 case 419:
893 goto stCase419
895 goto st_case_419
894896 case 420:
895 goto stCase420
897 goto st_case_420
896898 case 421:
897 goto stCase421
899 goto st_case_421
898900 case 422:
899 goto stCase422
901 goto st_case_422
900902 case 423:
901 goto stCase423
903 goto st_case_423
902904 case 424:
903 goto stCase424
905 goto st_case_424
904906 case 425:
905 goto stCase425
907 goto st_case_425
906908 case 426:
907 goto stCase426
909 goto st_case_426
908910 case 427:
909 goto stCase427
911 goto st_case_427
910912 case 428:
911 goto stCase428
913 goto st_case_428
912914 case 429:
913 goto stCase429
915 goto st_case_429
914916 case 430:
915 goto stCase430
917 goto st_case_430
916918 case 431:
917 goto stCase431
919 goto st_case_431
918920 case 432:
919 goto stCase432
921 goto st_case_432
920922 case 433:
921 goto stCase433
923 goto st_case_433
922924 case 434:
923 goto stCase434
925 goto st_case_434
924926 case 435:
925 goto stCase435
927 goto st_case_435
926928 case 436:
927 goto stCase436
929 goto st_case_436
928930 case 437:
929 goto stCase437
931 goto st_case_437
930932 case 438:
931 goto stCase438
933 goto st_case_438
932934 case 439:
933 goto stCase439
935 goto st_case_439
934936 case 440:
935 goto stCase440
937 goto st_case_440
936938 case 441:
937 goto stCase441
939 goto st_case_441
938940 case 442:
939 goto stCase442
941 goto st_case_442
940942 case 443:
941 goto stCase443
943 goto st_case_443
942944 case 444:
943 goto stCase444
945 goto st_case_444
944946 case 445:
945 goto stCase445
947 goto st_case_445
946948 case 446:
947 goto stCase446
949 goto st_case_446
948950 case 447:
949 goto stCase447
951 goto st_case_447
950952 case 448:
951 goto stCase448
953 goto st_case_448
952954 case 449:
953 goto stCase449
955 goto st_case_449
954956 case 450:
955 goto stCase450
957 goto st_case_450
956958 case 451:
957 goto stCase451
959 goto st_case_451
958960 case 452:
959 goto stCase452
961 goto st_case_452
960962 case 453:
961 goto stCase453
963 goto st_case_453
962964 case 454:
963 goto stCase454
965 goto st_case_454
964966 case 455:
965 goto stCase455
967 goto st_case_455
966968 case 456:
967 goto stCase456
969 goto st_case_456
968970 case 457:
969 goto stCase457
971 goto st_case_457
970972 case 458:
971 goto stCase458
973 goto st_case_458
972974 case 459:
973 goto stCase459
975 goto st_case_459
974976 case 460:
975 goto stCase460
977 goto st_case_460
976978 case 461:
977 goto stCase461
979 goto st_case_461
978980 case 462:
979 goto stCase462
981 goto st_case_462
980982 case 463:
981 goto stCase463
983 goto st_case_463
982984 case 464:
983 goto stCase464
985 goto st_case_464
984986 case 465:
985 goto stCase465
987 goto st_case_465
986988 case 466:
987 goto stCase466
989 goto st_case_466
988990 case 467:
989 goto stCase467
991 goto st_case_467
990992 case 468:
991 goto stCase468
993 goto st_case_468
992994 case 469:
993 goto stCase469
995 goto st_case_469
994996 case 470:
995 goto stCase470
997 goto st_case_470
996998 case 471:
997 goto stCase471
999 goto st_case_471
9981000 case 472:
999 goto stCase472
1001 goto st_case_472
10001002 case 473:
1001 goto stCase473
1003 goto st_case_473
10021004 case 474:
1003 goto stCase474
1005 goto st_case_474
10041006 case 475:
1005 goto stCase475
1007 goto st_case_475
10061008 case 476:
1007 goto stCase476
1009 goto st_case_476
10081010 case 477:
1009 goto stCase477
1011 goto st_case_477
10101012 case 478:
1011 goto stCase478
1013 goto st_case_478
10121014 case 479:
1013 goto stCase479
1015 goto st_case_479
10141016 case 480:
1015 goto stCase480
1017 goto st_case_480
10161018 case 481:
1017 goto stCase481
1019 goto st_case_481
10181020 case 482:
1019 goto stCase482
1021 goto st_case_482
10201022 case 483:
1021 goto stCase483
1023 goto st_case_483
10221024 case 484:
1023 goto stCase484
1025 goto st_case_484
10241026 case 485:
1025 goto stCase485
1027 goto st_case_485
10261028 case 486:
1027 goto stCase486
1029 goto st_case_486
10281030 case 487:
1029 goto stCase487
1031 goto st_case_487
10301032 case 488:
1031 goto stCase488
1033 goto st_case_488
10321034 case 489:
1033 goto stCase489
1035 goto st_case_489
10341036 case 490:
1035 goto stCase490
1037 goto st_case_490
10361038 case 491:
1037 goto stCase491
1039 goto st_case_491
10381040 case 492:
1039 goto stCase492
1041 goto st_case_492
10401042 case 48:
1041 goto stCase48
1043 goto st_case_48
10421044 case 493:
1043 goto stCase493
1045 goto st_case_493
10441046 case 494:
1045 goto stCase494
1047 goto st_case_494
10461048 case 495:
1047 goto stCase495
1049 goto st_case_495
10481050 case 496:
1049 goto stCase496
1051 goto st_case_496
10501052 case 497:
1051 goto stCase497
1053 goto st_case_497
10521054 case 498:
1053 goto stCase498
1055 goto st_case_498
10541056 case 499:
1055 goto stCase499
1057 goto st_case_499
10561058 case 500:
1057 goto stCase500
1059 goto st_case_500
10581060 case 501:
1059 goto stCase501
1061 goto st_case_501
10601062 case 502:
1061 goto stCase502
1063 goto st_case_502
10621064 case 503:
1063 goto stCase503
1065 goto st_case_503
10641066 case 504:
1065 goto stCase504
1067 goto st_case_504
10661068 case 505:
1067 goto stCase505
1069 goto st_case_505
10681070 case 506:
1069 goto stCase506
1071 goto st_case_506
10701072 case 507:
1071 goto stCase507
1073 goto st_case_507
10721074 case 508:
1073 goto stCase508
1075 goto st_case_508
10741076 case 509:
1075 goto stCase509
1077 goto st_case_509
10761078 case 510:
1077 goto stCase510
1079 goto st_case_510
10781080 case 511:
1079 goto stCase511
1081 goto st_case_511
10801082 case 512:
1081 goto stCase512
1083 goto st_case_512
10821084 case 513:
1083 goto stCase513
1085 goto st_case_513
10841086 case 514:
1085 goto stCase514
1087 goto st_case_514
10861088 case 515:
1087 goto stCase515
1089 goto st_case_515
10881090 case 516:
1089 goto stCase516
1091 goto st_case_516
10901092 case 517:
1091 goto stCase517
1093 goto st_case_517
10921094 case 518:
1093 goto stCase518
1095 goto st_case_518
10941096 case 519:
1095 goto stCase519
1097 goto st_case_519
10961098 case 520:
1097 goto stCase520
1099 goto st_case_520
10981100 case 521:
1099 goto stCase521
1101 goto st_case_521
11001102 case 522:
1101 goto stCase522
1103 goto st_case_522
11021104 case 523:
1103 goto stCase523
1105 goto st_case_523
11041106 case 524:
1105 goto stCase524
1107 goto st_case_524
11061108 case 49:
1107 goto stCase49
1109 goto st_case_49
11081110 case 525:
1109 goto stCase525
1111 goto st_case_525
11101112 case 526:
1111 goto stCase526
1113 goto st_case_526
11121114 case 527:
1113 goto stCase527
1115 goto st_case_527
11141116 case 528:
1115 goto stCase528
1117 goto st_case_528
11161118 case 529:
1117 goto stCase529
1119 goto st_case_529
11181120 case 530:
1119 goto stCase530
1121 goto st_case_530
11201122 case 531:
1121 goto stCase531
1123 goto st_case_531
11221124 case 532:
1123 goto stCase532
1125 goto st_case_532
11241126 case 533:
1125 goto stCase533
1127 goto st_case_533
11261128 case 534:
1127 goto stCase534
1129 goto st_case_534
11281130 case 535:
1129 goto stCase535
1131 goto st_case_535
11301132 case 536:
1131 goto stCase536
1133 goto st_case_536
11321134 case 537:
1133 goto stCase537
1135 goto st_case_537
11341136 case 538:
1135 goto stCase538
1137 goto st_case_538
11361138 case 539:
1137 goto stCase539
1139 goto st_case_539
11381140 case 540:
1139 goto stCase540
1141 goto st_case_540
11401142 case 541:
1141 goto stCase541
1143 goto st_case_541
11421144 case 542:
1143 goto stCase542
1145 goto st_case_542
11441146 case 543:
1145 goto stCase543
1147 goto st_case_543
11461148 case 544:
1147 goto stCase544
1149 goto st_case_544
11481150 case 545:
1149 goto stCase545
1151 goto st_case_545
11501152 case 546:
1151 goto stCase546
1153 goto st_case_546
11521154 case 547:
1153 goto stCase547
1155 goto st_case_547
11541156 case 548:
1155 goto stCase548
1157 goto st_case_548
11561158 case 549:
1157 goto stCase549
1159 goto st_case_549
11581160 case 550:
1159 goto stCase550
1161 goto st_case_550
11601162 case 551:
1161 goto stCase551
1163 goto st_case_551
11621164 case 552:
1163 goto stCase552
1165 goto st_case_552
11641166 case 553:
1165 goto stCase553
1167 goto st_case_553
11661168 case 554:
1167 goto stCase554
1169 goto st_case_554
11681170 case 555:
1169 goto stCase555
1171 goto st_case_555
11701172 case 556:
1171 goto stCase556
1173 goto st_case_556
11721174 case 50:
1173 goto stCase50
1175 goto st_case_50
11741176 case 557:
1175 goto stCase557
1177 goto st_case_557
11761178 case 558:
1177 goto stCase558
1179 goto st_case_558
11781180 case 559:
1179 goto stCase559
1181 goto st_case_559
11801182 case 560:
1181 goto stCase560
1183 goto st_case_560
11821184 case 561:
1183 goto stCase561
1185 goto st_case_561
11841186 case 562:
1185 goto stCase562
1187 goto st_case_562
11861188 case 563:
1187 goto stCase563
1189 goto st_case_563
11881190 case 564:
1189 goto stCase564
1191 goto st_case_564
11901192 case 565:
1191 goto stCase565
1193 goto st_case_565
11921194 case 566:
1193 goto stCase566
1195 goto st_case_566
11941196 case 567:
1195 goto stCase567
1197 goto st_case_567
11961198 case 568:
1197 goto stCase568
1199 goto st_case_568
11981200 case 569:
1199 goto stCase569
1201 goto st_case_569
12001202 case 570:
1201 goto stCase570
1203 goto st_case_570
12021204 case 571:
1203 goto stCase571
1205 goto st_case_571
12041206 case 572:
1205 goto stCase572
1207 goto st_case_572
12061208 case 573:
1207 goto stCase573
1209 goto st_case_573
12081210 case 574:
1209 goto stCase574
1211 goto st_case_574
12101212 case 575:
1211 goto stCase575
1213 goto st_case_575
12121214 case 576:
1213 goto stCase576
1215 goto st_case_576
12141216 case 577:
1215 goto stCase577
1217 goto st_case_577
12161218 case 578:
1217 goto stCase578
1219 goto st_case_578
12181220 case 579:
1219 goto stCase579
1221 goto st_case_579
12201222 case 580:
1221 goto stCase580
1223 goto st_case_580
12221224 case 581:
1223 goto stCase581
1225 goto st_case_581
12241226 case 582:
1225 goto stCase582
1227 goto st_case_582
12261228 case 583:
1227 goto stCase583
1229 goto st_case_583
12281230 case 584:
1229 goto stCase584
1231 goto st_case_584
12301232 case 585:
1231 goto stCase585
1233 goto st_case_585
12321234 case 586:
1233 goto stCase586
1235 goto st_case_586
12341236 case 587:
1235 goto stCase587
1237 goto st_case_587
12361238 case 588:
1237 goto stCase588
1239 goto st_case_588
12381240 case 589:
1239 goto stCase589
1241 goto st_case_589
12401242 case 590:
1241 goto stCase590
1243 goto st_case_590
12421244 case 51:
1243 goto stCase51
1245 goto st_case_51
12441246 case 52:
1245 goto stCase52
1247 goto st_case_52
12461248 case 53:
1247 goto stCase53
1249 goto st_case_53
12481250 case 54:
1249 goto stCase54
1251 goto st_case_54
12501252 case 55:
1251 goto stCase55
1253 goto st_case_55
12521254 case 56:
1253 goto stCase56
1255 goto st_case_56
12541256 case 57:
1255 goto stCase57
1257 goto st_case_57
12561258 case 58:
1257 goto stCase58
1258 }
1259 goto stOut
1260 stCase59:
1259 goto st_case_58
1260 }
1261 goto st_out
1262 st_case_59:
12611263 switch data[p] {
12621264 case 224:
12631265 goto tr52
12981300 goto st60
12991301 st60:
13001302 if p++; p == pe {
1301 goto _testEof60
1302 }
1303 stCase60:
1303 goto _test_eof60
1304 }
1305 st_case_60:
13041306 switch data[p] {
13051307 case 224:
13061308 goto st2
13341336 goto st3
13351337 }
13361338 goto st60
1337 stCase0:
1339 st_case_0:
13381340 st0:
13391341 cs = 0
13401342 goto _out
13451347 goto st1
13461348 st1:
13471349 if p++; p == pe {
1348 goto _testEof1
1349 }
1350 stCase1:
1350 goto _test_eof1
1351 }
1352 st_case_1:
13511353 if 128 <= data[p] && data[p] <= 191 {
13521354 goto st60
13531355 }
13591361 goto st2
13601362 st2:
13611363 if p++; p == pe {
1362 goto _testEof2
1363 }
1364 stCase2:
1364 goto _test_eof2
1365 }
1366 st_case_2:
13651367 if 160 <= data[p] && data[p] <= 191 {
13661368 goto st1
13671369 }
13731375 goto st3
13741376 st3:
13751377 if p++; p == pe {
1376 goto _testEof3
1377 }
1378 stCase3:
1378 goto _test_eof3
1379 }
1380 st_case_3:
13791381 if 128 <= data[p] && data[p] <= 191 {
13801382 goto st1
13811383 }
13871389 goto st4
13881390 st4:
13891391 if p++; p == pe {
1390 goto _testEof4
1391 }
1392 stCase4:
1392 goto _test_eof4
1393 }
1394 st_case_4:
13931395 if 128 <= data[p] && data[p] <= 159 {
13941396 goto st1
13951397 }
14011403 goto st5
14021404 st5:
14031405 if p++; p == pe {
1404 goto _testEof5
1405 }
1406 stCase5:
1406 goto _test_eof5
1407 }
1408 st_case_5:
14071409 if 144 <= data[p] && data[p] <= 191 {
14081410 goto st3
14091411 }
14151417 goto st6
14161418 st6:
14171419 if p++; p == pe {
1418 goto _testEof6
1419 }
1420 stCase6:
1420 goto _test_eof6
1421 }
1422 st_case_6:
14211423 if 128 <= data[p] && data[p] <= 191 {
14221424 goto st3
14231425 }
14291431 goto st7
14301432 st7:
14311433 if p++; p == pe {
1432 goto _testEof7
1433 }
1434 stCase7:
1434 goto _test_eof7
1435 }
1436 st_case_7:
14351437 if 128 <= data[p] && data[p] <= 143 {
14361438 goto st3
14371439 }
14381440 goto st0
1439 stCase8:
1441 st_case_8:
14401442 if 48 <= data[p] && data[p] <= 57 {
14411443 goto tr4
14421444 }
14481450 goto st9
14491451 st9:
14501452 if p++; p == pe {
1451 goto _testEof9
1452 }
1453 stCase9:
1453 goto _test_eof9
1454 }
1455 st_case_9:
14541456 if 48 <= data[p] && data[p] <= 57 {
14551457 goto st10
14561458 }
14571459 goto st0
14581460 st10:
14591461 if p++; p == pe {
1460 goto _testEof10
1461 }
1462 stCase10:
1462 goto _test_eof10
1463 }
1464 st_case_10:
14631465 if 48 <= data[p] && data[p] <= 57 {
14641466 goto st11
14651467 }
14661468 goto st0
14671469 st11:
14681470 if p++; p == pe {
1469 goto _testEof11
1470 }
1471 stCase11:
1471 goto _test_eof11
1472 }
1473 st_case_11:
14721474 if 48 <= data[p] && data[p] <= 57 {
14731475 goto st12
14741476 }
14751477 goto st0
14761478 st12:
14771479 if p++; p == pe {
1478 goto _testEof12
1479 }
1480 stCase12:
1480 goto _test_eof12
1481 }
1482 st_case_12:
14811483 if data[p] == 45 {
14821484 goto st13
14831485 }
14841486 goto st0
14851487 st13:
14861488 if p++; p == pe {
1487 goto _testEof13
1488 }
1489 stCase13:
1489 goto _test_eof13
1490 }
1491 st_case_13:
14901492 switch data[p] {
14911493 case 48:
14921494 goto st14
14961498 goto st0
14971499 st14:
14981500 if p++; p == pe {
1499 goto _testEof14
1500 }
1501 stCase14:
1501 goto _test_eof14
1502 }
1503 st_case_14:
15021504 if 49 <= data[p] && data[p] <= 57 {
15031505 goto st15
15041506 }
15051507 goto st0
15061508 st15:
15071509 if p++; p == pe {
1508 goto _testEof15
1509 }
1510 stCase15:
1510 goto _test_eof15
1511 }
1512 st_case_15:
15111513 if data[p] == 45 {
15121514 goto st16
15131515 }
15141516 goto st0
15151517 st16:
15161518 if p++; p == pe {
1517 goto _testEof16
1518 }
1519 stCase16:
1519 goto _test_eof16
1520 }
1521 st_case_16:
15201522 switch data[p] {
15211523 case 48:
15221524 goto st17
15291531 goto st0
15301532 st17:
15311533 if p++; p == pe {
1532 goto _testEof17
1533 }
1534 stCase17:
1534 goto _test_eof17
1535 }
1536 st_case_17:
15351537 if 49 <= data[p] && data[p] <= 57 {
15361538 goto st18
15371539 }
15381540 goto st0
15391541 st18:
15401542 if p++; p == pe {
1541 goto _testEof18
1542 }
1543 stCase18:
1543 goto _test_eof18
1544 }
1545 st_case_18:
15441546 if data[p] == 84 {
15451547 goto st19
15461548 }
15471549 goto st0
15481550 st19:
15491551 if p++; p == pe {
1550 goto _testEof19
1551 }
1552 stCase19:
1552 goto _test_eof19
1553 }
1554 st_case_19:
15531555 if data[p] == 50 {
15541556 goto st41
15551557 }
15591561 goto st0
15601562 st20:
15611563 if p++; p == pe {
1562 goto _testEof20
1563 }
1564 stCase20:
1564 goto _test_eof20
1565 }
1566 st_case_20:
15651567 if 48 <= data[p] && data[p] <= 57 {
15661568 goto st21
15671569 }
15681570 goto st0
15691571 st21:
15701572 if p++; p == pe {
1571 goto _testEof21
1572 }
1573 stCase21:
1573 goto _test_eof21
1574 }
1575 st_case_21:
15741576 if data[p] == 58 {
15751577 goto st22
15761578 }
15771579 goto st0
15781580 st22:
15791581 if p++; p == pe {
1580 goto _testEof22
1581 }
1582 stCase22:
1582 goto _test_eof22
1583 }
1584 st_case_22:
15831585 if 48 <= data[p] && data[p] <= 53 {
15841586 goto st23
15851587 }
15861588 goto st0
15871589 st23:
15881590 if p++; p == pe {
1589 goto _testEof23
1590 }
1591 stCase23:
1591 goto _test_eof23
1592 }
1593 st_case_23:
15921594 if 48 <= data[p] && data[p] <= 57 {
15931595 goto st24
15941596 }
15951597 goto st0
15961598 st24:
15971599 if p++; p == pe {
1598 goto _testEof24
1599 }
1600 stCase24:
1600 goto _test_eof24
1601 }
1602 st_case_24:
16011603 if data[p] == 58 {
16021604 goto st25
16031605 }
16041606 goto st0
16051607 st25:
16061608 if p++; p == pe {
1607 goto _testEof25
1608 }
1609 stCase25:
1609 goto _test_eof25
1610 }
1611 st_case_25:
16101612 if 48 <= data[p] && data[p] <= 53 {
16111613 goto st26
16121614 }
16131615 goto st0
16141616 st26:
16151617 if p++; p == pe {
1616 goto _testEof26
1617 }
1618 stCase26:
1618 goto _test_eof26
1619 }
1620 st_case_26:
16191621 if 48 <= data[p] && data[p] <= 57 {
16201622 goto st27
16211623 }
16221624 goto st0
16231625 st27:
16241626 if p++; p == pe {
1625 goto _testEof27
1626 }
1627 stCase27:
1627 goto _test_eof27
1628 }
1629 st_case_27:
16281630 switch data[p] {
16291631 case 43:
16301632 goto st28
16381640 goto st0
16391641 st28:
16401642 if p++; p == pe {
1641 goto _testEof28
1642 }
1643 stCase28:
1643 goto _test_eof28
1644 }
1645 st_case_28:
16441646 if data[p] == 50 {
16451647 goto st33
16461648 }
16501652 goto st0
16511653 st29:
16521654 if p++; p == pe {
1653 goto _testEof29
1654 }
1655 stCase29:
1655 goto _test_eof29
1656 }
1657 st_case_29:
16561658 if 48 <= data[p] && data[p] <= 57 {
16571659 goto st30
16581660 }
16591661 goto st0
16601662 st30:
16611663 if p++; p == pe {
1662 goto _testEof30
1663 }
1664 stCase30:
1664 goto _test_eof30
1665 }
1666 st_case_30:
16651667 if data[p] == 58 {
16661668 goto st31
16671669 }
16681670 goto st0
16691671 st31:
16701672 if p++; p == pe {
1671 goto _testEof31
1672 }
1673 stCase31:
1673 goto _test_eof31
1674 }
1675 st_case_31:
16741676 if 48 <= data[p] && data[p] <= 53 {
16751677 goto st32
16761678 }
16771679 goto st0
16781680 st32:
16791681 if p++; p == pe {
1680 goto _testEof32
1681 }
1682 stCase32:
1682 goto _test_eof32
1683 }
1684 st_case_32:
16831685 if 48 <= data[p] && data[p] <= 57 {
16841686 goto st61
16851687 }
16861688 goto st0
16871689 st61:
16881690 if p++; p == pe {
1689 goto _testEof61
1690 }
1691 stCase61:
1691 goto _test_eof61
1692 }
1693 st_case_61:
16921694 goto st0
16931695 st33:
16941696 if p++; p == pe {
1695 goto _testEof33
1696 }
1697 stCase33:
1697 goto _test_eof33
1698 }
1699 st_case_33:
16981700 if 48 <= data[p] && data[p] <= 51 {
16991701 goto st30
17001702 }
17011703 goto st0
17021704 st34:
17031705 if p++; p == pe {
1704 goto _testEof34
1705 }
1706 stCase34:
1706 goto _test_eof34
1707 }
1708 st_case_34:
17071709 if 48 <= data[p] && data[p] <= 57 {
17081710 goto st35
17091711 }
17101712 goto st0
17111713 st35:
17121714 if p++; p == pe {
1713 goto _testEof35
1714 }
1715 stCase35:
1715 goto _test_eof35
1716 }
1717 st_case_35:
17161718 switch data[p] {
17171719 case 43:
17181720 goto st28
17271729 goto st0
17281730 st36:
17291731 if p++; p == pe {
1730 goto _testEof36
1731 }
1732 stCase36:
1732 goto _test_eof36
1733 }
1734 st_case_36:
17331735 switch data[p] {
17341736 case 43:
17351737 goto st28
17441746 goto st0
17451747 st37:
17461748 if p++; p == pe {
1747 goto _testEof37
1748 }
1749 stCase37:
1749 goto _test_eof37
1750 }
1751 st_case_37:
17501752 switch data[p] {
17511753 case 43:
17521754 goto st28
17611763 goto st0
17621764 st38:
17631765 if p++; p == pe {
1764 goto _testEof38
1765 }
1766 stCase38:
1766 goto _test_eof38
1767 }
1768 st_case_38:
17671769 switch data[p] {
17681770 case 43:
17691771 goto st28
17781780 goto st0
17791781 st39:
17801782 if p++; p == pe {
1781 goto _testEof39
1782 }
1783 stCase39:
1783 goto _test_eof39
1784 }
1785 st_case_39:
17841786 switch data[p] {
17851787 case 43:
17861788 goto st28
17951797 goto st0
17961798 st40:
17971799 if p++; p == pe {
1798 goto _testEof40
1799 }
1800 stCase40:
1800 goto _test_eof40
1801 }
1802 st_case_40:
18011803 switch data[p] {
18021804 case 43:
18031805 goto st28
18091811 goto st0
18101812 st41:
18111813 if p++; p == pe {
1812 goto _testEof41
1813 }
1814 stCase41:
1814 goto _test_eof41
1815 }
1816 st_case_41:
18151817 if 48 <= data[p] && data[p] <= 51 {
18161818 goto st21
18171819 }
18181820 goto st0
18191821 st42:
18201822 if p++; p == pe {
1821 goto _testEof42
1822 }
1823 stCase42:
1823 goto _test_eof42
1824 }
1825 st_case_42:
18241826 if 48 <= data[p] && data[p] <= 57 {
18251827 goto st18
18261828 }
18271829 goto st0
18281830 st43:
18291831 if p++; p == pe {
1830 goto _testEof43
1831 }
1832 stCase43:
1832 goto _test_eof43
1833 }
1834 st_case_43:
18331835 if 48 <= data[p] && data[p] <= 49 {
18341836 goto st18
18351837 }
18361838 goto st0
18371839 st44:
18381840 if p++; p == pe {
1839 goto _testEof44
1840 }
1841 stCase44:
1841 goto _test_eof44
1842 }
1843 st_case_44:
18421844 if 48 <= data[p] && data[p] <= 50 {
18431845 goto st15
18441846 }
18451847 goto st0
1846 stCase45:
1848 st_case_45:
18471849 if 33 <= data[p] && data[p] <= 126 {
18481850 goto tr41
18491851 }
18551857 goto st62
18561858 st62:
18571859 if p++; p == pe {
1858 goto _testEof62
1859 }
1860 stCase62:
1860 goto _test_eof62
1861 }
1862 st_case_62:
18611863 if 33 <= data[p] && data[p] <= 126 {
18621864 goto st63
18631865 }
18641866 goto st0
18651867 st63:
18661868 if p++; p == pe {
1867 goto _testEof63
1868 }
1869 stCase63:
1869 goto _test_eof63
1870 }
1871 st_case_63:
18701872 if 33 <= data[p] && data[p] <= 126 {
18711873 goto st64
18721874 }
18731875 goto st0
18741876 st64:
18751877 if p++; p == pe {
1876 goto _testEof64
1877 }
1878 stCase64:
1878 goto _test_eof64
1879 }
1880 st_case_64:
18791881 if 33 <= data[p] && data[p] <= 126 {
18801882 goto st65
18811883 }
18821884 goto st0
18831885 st65:
18841886 if p++; p == pe {
1885 goto _testEof65
1886 }
1887 stCase65:
1887 goto _test_eof65
1888 }
1889 st_case_65:
18881890 if 33 <= data[p] && data[p] <= 126 {
18891891 goto st66
18901892 }
18911893 goto st0
18921894 st66:
18931895 if p++; p == pe {
1894 goto _testEof66
1895 }
1896 stCase66:
1896 goto _test_eof66
1897 }
1898 st_case_66:
18971899 if 33 <= data[p] && data[p] <= 126 {
18981900 goto st67
18991901 }
19001902 goto st0
19011903 st67:
19021904 if p++; p == pe {
1903 goto _testEof67
1904 }
1905 stCase67:
1905 goto _test_eof67
1906 }
1907 st_case_67:
19061908 if 33 <= data[p] && data[p] <= 126 {
19071909 goto st68
19081910 }
19091911 goto st0
19101912 st68:
19111913 if p++; p == pe {
1912 goto _testEof68
1913 }
1914 stCase68:
1914 goto _test_eof68
1915 }
1916 st_case_68:
19151917 if 33 <= data[p] && data[p] <= 126 {
19161918 goto st69
19171919 }
19181920 goto st0
19191921 st69:
19201922 if p++; p == pe {
1921 goto _testEof69
1922 }
1923 stCase69:
1923 goto _test_eof69
1924 }
1925 st_case_69:
19241926 if 33 <= data[p] && data[p] <= 126 {
19251927 goto st70
19261928 }
19271929 goto st0
19281930 st70:
19291931 if p++; p == pe {
1930 goto _testEof70
1931 }
1932 stCase70:
1932 goto _test_eof70
1933 }
1934 st_case_70:
19331935 if 33 <= data[p] && data[p] <= 126 {
19341936 goto st71
19351937 }
19361938 goto st0
19371939 st71:
19381940 if p++; p == pe {
1939 goto _testEof71
1940 }
1941 stCase71:
1941 goto _test_eof71
1942 }
1943 st_case_71:
19421944 if 33 <= data[p] && data[p] <= 126 {
19431945 goto st72
19441946 }
19451947 goto st0
19461948 st72:
19471949 if p++; p == pe {
1948 goto _testEof72
1949 }
1950 stCase72:
1950 goto _test_eof72
1951 }
1952 st_case_72:
19511953 if 33 <= data[p] && data[p] <= 126 {
19521954 goto st73
19531955 }
19541956 goto st0
19551957 st73:
19561958 if p++; p == pe {
1957 goto _testEof73
1958 }
1959 stCase73:
1959 goto _test_eof73
1960 }
1961 st_case_73:
19601962 if 33 <= data[p] && data[p] <= 126 {
19611963 goto st74
19621964 }
19631965 goto st0
19641966 st74:
19651967 if p++; p == pe {
1966 goto _testEof74
1967 }
1968 stCase74:
1968 goto _test_eof74
1969 }
1970 st_case_74:
19691971 if 33 <= data[p] && data[p] <= 126 {
19701972 goto st75
19711973 }
19721974 goto st0
19731975 st75:
19741976 if p++; p == pe {
1975 goto _testEof75
1976 }
1977 stCase75:
1977 goto _test_eof75
1978 }
1979 st_case_75:
19781980 if 33 <= data[p] && data[p] <= 126 {
19791981 goto st76
19801982 }
19811983 goto st0
19821984 st76:
19831985 if p++; p == pe {
1984 goto _testEof76
1985 }
1986 stCase76:
1986 goto _test_eof76
1987 }
1988 st_case_76:
19871989 if 33 <= data[p] && data[p] <= 126 {
19881990 goto st77
19891991 }
19901992 goto st0
19911993 st77:
19921994 if p++; p == pe {
1993 goto _testEof77
1994 }
1995 stCase77:
1995 goto _test_eof77
1996 }
1997 st_case_77:
19961998 if 33 <= data[p] && data[p] <= 126 {
19971999 goto st78
19982000 }
19992001 goto st0
20002002 st78:
20012003 if p++; p == pe {
2002 goto _testEof78
2003 }
2004 stCase78:
2004 goto _test_eof78
2005 }
2006 st_case_78:
20052007 if 33 <= data[p] && data[p] <= 126 {
20062008 goto st79
20072009 }
20082010 goto st0
20092011 st79:
20102012 if p++; p == pe {
2011 goto _testEof79
2012 }
2013 stCase79:
2013 goto _test_eof79
2014 }
2015 st_case_79:
20142016 if 33 <= data[p] && data[p] <= 126 {
20152017 goto st80
20162018 }
20172019 goto st0
20182020 st80:
20192021 if p++; p == pe {
2020 goto _testEof80
2021 }
2022 stCase80:
2022 goto _test_eof80
2023 }
2024 st_case_80:
20232025 if 33 <= data[p] && data[p] <= 126 {
20242026 goto st81
20252027 }
20262028 goto st0
20272029 st81:
20282030 if p++; p == pe {
2029 goto _testEof81
2030 }
2031 stCase81:
2031 goto _test_eof81
2032 }
2033 st_case_81:
20322034 if 33 <= data[p] && data[p] <= 126 {
20332035 goto st82
20342036 }
20352037 goto st0
20362038 st82:
20372039 if p++; p == pe {
2038 goto _testEof82
2039 }
2040 stCase82:
2040 goto _test_eof82
2041 }
2042 st_case_82:
20412043 if 33 <= data[p] && data[p] <= 126 {
20422044 goto st83
20432045 }
20442046 goto st0
20452047 st83:
20462048 if p++; p == pe {
2047 goto _testEof83
2048 }
2049 stCase83:
2049 goto _test_eof83
2050 }
2051 st_case_83:
20502052 if 33 <= data[p] && data[p] <= 126 {
20512053 goto st84
20522054 }
20532055 goto st0
20542056 st84:
20552057 if p++; p == pe {
2056 goto _testEof84
2057 }
2058 stCase84:
2058 goto _test_eof84
2059 }
2060 st_case_84:
20592061 if 33 <= data[p] && data[p] <= 126 {
20602062 goto st85
20612063 }
20622064 goto st0
20632065 st85:
20642066 if p++; p == pe {
2065 goto _testEof85
2066 }
2067 stCase85:
2067 goto _test_eof85
2068 }
2069 st_case_85:
20682070 if 33 <= data[p] && data[p] <= 126 {
20692071 goto st86
20702072 }
20712073 goto st0
20722074 st86:
20732075 if p++; p == pe {
2074 goto _testEof86
2075 }
2076 stCase86:
2076 goto _test_eof86
2077 }
2078 st_case_86:
20772079 if 33 <= data[p] && data[p] <= 126 {
20782080 goto st87
20792081 }
20802082 goto st0
20812083 st87:
20822084 if p++; p == pe {
2083 goto _testEof87
2084 }
2085 stCase87:
2085 goto _test_eof87
2086 }
2087 st_case_87:
20862088 if 33 <= data[p] && data[p] <= 126 {
20872089 goto st88
20882090 }
20892091 goto st0
20902092 st88:
20912093 if p++; p == pe {
2092 goto _testEof88
2093 }
2094 stCase88:
2094 goto _test_eof88
2095 }
2096 st_case_88:
20952097 if 33 <= data[p] && data[p] <= 126 {
20962098 goto st89
20972099 }
20982100 goto st0
20992101 st89:
21002102 if p++; p == pe {
2101 goto _testEof89
2102 }
2103 stCase89:
2103 goto _test_eof89
2104 }
2105 st_case_89:
21042106 if 33 <= data[p] && data[p] <= 126 {
21052107 goto st90
21062108 }
21072109 goto st0
21082110 st90:
21092111 if p++; p == pe {
2110 goto _testEof90
2111 }
2112 stCase90:
2112 goto _test_eof90
2113 }
2114 st_case_90:
21132115 if 33 <= data[p] && data[p] <= 126 {
21142116 goto st91
21152117 }
21162118 goto st0
21172119 st91:
21182120 if p++; p == pe {
2119 goto _testEof91
2120 }
2121 stCase91:
2121 goto _test_eof91
2122 }
2123 st_case_91:
21222124 if 33 <= data[p] && data[p] <= 126 {
21232125 goto st92
21242126 }
21252127 goto st0
21262128 st92:
21272129 if p++; p == pe {
2128 goto _testEof92
2129 }
2130 stCase92:
2130 goto _test_eof92
2131 }
2132 st_case_92:
21312133 if 33 <= data[p] && data[p] <= 126 {
21322134 goto st93
21332135 }
21342136 goto st0
21352137 st93:
21362138 if p++; p == pe {
2137 goto _testEof93
2138 }
2139 stCase93:
2139 goto _test_eof93
2140 }
2141 st_case_93:
21402142 if 33 <= data[p] && data[p] <= 126 {
21412143 goto st94
21422144 }
21432145 goto st0
21442146 st94:
21452147 if p++; p == pe {
2146 goto _testEof94
2147 }
2148 stCase94:
2148 goto _test_eof94
2149 }
2150 st_case_94:
21492151 if 33 <= data[p] && data[p] <= 126 {
21502152 goto st95
21512153 }
21522154 goto st0
21532155 st95:
21542156 if p++; p == pe {
2155 goto _testEof95
2156 }
2157 stCase95:
2157 goto _test_eof95
2158 }
2159 st_case_95:
21582160 if 33 <= data[p] && data[p] <= 126 {
21592161 goto st96
21602162 }
21612163 goto st0
21622164 st96:
21632165 if p++; p == pe {
2164 goto _testEof96
2165 }
2166 stCase96:
2166 goto _test_eof96
2167 }
2168 st_case_96:
21672169 if 33 <= data[p] && data[p] <= 126 {
21682170 goto st97
21692171 }
21702172 goto st0
21712173 st97:
21722174 if p++; p == pe {
2173 goto _testEof97
2174 }
2175 stCase97:
2175 goto _test_eof97
2176 }
2177 st_case_97:
21762178 if 33 <= data[p] && data[p] <= 126 {
21772179 goto st98
21782180 }
21792181 goto st0
21802182 st98:
21812183 if p++; p == pe {
2182 goto _testEof98
2183 }
2184 stCase98:
2184 goto _test_eof98
2185 }
2186 st_case_98:
21852187 if 33 <= data[p] && data[p] <= 126 {
21862188 goto st99
21872189 }
21882190 goto st0
21892191 st99:
21902192 if p++; p == pe {
2191 goto _testEof99
2192 }
2193 stCase99:
2193 goto _test_eof99
2194 }
2195 st_case_99:
21942196 if 33 <= data[p] && data[p] <= 126 {
21952197 goto st100
21962198 }
21972199 goto st0
21982200 st100:
21992201 if p++; p == pe {
2200 goto _testEof100
2201 }
2202 stCase100:
2202 goto _test_eof100
2203 }
2204 st_case_100:
22032205 if 33 <= data[p] && data[p] <= 126 {
22042206 goto st101
22052207 }
22062208 goto st0
22072209 st101:
22082210 if p++; p == pe {
2209 goto _testEof101
2210 }
2211 stCase101:
2211 goto _test_eof101
2212 }
2213 st_case_101:
22122214 if 33 <= data[p] && data[p] <= 126 {
22132215 goto st102
22142216 }
22152217 goto st0
22162218 st102:
22172219 if p++; p == pe {
2218 goto _testEof102
2219 }
2220 stCase102:
2220 goto _test_eof102
2221 }
2222 st_case_102:
22212223 if 33 <= data[p] && data[p] <= 126 {
22222224 goto st103
22232225 }
22242226 goto st0
22252227 st103:
22262228 if p++; p == pe {
2227 goto _testEof103
2228 }
2229 stCase103:
2229 goto _test_eof103
2230 }
2231 st_case_103:
22302232 if 33 <= data[p] && data[p] <= 126 {
22312233 goto st104
22322234 }
22332235 goto st0
22342236 st104:
22352237 if p++; p == pe {
2236 goto _testEof104
2237 }
2238 stCase104:
2238 goto _test_eof104
2239 }
2240 st_case_104:
22392241 if 33 <= data[p] && data[p] <= 126 {
22402242 goto st105
22412243 }
22422244 goto st0
22432245 st105:
22442246 if p++; p == pe {
2245 goto _testEof105
2246 }
2247 stCase105:
2247 goto _test_eof105
2248 }
2249 st_case_105:
22482250 if 33 <= data[p] && data[p] <= 126 {
22492251 goto st106
22502252 }
22512253 goto st0
22522254 st106:
22532255 if p++; p == pe {
2254 goto _testEof106
2255 }
2256 stCase106:
2256 goto _test_eof106
2257 }
2258 st_case_106:
22572259 if 33 <= data[p] && data[p] <= 126 {
22582260 goto st107
22592261 }
22602262 goto st0
22612263 st107:
22622264 if p++; p == pe {
2263 goto _testEof107
2264 }
2265 stCase107:
2265 goto _test_eof107
2266 }
2267 st_case_107:
22662268 if 33 <= data[p] && data[p] <= 126 {
22672269 goto st108
22682270 }
22692271 goto st0
22702272 st108:
22712273 if p++; p == pe {
2272 goto _testEof108
2273 }
2274 stCase108:
2274 goto _test_eof108
2275 }
2276 st_case_108:
22752277 if 33 <= data[p] && data[p] <= 126 {
22762278 goto st109
22772279 }
22782280 goto st0
22792281 st109:
22802282 if p++; p == pe {
2281 goto _testEof109
2282 }
2283 stCase109:
2283 goto _test_eof109
2284 }
2285 st_case_109:
22842286 if 33 <= data[p] && data[p] <= 126 {
22852287 goto st110
22862288 }
22872289 goto st0
22882290 st110:
22892291 if p++; p == pe {
2290 goto _testEof110
2291 }
2292 stCase110:
2292 goto _test_eof110
2293 }
2294 st_case_110:
22932295 if 33 <= data[p] && data[p] <= 126 {
22942296 goto st111
22952297 }
22962298 goto st0
22972299 st111:
22982300 if p++; p == pe {
2299 goto _testEof111
2300 }
2301 stCase111:
2301 goto _test_eof111
2302 }
2303 st_case_111:
23022304 if 33 <= data[p] && data[p] <= 126 {
23032305 goto st112
23042306 }
23052307 goto st0
23062308 st112:
23072309 if p++; p == pe {
2308 goto _testEof112
2309 }
2310 stCase112:
2310 goto _test_eof112
2311 }
2312 st_case_112:
23112313 if 33 <= data[p] && data[p] <= 126 {
23122314 goto st113
23132315 }
23142316 goto st0
23152317 st113:
23162318 if p++; p == pe {
2317 goto _testEof113
2318 }
2319 stCase113:
2319 goto _test_eof113
2320 }
2321 st_case_113:
23202322 if 33 <= data[p] && data[p] <= 126 {
23212323 goto st114
23222324 }
23232325 goto st0
23242326 st114:
23252327 if p++; p == pe {
2326 goto _testEof114
2327 }
2328 stCase114:
2328 goto _test_eof114
2329 }
2330 st_case_114:
23292331 if 33 <= data[p] && data[p] <= 126 {
23302332 goto st115
23312333 }
23322334 goto st0
23332335 st115:
23342336 if p++; p == pe {
2335 goto _testEof115
2336 }
2337 stCase115:
2337 goto _test_eof115
2338 }
2339 st_case_115:
23382340 if 33 <= data[p] && data[p] <= 126 {
23392341 goto st116
23402342 }
23412343 goto st0
23422344 st116:
23432345 if p++; p == pe {
2344 goto _testEof116
2345 }
2346 stCase116:
2346 goto _test_eof116
2347 }
2348 st_case_116:
23472349 if 33 <= data[p] && data[p] <= 126 {
23482350 goto st117
23492351 }
23502352 goto st0
23512353 st117:
23522354 if p++; p == pe {
2353 goto _testEof117
2354 }
2355 stCase117:
2355 goto _test_eof117
2356 }
2357 st_case_117:
23562358 if 33 <= data[p] && data[p] <= 126 {
23572359 goto st118
23582360 }
23592361 goto st0
23602362 st118:
23612363 if p++; p == pe {
2362 goto _testEof118
2363 }
2364 stCase118:
2364 goto _test_eof118
2365 }
2366 st_case_118:
23652367 if 33 <= data[p] && data[p] <= 126 {
23662368 goto st119
23672369 }
23682370 goto st0
23692371 st119:
23702372 if p++; p == pe {
2371 goto _testEof119
2372 }
2373 stCase119:
2373 goto _test_eof119
2374 }
2375 st_case_119:
23742376 if 33 <= data[p] && data[p] <= 126 {
23752377 goto st120
23762378 }
23772379 goto st0
23782380 st120:
23792381 if p++; p == pe {
2380 goto _testEof120
2381 }
2382 stCase120:
2382 goto _test_eof120
2383 }
2384 st_case_120:
23832385 if 33 <= data[p] && data[p] <= 126 {
23842386 goto st121
23852387 }
23862388 goto st0
23872389 st121:
23882390 if p++; p == pe {
2389 goto _testEof121
2390 }
2391 stCase121:
2391 goto _test_eof121
2392 }
2393 st_case_121:
23922394 if 33 <= data[p] && data[p] <= 126 {
23932395 goto st122
23942396 }
23952397 goto st0
23962398 st122:
23972399 if p++; p == pe {
2398 goto _testEof122
2399 }
2400 stCase122:
2400 goto _test_eof122
2401 }
2402 st_case_122:
24012403 if 33 <= data[p] && data[p] <= 126 {
24022404 goto st123
24032405 }
24042406 goto st0
24052407 st123:
24062408 if p++; p == pe {
2407 goto _testEof123
2408 }
2409 stCase123:
2409 goto _test_eof123
2410 }
2411 st_case_123:
24102412 if 33 <= data[p] && data[p] <= 126 {
24112413 goto st124
24122414 }
24132415 goto st0
24142416 st124:
24152417 if p++; p == pe {
2416 goto _testEof124
2417 }
2418 stCase124:
2418 goto _test_eof124
2419 }
2420 st_case_124:
24192421 if 33 <= data[p] && data[p] <= 126 {
24202422 goto st125
24212423 }
24222424 goto st0
24232425 st125:
24242426 if p++; p == pe {
2425 goto _testEof125
2426 }
2427 stCase125:
2427 goto _test_eof125
2428 }
2429 st_case_125:
24282430 if 33 <= data[p] && data[p] <= 126 {
24292431 goto st126
24302432 }
24312433 goto st0
24322434 st126:
24332435 if p++; p == pe {
2434 goto _testEof126
2435 }
2436 stCase126:
2436 goto _test_eof126
2437 }
2438 st_case_126:
24372439 if 33 <= data[p] && data[p] <= 126 {
24382440 goto st127
24392441 }
24402442 goto st0
24412443 st127:
24422444 if p++; p == pe {
2443 goto _testEof127
2444 }
2445 stCase127:
2445 goto _test_eof127
2446 }
2447 st_case_127:
24462448 if 33 <= data[p] && data[p] <= 126 {
24472449 goto st128
24482450 }
24492451 goto st0
24502452 st128:
24512453 if p++; p == pe {
2452 goto _testEof128
2453 }
2454 stCase128:
2454 goto _test_eof128
2455 }
2456 st_case_128:
24552457 if 33 <= data[p] && data[p] <= 126 {
24562458 goto st129
24572459 }
24582460 goto st0
24592461 st129:
24602462 if p++; p == pe {
2461 goto _testEof129
2462 }
2463 stCase129:
2463 goto _test_eof129
2464 }
2465 st_case_129:
24642466 if 33 <= data[p] && data[p] <= 126 {
24652467 goto st130
24662468 }
24672469 goto st0
24682470 st130:
24692471 if p++; p == pe {
2470 goto _testEof130
2471 }
2472 stCase130:
2472 goto _test_eof130
2473 }
2474 st_case_130:
24732475 if 33 <= data[p] && data[p] <= 126 {
24742476 goto st131
24752477 }
24762478 goto st0
24772479 st131:
24782480 if p++; p == pe {
2479 goto _testEof131
2480 }
2481 stCase131:
2481 goto _test_eof131
2482 }
2483 st_case_131:
24822484 if 33 <= data[p] && data[p] <= 126 {
24832485 goto st132
24842486 }
24852487 goto st0
24862488 st132:
24872489 if p++; p == pe {
2488 goto _testEof132
2489 }
2490 stCase132:
2490 goto _test_eof132
2491 }
2492 st_case_132:
24912493 if 33 <= data[p] && data[p] <= 126 {
24922494 goto st133
24932495 }
24942496 goto st0
24952497 st133:
24962498 if p++; p == pe {
2497 goto _testEof133
2498 }
2499 stCase133:
2499 goto _test_eof133
2500 }
2501 st_case_133:
25002502 if 33 <= data[p] && data[p] <= 126 {
25012503 goto st134
25022504 }
25032505 goto st0
25042506 st134:
25052507 if p++; p == pe {
2506 goto _testEof134
2507 }
2508 stCase134:
2508 goto _test_eof134
2509 }
2510 st_case_134:
25092511 if 33 <= data[p] && data[p] <= 126 {
25102512 goto st135
25112513 }
25122514 goto st0
25132515 st135:
25142516 if p++; p == pe {
2515 goto _testEof135
2516 }
2517 stCase135:
2517 goto _test_eof135
2518 }
2519 st_case_135:
25182520 if 33 <= data[p] && data[p] <= 126 {
25192521 goto st136
25202522 }
25212523 goto st0
25222524 st136:
25232525 if p++; p == pe {
2524 goto _testEof136
2525 }
2526 stCase136:
2526 goto _test_eof136
2527 }
2528 st_case_136:
25272529 if 33 <= data[p] && data[p] <= 126 {
25282530 goto st137
25292531 }
25302532 goto st0
25312533 st137:
25322534 if p++; p == pe {
2533 goto _testEof137
2534 }
2535 stCase137:
2535 goto _test_eof137
2536 }
2537 st_case_137:
25362538 if 33 <= data[p] && data[p] <= 126 {
25372539 goto st138
25382540 }
25392541 goto st0
25402542 st138:
25412543 if p++; p == pe {
2542 goto _testEof138
2543 }
2544 stCase138:
2544 goto _test_eof138
2545 }
2546 st_case_138:
25452547 if 33 <= data[p] && data[p] <= 126 {
25462548 goto st139
25472549 }
25482550 goto st0
25492551 st139:
25502552 if p++; p == pe {
2551 goto _testEof139
2552 }
2553 stCase139:
2553 goto _test_eof139
2554 }
2555 st_case_139:
25542556 if 33 <= data[p] && data[p] <= 126 {
25552557 goto st140
25562558 }
25572559 goto st0
25582560 st140:
25592561 if p++; p == pe {
2560 goto _testEof140
2561 }
2562 stCase140:
2562 goto _test_eof140
2563 }
2564 st_case_140:
25632565 if 33 <= data[p] && data[p] <= 126 {
25642566 goto st141
25652567 }
25662568 goto st0
25672569 st141:
25682570 if p++; p == pe {
2569 goto _testEof141
2570 }
2571 stCase141:
2571 goto _test_eof141
2572 }
2573 st_case_141:
25722574 if 33 <= data[p] && data[p] <= 126 {
25732575 goto st142
25742576 }
25752577 goto st0
25762578 st142:
25772579 if p++; p == pe {
2578 goto _testEof142
2579 }
2580 stCase142:
2580 goto _test_eof142
2581 }
2582 st_case_142:
25812583 if 33 <= data[p] && data[p] <= 126 {
25822584 goto st143
25832585 }
25842586 goto st0
25852587 st143:
25862588 if p++; p == pe {
2587 goto _testEof143
2588 }
2589 stCase143:
2589 goto _test_eof143
2590 }
2591 st_case_143:
25902592 if 33 <= data[p] && data[p] <= 126 {
25912593 goto st144
25922594 }
25932595 goto st0
25942596 st144:
25952597 if p++; p == pe {
2596 goto _testEof144
2597 }
2598 stCase144:
2598 goto _test_eof144
2599 }
2600 st_case_144:
25992601 if 33 <= data[p] && data[p] <= 126 {
26002602 goto st145
26012603 }
26022604 goto st0
26032605 st145:
26042606 if p++; p == pe {
2605 goto _testEof145
2606 }
2607 stCase145:
2607 goto _test_eof145
2608 }
2609 st_case_145:
26082610 if 33 <= data[p] && data[p] <= 126 {
26092611 goto st146
26102612 }
26112613 goto st0
26122614 st146:
26132615 if p++; p == pe {
2614 goto _testEof146
2615 }
2616 stCase146:
2616 goto _test_eof146
2617 }
2618 st_case_146:
26172619 if 33 <= data[p] && data[p] <= 126 {
26182620 goto st147
26192621 }
26202622 goto st0
26212623 st147:
26222624 if p++; p == pe {
2623 goto _testEof147
2624 }
2625 stCase147:
2625 goto _test_eof147
2626 }
2627 st_case_147:
26262628 if 33 <= data[p] && data[p] <= 126 {
26272629 goto st148
26282630 }
26292631 goto st0
26302632 st148:
26312633 if p++; p == pe {
2632 goto _testEof148
2633 }
2634 stCase148:
2634 goto _test_eof148
2635 }
2636 st_case_148:
26352637 if 33 <= data[p] && data[p] <= 126 {
26362638 goto st149
26372639 }
26382640 goto st0
26392641 st149:
26402642 if p++; p == pe {
2641 goto _testEof149
2642 }
2643 stCase149:
2643 goto _test_eof149
2644 }
2645 st_case_149:
26442646 if 33 <= data[p] && data[p] <= 126 {
26452647 goto st150
26462648 }
26472649 goto st0
26482650 st150:
26492651 if p++; p == pe {
2650 goto _testEof150
2651 }
2652 stCase150:
2652 goto _test_eof150
2653 }
2654 st_case_150:
26532655 if 33 <= data[p] && data[p] <= 126 {
26542656 goto st151
26552657 }
26562658 goto st0
26572659 st151:
26582660 if p++; p == pe {
2659 goto _testEof151
2660 }
2661 stCase151:
2661 goto _test_eof151
2662 }
2663 st_case_151:
26622664 if 33 <= data[p] && data[p] <= 126 {
26632665 goto st152
26642666 }
26652667 goto st0
26662668 st152:
26672669 if p++; p == pe {
2668 goto _testEof152
2669 }
2670 stCase152:
2670 goto _test_eof152
2671 }
2672 st_case_152:
26712673 if 33 <= data[p] && data[p] <= 126 {
26722674 goto st153
26732675 }
26742676 goto st0
26752677 st153:
26762678 if p++; p == pe {
2677 goto _testEof153
2678 }
2679 stCase153:
2679 goto _test_eof153
2680 }
2681 st_case_153:
26802682 if 33 <= data[p] && data[p] <= 126 {
26812683 goto st154
26822684 }
26832685 goto st0
26842686 st154:
26852687 if p++; p == pe {
2686 goto _testEof154
2687 }
2688 stCase154:
2688 goto _test_eof154
2689 }
2690 st_case_154:
26892691 if 33 <= data[p] && data[p] <= 126 {
26902692 goto st155
26912693 }
26922694 goto st0
26932695 st155:
26942696 if p++; p == pe {
2695 goto _testEof155
2696 }
2697 stCase155:
2697 goto _test_eof155
2698 }
2699 st_case_155:
26982700 if 33 <= data[p] && data[p] <= 126 {
26992701 goto st156
27002702 }
27012703 goto st0
27022704 st156:
27032705 if p++; p == pe {
2704 goto _testEof156
2705 }
2706 stCase156:
2706 goto _test_eof156
2707 }
2708 st_case_156:
27072709 if 33 <= data[p] && data[p] <= 126 {
27082710 goto st157
27092711 }
27102712 goto st0
27112713 st157:
27122714 if p++; p == pe {
2713 goto _testEof157
2714 }
2715 stCase157:
2715 goto _test_eof157
2716 }
2717 st_case_157:
27162718 if 33 <= data[p] && data[p] <= 126 {
27172719 goto st158
27182720 }
27192721 goto st0
27202722 st158:
27212723 if p++; p == pe {
2722 goto _testEof158
2723 }
2724 stCase158:
2724 goto _test_eof158
2725 }
2726 st_case_158:
27252727 if 33 <= data[p] && data[p] <= 126 {
27262728 goto st159
27272729 }
27282730 goto st0
27292731 st159:
27302732 if p++; p == pe {
2731 goto _testEof159
2732 }
2733 stCase159:
2733 goto _test_eof159
2734 }
2735 st_case_159:
27342736 if 33 <= data[p] && data[p] <= 126 {
27352737 goto st160
27362738 }
27372739 goto st0
27382740 st160:
27392741 if p++; p == pe {
2740 goto _testEof160
2741 }
2742 stCase160:
2742 goto _test_eof160
2743 }
2744 st_case_160:
27432745 if 33 <= data[p] && data[p] <= 126 {
27442746 goto st161
27452747 }
27462748 goto st0
27472749 st161:
27482750 if p++; p == pe {
2749 goto _testEof161
2750 }
2751 stCase161:
2751 goto _test_eof161
2752 }
2753 st_case_161:
27522754 if 33 <= data[p] && data[p] <= 126 {
27532755 goto st162
27542756 }
27552757 goto st0
27562758 st162:
27572759 if p++; p == pe {
2758 goto _testEof162
2759 }
2760 stCase162:
2760 goto _test_eof162
2761 }
2762 st_case_162:
27612763 if 33 <= data[p] && data[p] <= 126 {
27622764 goto st163
27632765 }
27642766 goto st0
27652767 st163:
27662768 if p++; p == pe {
2767 goto _testEof163
2768 }
2769 stCase163:
2769 goto _test_eof163
2770 }
2771 st_case_163:
27702772 if 33 <= data[p] && data[p] <= 126 {
27712773 goto st164
27722774 }
27732775 goto st0
27742776 st164:
27752777 if p++; p == pe {
2776 goto _testEof164
2777 }
2778 stCase164:
2778 goto _test_eof164
2779 }
2780 st_case_164:
27792781 if 33 <= data[p] && data[p] <= 126 {
27802782 goto st165
27812783 }
27822784 goto st0
27832785 st165:
27842786 if p++; p == pe {
2785 goto _testEof165
2786 }
2787 stCase165:
2787 goto _test_eof165
2788 }
2789 st_case_165:
27882790 if 33 <= data[p] && data[p] <= 126 {
27892791 goto st166
27902792 }
27912793 goto st0
27922794 st166:
27932795 if p++; p == pe {
2794 goto _testEof166
2795 }
2796 stCase166:
2796 goto _test_eof166
2797 }
2798 st_case_166:
27972799 if 33 <= data[p] && data[p] <= 126 {
27982800 goto st167
27992801 }
28002802 goto st0
28012803 st167:
28022804 if p++; p == pe {
2803 goto _testEof167
2804 }
2805 stCase167:
2805 goto _test_eof167
2806 }
2807 st_case_167:
28062808 if 33 <= data[p] && data[p] <= 126 {
28072809 goto st168
28082810 }
28092811 goto st0
28102812 st168:
28112813 if p++; p == pe {
2812 goto _testEof168
2813 }
2814 stCase168:
2814 goto _test_eof168
2815 }
2816 st_case_168:
28152817 if 33 <= data[p] && data[p] <= 126 {
28162818 goto st169
28172819 }
28182820 goto st0
28192821 st169:
28202822 if p++; p == pe {
2821 goto _testEof169
2822 }
2823 stCase169:
2823 goto _test_eof169
2824 }
2825 st_case_169:
28242826 if 33 <= data[p] && data[p] <= 126 {
28252827 goto st170
28262828 }
28272829 goto st0
28282830 st170:
28292831 if p++; p == pe {
2830 goto _testEof170
2831 }
2832 stCase170:
2832 goto _test_eof170
2833 }
2834 st_case_170:
28332835 if 33 <= data[p] && data[p] <= 126 {
28342836 goto st171
28352837 }
28362838 goto st0
28372839 st171:
28382840 if p++; p == pe {
2839 goto _testEof171
2840 }
2841 stCase171:
2841 goto _test_eof171
2842 }
2843 st_case_171:
28422844 if 33 <= data[p] && data[p] <= 126 {
28432845 goto st172
28442846 }
28452847 goto st0
28462848 st172:
28472849 if p++; p == pe {
2848 goto _testEof172
2849 }
2850 stCase172:
2850 goto _test_eof172
2851 }
2852 st_case_172:
28512853 if 33 <= data[p] && data[p] <= 126 {
28522854 goto st173
28532855 }
28542856 goto st0
28552857 st173:
28562858 if p++; p == pe {
2857 goto _testEof173
2858 }
2859 stCase173:
2859 goto _test_eof173
2860 }
2861 st_case_173:
28602862 if 33 <= data[p] && data[p] <= 126 {
28612863 goto st174
28622864 }
28632865 goto st0
28642866 st174:
28652867 if p++; p == pe {
2866 goto _testEof174
2867 }
2868 stCase174:
2868 goto _test_eof174
2869 }
2870 st_case_174:
28692871 if 33 <= data[p] && data[p] <= 126 {
28702872 goto st175
28712873 }
28722874 goto st0
28732875 st175:
28742876 if p++; p == pe {
2875 goto _testEof175
2876 }
2877 stCase175:
2877 goto _test_eof175
2878 }
2879 st_case_175:
28782880 if 33 <= data[p] && data[p] <= 126 {
28792881 goto st176
28802882 }
28812883 goto st0
28822884 st176:
28832885 if p++; p == pe {
2884 goto _testEof176
2885 }
2886 stCase176:
2886 goto _test_eof176
2887 }
2888 st_case_176:
28872889 if 33 <= data[p] && data[p] <= 126 {
28882890 goto st177
28892891 }
28902892 goto st0
28912893 st177:
28922894 if p++; p == pe {
2893 goto _testEof177
2894 }
2895 stCase177:
2895 goto _test_eof177
2896 }
2897 st_case_177:
28962898 if 33 <= data[p] && data[p] <= 126 {
28972899 goto st178
28982900 }
28992901 goto st0
29002902 st178:
29012903 if p++; p == pe {
2902 goto _testEof178
2903 }
2904 stCase178:
2904 goto _test_eof178
2905 }
2906 st_case_178:
29052907 if 33 <= data[p] && data[p] <= 126 {
29062908 goto st179
29072909 }
29082910 goto st0
29092911 st179:
29102912 if p++; p == pe {
2911 goto _testEof179
2912 }
2913 stCase179:
2913 goto _test_eof179
2914 }
2915 st_case_179:
29142916 if 33 <= data[p] && data[p] <= 126 {
29152917 goto st180
29162918 }
29172919 goto st0
29182920 st180:
29192921 if p++; p == pe {
2920 goto _testEof180
2921 }
2922 stCase180:
2922 goto _test_eof180
2923 }
2924 st_case_180:
29232925 if 33 <= data[p] && data[p] <= 126 {
29242926 goto st181
29252927 }
29262928 goto st0
29272929 st181:
29282930 if p++; p == pe {
2929 goto _testEof181
2930 }
2931 stCase181:
2931 goto _test_eof181
2932 }
2933 st_case_181:
29322934 if 33 <= data[p] && data[p] <= 126 {
29332935 goto st182
29342936 }
29352937 goto st0
29362938 st182:
29372939 if p++; p == pe {
2938 goto _testEof182
2939 }
2940 stCase182:
2940 goto _test_eof182
2941 }
2942 st_case_182:
29412943 if 33 <= data[p] && data[p] <= 126 {
29422944 goto st183
29432945 }
29442946 goto st0
29452947 st183:
29462948 if p++; p == pe {
2947 goto _testEof183
2948 }
2949 stCase183:
2949 goto _test_eof183
2950 }
2951 st_case_183:
29502952 if 33 <= data[p] && data[p] <= 126 {
29512953 goto st184
29522954 }
29532955 goto st0
29542956 st184:
29552957 if p++; p == pe {
2956 goto _testEof184
2957 }
2958 stCase184:
2958 goto _test_eof184
2959 }
2960 st_case_184:
29592961 if 33 <= data[p] && data[p] <= 126 {
29602962 goto st185
29612963 }
29622964 goto st0
29632965 st185:
29642966 if p++; p == pe {
2965 goto _testEof185
2966 }
2967 stCase185:
2967 goto _test_eof185
2968 }
2969 st_case_185:
29682970 if 33 <= data[p] && data[p] <= 126 {
29692971 goto st186
29702972 }
29712973 goto st0
29722974 st186:
29732975 if p++; p == pe {
2974 goto _testEof186
2975 }
2976 stCase186:
2976 goto _test_eof186
2977 }
2978 st_case_186:
29772979 if 33 <= data[p] && data[p] <= 126 {
29782980 goto st187
29792981 }
29802982 goto st0
29812983 st187:
29822984 if p++; p == pe {
2983 goto _testEof187
2984 }
2985 stCase187:
2985 goto _test_eof187
2986 }
2987 st_case_187:
29862988 if 33 <= data[p] && data[p] <= 126 {
29872989 goto st188
29882990 }
29892991 goto st0
29902992 st188:
29912993 if p++; p == pe {
2992 goto _testEof188
2993 }
2994 stCase188:
2994 goto _test_eof188
2995 }
2996 st_case_188:
29952997 if 33 <= data[p] && data[p] <= 126 {
29962998 goto st189
29972999 }
29983000 goto st0
29993001 st189:
30003002 if p++; p == pe {
3001 goto _testEof189
3002 }
3003 stCase189:
3003 goto _test_eof189
3004 }
3005 st_case_189:
30043006 if 33 <= data[p] && data[p] <= 126 {
30053007 goto st190
30063008 }
30073009 goto st0
30083010 st190:
30093011 if p++; p == pe {
3010 goto _testEof190
3011 }
3012 stCase190:
3012 goto _test_eof190
3013 }
3014 st_case_190:
30133015 if 33 <= data[p] && data[p] <= 126 {
30143016 goto st191
30153017 }
30163018 goto st0
30173019 st191:
30183020 if p++; p == pe {
3019 goto _testEof191
3020 }
3021 stCase191:
3021 goto _test_eof191
3022 }
3023 st_case_191:
30223024 if 33 <= data[p] && data[p] <= 126 {
30233025 goto st192
30243026 }
30253027 goto st0
30263028 st192:
30273029 if p++; p == pe {
3028 goto _testEof192
3029 }
3030 stCase192:
3030 goto _test_eof192
3031 }
3032 st_case_192:
30313033 if 33 <= data[p] && data[p] <= 126 {
30323034 goto st193
30333035 }
30343036 goto st0
30353037 st193:
30363038 if p++; p == pe {
3037 goto _testEof193
3038 }
3039 stCase193:
3039 goto _test_eof193
3040 }
3041 st_case_193:
30403042 if 33 <= data[p] && data[p] <= 126 {
30413043 goto st194
30423044 }
30433045 goto st0
30443046 st194:
30453047 if p++; p == pe {
3046 goto _testEof194
3047 }
3048 stCase194:
3048 goto _test_eof194
3049 }
3050 st_case_194:
30493051 if 33 <= data[p] && data[p] <= 126 {
30503052 goto st195
30513053 }
30523054 goto st0
30533055 st195:
30543056 if p++; p == pe {
3055 goto _testEof195
3056 }
3057 stCase195:
3057 goto _test_eof195
3058 }
3059 st_case_195:
30583060 if 33 <= data[p] && data[p] <= 126 {
30593061 goto st196
30603062 }
30613063 goto st0
30623064 st196:
30633065 if p++; p == pe {
3064 goto _testEof196
3065 }
3066 stCase196:
3066 goto _test_eof196
3067 }
3068 st_case_196:
30673069 if 33 <= data[p] && data[p] <= 126 {
30683070 goto st197
30693071 }
30703072 goto st0
30713073 st197:
30723074 if p++; p == pe {
3073 goto _testEof197
3074 }
3075 stCase197:
3075 goto _test_eof197
3076 }
3077 st_case_197:
30763078 if 33 <= data[p] && data[p] <= 126 {
30773079 goto st198
30783080 }
30793081 goto st0
30803082 st198:
30813083 if p++; p == pe {
3082 goto _testEof198
3083 }
3084 stCase198:
3084 goto _test_eof198
3085 }
3086 st_case_198:
30853087 if 33 <= data[p] && data[p] <= 126 {
30863088 goto st199
30873089 }
30883090 goto st0
30893091 st199:
30903092 if p++; p == pe {
3091 goto _testEof199
3092 }
3093 stCase199:
3093 goto _test_eof199
3094 }
3095 st_case_199:
30943096 if 33 <= data[p] && data[p] <= 126 {
30953097 goto st200
30963098 }
30973099 goto st0
30983100 st200:
30993101 if p++; p == pe {
3100 goto _testEof200
3101 }
3102 stCase200:
3102 goto _test_eof200
3103 }
3104 st_case_200:
31033105 if 33 <= data[p] && data[p] <= 126 {
31043106 goto st201
31053107 }
31063108 goto st0
31073109 st201:
31083110 if p++; p == pe {
3109 goto _testEof201
3110 }
3111 stCase201:
3111 goto _test_eof201
3112 }
3113 st_case_201:
31123114 if 33 <= data[p] && data[p] <= 126 {
31133115 goto st202
31143116 }
31153117 goto st0
31163118 st202:
31173119 if p++; p == pe {
3118 goto _testEof202
3119 }
3120 stCase202:
3120 goto _test_eof202
3121 }
3122 st_case_202:
31213123 if 33 <= data[p] && data[p] <= 126 {
31223124 goto st203
31233125 }
31243126 goto st0
31253127 st203:
31263128 if p++; p == pe {
3127 goto _testEof203
3128 }
3129 stCase203:
3129 goto _test_eof203
3130 }
3131 st_case_203:
31303132 if 33 <= data[p] && data[p] <= 126 {
31313133 goto st204
31323134 }
31333135 goto st0
31343136 st204:
31353137 if p++; p == pe {
3136 goto _testEof204
3137 }
3138 stCase204:
3138 goto _test_eof204
3139 }
3140 st_case_204:
31393141 if 33 <= data[p] && data[p] <= 126 {
31403142 goto st205
31413143 }
31423144 goto st0
31433145 st205:
31443146 if p++; p == pe {
3145 goto _testEof205
3146 }
3147 stCase205:
3147 goto _test_eof205
3148 }
3149 st_case_205:
31483150 if 33 <= data[p] && data[p] <= 126 {
31493151 goto st206
31503152 }
31513153 goto st0
31523154 st206:
31533155 if p++; p == pe {
3154 goto _testEof206
3155 }
3156 stCase206:
3156 goto _test_eof206
3157 }
3158 st_case_206:
31573159 if 33 <= data[p] && data[p] <= 126 {
31583160 goto st207
31593161 }
31603162 goto st0
31613163 st207:
31623164 if p++; p == pe {
3163 goto _testEof207
3164 }
3165 stCase207:
3165 goto _test_eof207
3166 }
3167 st_case_207:
31663168 if 33 <= data[p] && data[p] <= 126 {
31673169 goto st208
31683170 }
31693171 goto st0
31703172 st208:
31713173 if p++; p == pe {
3172 goto _testEof208
3173 }
3174 stCase208:
3174 goto _test_eof208
3175 }
3176 st_case_208:
31753177 if 33 <= data[p] && data[p] <= 126 {
31763178 goto st209
31773179 }
31783180 goto st0
31793181 st209:
31803182 if p++; p == pe {
3181 goto _testEof209
3182 }
3183 stCase209:
3183 goto _test_eof209
3184 }
3185 st_case_209:
31843186 if 33 <= data[p] && data[p] <= 126 {
31853187 goto st210
31863188 }
31873189 goto st0
31883190 st210:
31893191 if p++; p == pe {
3190 goto _testEof210
3191 }
3192 stCase210:
3192 goto _test_eof210
3193 }
3194 st_case_210:
31933195 if 33 <= data[p] && data[p] <= 126 {
31943196 goto st211
31953197 }
31963198 goto st0
31973199 st211:
31983200 if p++; p == pe {
3199 goto _testEof211
3200 }
3201 stCase211:
3201 goto _test_eof211
3202 }
3203 st_case_211:
32023204 if 33 <= data[p] && data[p] <= 126 {
32033205 goto st212
32043206 }
32053207 goto st0
32063208 st212:
32073209 if p++; p == pe {
3208 goto _testEof212
3209 }
3210 stCase212:
3210 goto _test_eof212
3211 }
3212 st_case_212:
32113213 if 33 <= data[p] && data[p] <= 126 {
32123214 goto st213
32133215 }
32143216 goto st0
32153217 st213:
32163218 if p++; p == pe {
3217 goto _testEof213
3218 }
3219 stCase213:
3219 goto _test_eof213
3220 }
3221 st_case_213:
32203222 if 33 <= data[p] && data[p] <= 126 {
32213223 goto st214
32223224 }
32233225 goto st0
32243226 st214:
32253227 if p++; p == pe {
3226 goto _testEof214
3227 }
3228 stCase214:
3228 goto _test_eof214
3229 }
3230 st_case_214:
32293231 if 33 <= data[p] && data[p] <= 126 {
32303232 goto st215
32313233 }
32323234 goto st0
32333235 st215:
32343236 if p++; p == pe {
3235 goto _testEof215
3236 }
3237 stCase215:
3237 goto _test_eof215
3238 }
3239 st_case_215:
32383240 if 33 <= data[p] && data[p] <= 126 {
32393241 goto st216
32403242 }
32413243 goto st0
32423244 st216:
32433245 if p++; p == pe {
3244 goto _testEof216
3245 }
3246 stCase216:
3246 goto _test_eof216
3247 }
3248 st_case_216:
32473249 if 33 <= data[p] && data[p] <= 126 {
32483250 goto st217
32493251 }
32503252 goto st0
32513253 st217:
32523254 if p++; p == pe {
3253 goto _testEof217
3254 }
3255 stCase217:
3255 goto _test_eof217
3256 }
3257 st_case_217:
32563258 if 33 <= data[p] && data[p] <= 126 {
32573259 goto st218
32583260 }
32593261 goto st0
32603262 st218:
32613263 if p++; p == pe {
3262 goto _testEof218
3263 }
3264 stCase218:
3264 goto _test_eof218
3265 }
3266 st_case_218:
32653267 if 33 <= data[p] && data[p] <= 126 {
32663268 goto st219
32673269 }
32683270 goto st0
32693271 st219:
32703272 if p++; p == pe {
3271 goto _testEof219
3272 }
3273 stCase219:
3273 goto _test_eof219
3274 }
3275 st_case_219:
32743276 if 33 <= data[p] && data[p] <= 126 {
32753277 goto st220
32763278 }
32773279 goto st0
32783280 st220:
32793281 if p++; p == pe {
3280 goto _testEof220
3281 }
3282 stCase220:
3282 goto _test_eof220
3283 }
3284 st_case_220:
32833285 if 33 <= data[p] && data[p] <= 126 {
32843286 goto st221
32853287 }
32863288 goto st0
32873289 st221:
32883290 if p++; p == pe {
3289 goto _testEof221
3290 }
3291 stCase221:
3291 goto _test_eof221
3292 }
3293 st_case_221:
32923294 if 33 <= data[p] && data[p] <= 126 {
32933295 goto st222
32943296 }
32953297 goto st0
32963298 st222:
32973299 if p++; p == pe {
3298 goto _testEof222
3299 }
3300 stCase222:
3300 goto _test_eof222
3301 }
3302 st_case_222:
33013303 if 33 <= data[p] && data[p] <= 126 {
33023304 goto st223
33033305 }
33043306 goto st0
33053307 st223:
33063308 if p++; p == pe {
3307 goto _testEof223
3308 }
3309 stCase223:
3309 goto _test_eof223
3310 }
3311 st_case_223:
33103312 if 33 <= data[p] && data[p] <= 126 {
33113313 goto st224
33123314 }
33133315 goto st0
33143316 st224:
33153317 if p++; p == pe {
3316 goto _testEof224
3317 }
3318 stCase224:
3318 goto _test_eof224
3319 }
3320 st_case_224:
33193321 if 33 <= data[p] && data[p] <= 126 {
33203322 goto st225
33213323 }
33223324 goto st0
33233325 st225:
33243326 if p++; p == pe {
3325 goto _testEof225
3326 }
3327 stCase225:
3327 goto _test_eof225
3328 }
3329 st_case_225:
33283330 if 33 <= data[p] && data[p] <= 126 {
33293331 goto st226
33303332 }
33313333 goto st0
33323334 st226:
33333335 if p++; p == pe {
3334 goto _testEof226
3335 }
3336 stCase226:
3336 goto _test_eof226
3337 }
3338 st_case_226:
33373339 if 33 <= data[p] && data[p] <= 126 {
33383340 goto st227
33393341 }
33403342 goto st0
33413343 st227:
33423344 if p++; p == pe {
3343 goto _testEof227
3344 }
3345 stCase227:
3345 goto _test_eof227
3346 }
3347 st_case_227:
33463348 if 33 <= data[p] && data[p] <= 126 {
33473349 goto st228
33483350 }
33493351 goto st0
33503352 st228:
33513353 if p++; p == pe {
3352 goto _testEof228
3353 }
3354 stCase228:
3354 goto _test_eof228
3355 }
3356 st_case_228:
33553357 if 33 <= data[p] && data[p] <= 126 {
33563358 goto st229
33573359 }
33583360 goto st0
33593361 st229:
33603362 if p++; p == pe {
3361 goto _testEof229
3362 }
3363 stCase229:
3363 goto _test_eof229
3364 }
3365 st_case_229:
33643366 if 33 <= data[p] && data[p] <= 126 {
33653367 goto st230
33663368 }
33673369 goto st0
33683370 st230:
33693371 if p++; p == pe {
3370 goto _testEof230
3371 }
3372 stCase230:
3372 goto _test_eof230
3373 }
3374 st_case_230:
33733375 if 33 <= data[p] && data[p] <= 126 {
33743376 goto st231
33753377 }
33763378 goto st0
33773379 st231:
33783380 if p++; p == pe {
3379 goto _testEof231
3380 }
3381 stCase231:
3381 goto _test_eof231
3382 }
3383 st_case_231:
33823384 if 33 <= data[p] && data[p] <= 126 {
33833385 goto st232
33843386 }
33853387 goto st0
33863388 st232:
33873389 if p++; p == pe {
3388 goto _testEof232
3389 }
3390 stCase232:
3390 goto _test_eof232
3391 }
3392 st_case_232:
33913393 if 33 <= data[p] && data[p] <= 126 {
33923394 goto st233
33933395 }
33943396 goto st0
33953397 st233:
33963398 if p++; p == pe {
3397 goto _testEof233
3398 }
3399 stCase233:
3399 goto _test_eof233
3400 }
3401 st_case_233:
34003402 if 33 <= data[p] && data[p] <= 126 {
34013403 goto st234
34023404 }
34033405 goto st0
34043406 st234:
34053407 if p++; p == pe {
3406 goto _testEof234
3407 }
3408 stCase234:
3408 goto _test_eof234
3409 }
3410 st_case_234:
34093411 if 33 <= data[p] && data[p] <= 126 {
34103412 goto st235
34113413 }
34123414 goto st0
34133415 st235:
34143416 if p++; p == pe {
3415 goto _testEof235
3416 }
3417 stCase235:
3417 goto _test_eof235
3418 }
3419 st_case_235:
34183420 if 33 <= data[p] && data[p] <= 126 {
34193421 goto st236
34203422 }
34213423 goto st0
34223424 st236:
34233425 if p++; p == pe {
3424 goto _testEof236
3425 }
3426 stCase236:
3426 goto _test_eof236
3427 }
3428 st_case_236:
34273429 if 33 <= data[p] && data[p] <= 126 {
34283430 goto st237
34293431 }
34303432 goto st0
34313433 st237:
34323434 if p++; p == pe {
3433 goto _testEof237
3434 }
3435 stCase237:
3435 goto _test_eof237
3436 }
3437 st_case_237:
34363438 if 33 <= data[p] && data[p] <= 126 {
34373439 goto st238
34383440 }
34393441 goto st0
34403442 st238:
34413443 if p++; p == pe {
3442 goto _testEof238
3443 }
3444 stCase238:
3444 goto _test_eof238
3445 }
3446 st_case_238:
34453447 if 33 <= data[p] && data[p] <= 126 {
34463448 goto st239
34473449 }
34483450 goto st0
34493451 st239:
34503452 if p++; p == pe {
3451 goto _testEof239
3452 }
3453 stCase239:
3453 goto _test_eof239
3454 }
3455 st_case_239:
34543456 if 33 <= data[p] && data[p] <= 126 {
34553457 goto st240
34563458 }
34573459 goto st0
34583460 st240:
34593461 if p++; p == pe {
3460 goto _testEof240
3461 }
3462 stCase240:
3462 goto _test_eof240
3463 }
3464 st_case_240:
34633465 if 33 <= data[p] && data[p] <= 126 {
34643466 goto st241
34653467 }
34663468 goto st0
34673469 st241:
34683470 if p++; p == pe {
3469 goto _testEof241
3470 }
3471 stCase241:
3471 goto _test_eof241
3472 }
3473 st_case_241:
34723474 if 33 <= data[p] && data[p] <= 126 {
34733475 goto st242
34743476 }
34753477 goto st0
34763478 st242:
34773479 if p++; p == pe {
3478 goto _testEof242
3479 }
3480 stCase242:
3480 goto _test_eof242
3481 }
3482 st_case_242:
34813483 if 33 <= data[p] && data[p] <= 126 {
34823484 goto st243
34833485 }
34843486 goto st0
34853487 st243:
34863488 if p++; p == pe {
3487 goto _testEof243
3488 }
3489 stCase243:
3489 goto _test_eof243
3490 }
3491 st_case_243:
34903492 if 33 <= data[p] && data[p] <= 126 {
34913493 goto st244
34923494 }
34933495 goto st0
34943496 st244:
34953497 if p++; p == pe {
3496 goto _testEof244
3497 }
3498 stCase244:
3498 goto _test_eof244
3499 }
3500 st_case_244:
34993501 if 33 <= data[p] && data[p] <= 126 {
35003502 goto st245
35013503 }
35023504 goto st0
35033505 st245:
35043506 if p++; p == pe {
3505 goto _testEof245
3506 }
3507 stCase245:
3507 goto _test_eof245
3508 }
3509 st_case_245:
35083510 if 33 <= data[p] && data[p] <= 126 {
35093511 goto st246
35103512 }
35113513 goto st0
35123514 st246:
35133515 if p++; p == pe {
3514 goto _testEof246
3515 }
3516 stCase246:
3516 goto _test_eof246
3517 }
3518 st_case_246:
35173519 if 33 <= data[p] && data[p] <= 126 {
35183520 goto st247
35193521 }
35203522 goto st0
35213523 st247:
35223524 if p++; p == pe {
3523 goto _testEof247
3524 }
3525 stCase247:
3525 goto _test_eof247
3526 }
3527 st_case_247:
35263528 if 33 <= data[p] && data[p] <= 126 {
35273529 goto st248
35283530 }
35293531 goto st0
35303532 st248:
35313533 if p++; p == pe {
3532 goto _testEof248
3533 }
3534 stCase248:
3534 goto _test_eof248
3535 }
3536 st_case_248:
35353537 if 33 <= data[p] && data[p] <= 126 {
35363538 goto st249
35373539 }
35383540 goto st0
35393541 st249:
35403542 if p++; p == pe {
3541 goto _testEof249
3542 }
3543 stCase249:
3543 goto _test_eof249
3544 }
3545 st_case_249:
35443546 if 33 <= data[p] && data[p] <= 126 {
35453547 goto st250
35463548 }
35473549 goto st0
35483550 st250:
35493551 if p++; p == pe {
3550 goto _testEof250
3551 }
3552 stCase250:
3552 goto _test_eof250
3553 }
3554 st_case_250:
35533555 if 33 <= data[p] && data[p] <= 126 {
35543556 goto st251
35553557 }
35563558 goto st0
35573559 st251:
35583560 if p++; p == pe {
3559 goto _testEof251
3560 }
3561 stCase251:
3561 goto _test_eof251
3562 }
3563 st_case_251:
35623564 if 33 <= data[p] && data[p] <= 126 {
35633565 goto st252
35643566 }
35653567 goto st0
35663568 st252:
35673569 if p++; p == pe {
3568 goto _testEof252
3569 }
3570 stCase252:
3570 goto _test_eof252
3571 }
3572 st_case_252:
35713573 if 33 <= data[p] && data[p] <= 126 {
35723574 goto st253
35733575 }
35743576 goto st0
35753577 st253:
35763578 if p++; p == pe {
3577 goto _testEof253
3578 }
3579 stCase253:
3579 goto _test_eof253
3580 }
3581 st_case_253:
35803582 if 33 <= data[p] && data[p] <= 126 {
35813583 goto st254
35823584 }
35833585 goto st0
35843586 st254:
35853587 if p++; p == pe {
3586 goto _testEof254
3587 }
3588 stCase254:
3588 goto _test_eof254
3589 }
3590 st_case_254:
35893591 if 33 <= data[p] && data[p] <= 126 {
35903592 goto st255
35913593 }
35923594 goto st0
35933595 st255:
35943596 if p++; p == pe {
3595 goto _testEof255
3596 }
3597 stCase255:
3597 goto _test_eof255
3598 }
3599 st_case_255:
35983600 if 33 <= data[p] && data[p] <= 126 {
35993601 goto st256
36003602 }
36013603 goto st0
36023604 st256:
36033605 if p++; p == pe {
3604 goto _testEof256
3605 }
3606 stCase256:
3606 goto _test_eof256
3607 }
3608 st_case_256:
36073609 if 33 <= data[p] && data[p] <= 126 {
36083610 goto st257
36093611 }
36103612 goto st0
36113613 st257:
36123614 if p++; p == pe {
3613 goto _testEof257
3614 }
3615 stCase257:
3615 goto _test_eof257
3616 }
3617 st_case_257:
36163618 if 33 <= data[p] && data[p] <= 126 {
36173619 goto st258
36183620 }
36193621 goto st0
36203622 st258:
36213623 if p++; p == pe {
3622 goto _testEof258
3623 }
3624 stCase258:
3624 goto _test_eof258
3625 }
3626 st_case_258:
36253627 if 33 <= data[p] && data[p] <= 126 {
36263628 goto st259
36273629 }
36283630 goto st0
36293631 st259:
36303632 if p++; p == pe {
3631 goto _testEof259
3632 }
3633 stCase259:
3633 goto _test_eof259
3634 }
3635 st_case_259:
36343636 if 33 <= data[p] && data[p] <= 126 {
36353637 goto st260
36363638 }
36373639 goto st0
36383640 st260:
36393641 if p++; p == pe {
3640 goto _testEof260
3641 }
3642 stCase260:
3642 goto _test_eof260
3643 }
3644 st_case_260:
36433645 if 33 <= data[p] && data[p] <= 126 {
36443646 goto st261
36453647 }
36463648 goto st0
36473649 st261:
36483650 if p++; p == pe {
3649 goto _testEof261
3650 }
3651 stCase261:
3651 goto _test_eof261
3652 }
3653 st_case_261:
36523654 if 33 <= data[p] && data[p] <= 126 {
36533655 goto st262
36543656 }
36553657 goto st0
36563658 st262:
36573659 if p++; p == pe {
3658 goto _testEof262
3659 }
3660 stCase262:
3660 goto _test_eof262
3661 }
3662 st_case_262:
36613663 if 33 <= data[p] && data[p] <= 126 {
36623664 goto st263
36633665 }
36643666 goto st0
36653667 st263:
36663668 if p++; p == pe {
3667 goto _testEof263
3668 }
3669 stCase263:
3669 goto _test_eof263
3670 }
3671 st_case_263:
36703672 if 33 <= data[p] && data[p] <= 126 {
36713673 goto st264
36723674 }
36733675 goto st0
36743676 st264:
36753677 if p++; p == pe {
3676 goto _testEof264
3677 }
3678 stCase264:
3678 goto _test_eof264
3679 }
3680 st_case_264:
36793681 if 33 <= data[p] && data[p] <= 126 {
36803682 goto st265
36813683 }
36823684 goto st0
36833685 st265:
36843686 if p++; p == pe {
3685 goto _testEof265
3686 }
3687 stCase265:
3687 goto _test_eof265
3688 }
3689 st_case_265:
36883690 if 33 <= data[p] && data[p] <= 126 {
36893691 goto st266
36903692 }
36913693 goto st0
36923694 st266:
36933695 if p++; p == pe {
3694 goto _testEof266
3695 }
3696 stCase266:
3696 goto _test_eof266
3697 }
3698 st_case_266:
36973699 if 33 <= data[p] && data[p] <= 126 {
36983700 goto st267
36993701 }
37003702 goto st0
37013703 st267:
37023704 if p++; p == pe {
3703 goto _testEof267
3704 }
3705 stCase267:
3705 goto _test_eof267
3706 }
3707 st_case_267:
37063708 if 33 <= data[p] && data[p] <= 126 {
37073709 goto st268
37083710 }
37093711 goto st0
37103712 st268:
37113713 if p++; p == pe {
3712 goto _testEof268
3713 }
3714 stCase268:
3714 goto _test_eof268
3715 }
3716 st_case_268:
37153717 if 33 <= data[p] && data[p] <= 126 {
37163718 goto st269
37173719 }
37183720 goto st0
37193721 st269:
37203722 if p++; p == pe {
3721 goto _testEof269
3722 }
3723 stCase269:
3723 goto _test_eof269
3724 }
3725 st_case_269:
37243726 if 33 <= data[p] && data[p] <= 126 {
37253727 goto st270
37263728 }
37273729 goto st0
37283730 st270:
37293731 if p++; p == pe {
3730 goto _testEof270
3731 }
3732 stCase270:
3732 goto _test_eof270
3733 }
3734 st_case_270:
37333735 if 33 <= data[p] && data[p] <= 126 {
37343736 goto st271
37353737 }
37363738 goto st0
37373739 st271:
37383740 if p++; p == pe {
3739 goto _testEof271
3740 }
3741 stCase271:
3741 goto _test_eof271
3742 }
3743 st_case_271:
37423744 if 33 <= data[p] && data[p] <= 126 {
37433745 goto st272
37443746 }
37453747 goto st0
37463748 st272:
37473749 if p++; p == pe {
3748 goto _testEof272
3749 }
3750 stCase272:
3750 goto _test_eof272
3751 }
3752 st_case_272:
37513753 if 33 <= data[p] && data[p] <= 126 {
37523754 goto st273
37533755 }
37543756 goto st0
37553757 st273:
37563758 if p++; p == pe {
3757 goto _testEof273
3758 }
3759 stCase273:
3759 goto _test_eof273
3760 }
3761 st_case_273:
37603762 if 33 <= data[p] && data[p] <= 126 {
37613763 goto st274
37623764 }
37633765 goto st0
37643766 st274:
37653767 if p++; p == pe {
3766 goto _testEof274
3767 }
3768 stCase274:
3768 goto _test_eof274
3769 }
3770 st_case_274:
37693771 if 33 <= data[p] && data[p] <= 126 {
37703772 goto st275
37713773 }
37723774 goto st0
37733775 st275:
37743776 if p++; p == pe {
3775 goto _testEof275
3776 }
3777 stCase275:
3777 goto _test_eof275
3778 }
3779 st_case_275:
37783780 if 33 <= data[p] && data[p] <= 126 {
37793781 goto st276
37803782 }
37813783 goto st0
37823784 st276:
37833785 if p++; p == pe {
3784 goto _testEof276
3785 }
3786 stCase276:
3786 goto _test_eof276
3787 }
3788 st_case_276:
37873789 if 33 <= data[p] && data[p] <= 126 {
37883790 goto st277
37893791 }
37903792 goto st0
37913793 st277:
37923794 if p++; p == pe {
3793 goto _testEof277
3794 }
3795 stCase277:
3795 goto _test_eof277
3796 }
3797 st_case_277:
37963798 if 33 <= data[p] && data[p] <= 126 {
37973799 goto st278
37983800 }
37993801 goto st0
38003802 st278:
38013803 if p++; p == pe {
3802 goto _testEof278
3803 }
3804 stCase278:
3804 goto _test_eof278
3805 }
3806 st_case_278:
38053807 if 33 <= data[p] && data[p] <= 126 {
38063808 goto st279
38073809 }
38083810 goto st0
38093811 st279:
38103812 if p++; p == pe {
3811 goto _testEof279
3812 }
3813 stCase279:
3813 goto _test_eof279
3814 }
3815 st_case_279:
38143816 if 33 <= data[p] && data[p] <= 126 {
38153817 goto st280
38163818 }
38173819 goto st0
38183820 st280:
38193821 if p++; p == pe {
3820 goto _testEof280
3821 }
3822 stCase280:
3822 goto _test_eof280
3823 }
3824 st_case_280:
38233825 if 33 <= data[p] && data[p] <= 126 {
38243826 goto st281
38253827 }
38263828 goto st0
38273829 st281:
38283830 if p++; p == pe {
3829 goto _testEof281
3830 }
3831 stCase281:
3831 goto _test_eof281
3832 }
3833 st_case_281:
38323834 if 33 <= data[p] && data[p] <= 126 {
38333835 goto st282
38343836 }
38353837 goto st0
38363838 st282:
38373839 if p++; p == pe {
3838 goto _testEof282
3839 }
3840 stCase282:
3840 goto _test_eof282
3841 }
3842 st_case_282:
38413843 if 33 <= data[p] && data[p] <= 126 {
38423844 goto st283
38433845 }
38443846 goto st0
38453847 st283:
38463848 if p++; p == pe {
3847 goto _testEof283
3848 }
3849 stCase283:
3849 goto _test_eof283
3850 }
3851 st_case_283:
38503852 if 33 <= data[p] && data[p] <= 126 {
38513853 goto st284
38523854 }
38533855 goto st0
38543856 st284:
38553857 if p++; p == pe {
3856 goto _testEof284
3857 }
3858 stCase284:
3858 goto _test_eof284
3859 }
3860 st_case_284:
38593861 if 33 <= data[p] && data[p] <= 126 {
38603862 goto st285
38613863 }
38623864 goto st0
38633865 st285:
38643866 if p++; p == pe {
3865 goto _testEof285
3866 }
3867 stCase285:
3867 goto _test_eof285
3868 }
3869 st_case_285:
38683870 if 33 <= data[p] && data[p] <= 126 {
38693871 goto st286
38703872 }
38713873 goto st0
38723874 st286:
38733875 if p++; p == pe {
3874 goto _testEof286
3875 }
3876 stCase286:
3876 goto _test_eof286
3877 }
3878 st_case_286:
38773879 if 33 <= data[p] && data[p] <= 126 {
38783880 goto st287
38793881 }
38803882 goto st0
38813883 st287:
38823884 if p++; p == pe {
3883 goto _testEof287
3884 }
3885 stCase287:
3885 goto _test_eof287
3886 }
3887 st_case_287:
38863888 if 33 <= data[p] && data[p] <= 126 {
38873889 goto st288
38883890 }
38893891 goto st0
38903892 st288:
38913893 if p++; p == pe {
3892 goto _testEof288
3893 }
3894 stCase288:
3894 goto _test_eof288
3895 }
3896 st_case_288:
38953897 if 33 <= data[p] && data[p] <= 126 {
38963898 goto st289
38973899 }
38983900 goto st0
38993901 st289:
39003902 if p++; p == pe {
3901 goto _testEof289
3902 }
3903 stCase289:
3903 goto _test_eof289
3904 }
3905 st_case_289:
39043906 if 33 <= data[p] && data[p] <= 126 {
39053907 goto st290
39063908 }
39073909 goto st0
39083910 st290:
39093911 if p++; p == pe {
3910 goto _testEof290
3911 }
3912 stCase290:
3912 goto _test_eof290
3913 }
3914 st_case_290:
39133915 if 33 <= data[p] && data[p] <= 126 {
39143916 goto st291
39153917 }
39163918 goto st0
39173919 st291:
39183920 if p++; p == pe {
3919 goto _testEof291
3920 }
3921 stCase291:
3921 goto _test_eof291
3922 }
3923 st_case_291:
39223924 if 33 <= data[p] && data[p] <= 126 {
39233925 goto st292
39243926 }
39253927 goto st0
39263928 st292:
39273929 if p++; p == pe {
3928 goto _testEof292
3929 }
3930 stCase292:
3930 goto _test_eof292
3931 }
3932 st_case_292:
39313933 if 33 <= data[p] && data[p] <= 126 {
39323934 goto st293
39333935 }
39343936 goto st0
39353937 st293:
39363938 if p++; p == pe {
3937 goto _testEof293
3938 }
3939 stCase293:
3939 goto _test_eof293
3940 }
3941 st_case_293:
39403942 if 33 <= data[p] && data[p] <= 126 {
39413943 goto st294
39423944 }
39433945 goto st0
39443946 st294:
39453947 if p++; p == pe {
3946 goto _testEof294
3947 }
3948 stCase294:
3948 goto _test_eof294
3949 }
3950 st_case_294:
39493951 if 33 <= data[p] && data[p] <= 126 {
39503952 goto st295
39513953 }
39523954 goto st0
39533955 st295:
39543956 if p++; p == pe {
3955 goto _testEof295
3956 }
3957 stCase295:
3957 goto _test_eof295
3958 }
3959 st_case_295:
39583960 if 33 <= data[p] && data[p] <= 126 {
39593961 goto st296
39603962 }
39613963 goto st0
39623964 st296:
39633965 if p++; p == pe {
3964 goto _testEof296
3965 }
3966 stCase296:
3966 goto _test_eof296
3967 }
3968 st_case_296:
39673969 if 33 <= data[p] && data[p] <= 126 {
39683970 goto st297
39693971 }
39703972 goto st0
39713973 st297:
39723974 if p++; p == pe {
3973 goto _testEof297
3974 }
3975 stCase297:
3975 goto _test_eof297
3976 }
3977 st_case_297:
39763978 if 33 <= data[p] && data[p] <= 126 {
39773979 goto st298
39783980 }
39793981 goto st0
39803982 st298:
39813983 if p++; p == pe {
3982 goto _testEof298
3983 }
3984 stCase298:
3984 goto _test_eof298
3985 }
3986 st_case_298:
39853987 if 33 <= data[p] && data[p] <= 126 {
39863988 goto st299
39873989 }
39883990 goto st0
39893991 st299:
39903992 if p++; p == pe {
3991 goto _testEof299
3992 }
3993 stCase299:
3993 goto _test_eof299
3994 }
3995 st_case_299:
39943996 if 33 <= data[p] && data[p] <= 126 {
39953997 goto st300
39963998 }
39973999 goto st0
39984000 st300:
39994001 if p++; p == pe {
4000 goto _testEof300
4001 }
4002 stCase300:
4002 goto _test_eof300
4003 }
4004 st_case_300:
40034005 if 33 <= data[p] && data[p] <= 126 {
40044006 goto st301
40054007 }
40064008 goto st0
40074009 st301:
40084010 if p++; p == pe {
4009 goto _testEof301
4010 }
4011 stCase301:
4011 goto _test_eof301
4012 }
4013 st_case_301:
40124014 if 33 <= data[p] && data[p] <= 126 {
40134015 goto st302
40144016 }
40154017 goto st0
40164018 st302:
40174019 if p++; p == pe {
4018 goto _testEof302
4019 }
4020 stCase302:
4020 goto _test_eof302
4021 }
4022 st_case_302:
40214023 if 33 <= data[p] && data[p] <= 126 {
40224024 goto st303
40234025 }
40244026 goto st0
40254027 st303:
40264028 if p++; p == pe {
4027 goto _testEof303
4028 }
4029 stCase303:
4029 goto _test_eof303
4030 }
4031 st_case_303:
40304032 if 33 <= data[p] && data[p] <= 126 {
40314033 goto st304
40324034 }
40334035 goto st0
40344036 st304:
40354037 if p++; p == pe {
4036 goto _testEof304
4037 }
4038 stCase304:
4038 goto _test_eof304
4039 }
4040 st_case_304:
40394041 if 33 <= data[p] && data[p] <= 126 {
40404042 goto st305
40414043 }
40424044 goto st0
40434045 st305:
40444046 if p++; p == pe {
4045 goto _testEof305
4046 }
4047 stCase305:
4047 goto _test_eof305
4048 }
4049 st_case_305:
40484050 if 33 <= data[p] && data[p] <= 126 {
40494051 goto st306
40504052 }
40514053 goto st0
40524054 st306:
40534055 if p++; p == pe {
4054 goto _testEof306
4055 }
4056 stCase306:
4056 goto _test_eof306
4057 }
4058 st_case_306:
40574059 if 33 <= data[p] && data[p] <= 126 {
40584060 goto st307
40594061 }
40604062 goto st0
40614063 st307:
40624064 if p++; p == pe {
4063 goto _testEof307
4064 }
4065 stCase307:
4065 goto _test_eof307
4066 }
4067 st_case_307:
40664068 if 33 <= data[p] && data[p] <= 126 {
40674069 goto st308
40684070 }
40694071 goto st0
40704072 st308:
40714073 if p++; p == pe {
4072 goto _testEof308
4073 }
4074 stCase308:
4074 goto _test_eof308
4075 }
4076 st_case_308:
40754077 if 33 <= data[p] && data[p] <= 126 {
40764078 goto st309
40774079 }
40784080 goto st0
40794081 st309:
40804082 if p++; p == pe {
4081 goto _testEof309
4082 }
4083 stCase309:
4083 goto _test_eof309
4084 }
4085 st_case_309:
40844086 if 33 <= data[p] && data[p] <= 126 {
40854087 goto st310
40864088 }
40874089 goto st0
40884090 st310:
40894091 if p++; p == pe {
4090 goto _testEof310
4091 }
4092 stCase310:
4092 goto _test_eof310
4093 }
4094 st_case_310:
40934095 if 33 <= data[p] && data[p] <= 126 {
40944096 goto st311
40954097 }
40964098 goto st0
40974099 st311:
40984100 if p++; p == pe {
4099 goto _testEof311
4100 }
4101 stCase311:
4101 goto _test_eof311
4102 }
4103 st_case_311:
41024104 if 33 <= data[p] && data[p] <= 126 {
41034105 goto st312
41044106 }
41054107 goto st0
41064108 st312:
41074109 if p++; p == pe {
4108 goto _testEof312
4109 }
4110 stCase312:
4110 goto _test_eof312
4111 }
4112 st_case_312:
41114113 if 33 <= data[p] && data[p] <= 126 {
41124114 goto st313
41134115 }
41144116 goto st0
41154117 st313:
41164118 if p++; p == pe {
4117 goto _testEof313
4118 }
4119 stCase313:
4119 goto _test_eof313
4120 }
4121 st_case_313:
41204122 if 33 <= data[p] && data[p] <= 126 {
41214123 goto st314
41224124 }
41234125 goto st0
41244126 st314:
41254127 if p++; p == pe {
4126 goto _testEof314
4127 }
4128 stCase314:
4128 goto _test_eof314
4129 }
4130 st_case_314:
41294131 if 33 <= data[p] && data[p] <= 126 {
41304132 goto st315
41314133 }
41324134 goto st0
41334135 st315:
41344136 if p++; p == pe {
4135 goto _testEof315
4136 }
4137 stCase315:
4137 goto _test_eof315
4138 }
4139 st_case_315:
41384140 if 33 <= data[p] && data[p] <= 126 {
41394141 goto st316
41404142 }
41414143 goto st0
41424144 st316:
41434145 if p++; p == pe {
4144 goto _testEof316
4145 }
4146 stCase316:
4147 goto st0
4148 stCase46:
4146 goto _test_eof316
4147 }
4148 st_case_316:
4149 goto st0
4150 st_case_46:
41494151 if 33 <= data[p] && data[p] <= 126 {
41504152 goto tr42
41514153 }
41574159 goto st317
41584160 st317:
41594161 if p++; p == pe {
4160 goto _testEof317
4161 }
4162 stCase317:
4162 goto _test_eof317
4163 }
4164 st_case_317:
41634165 if 33 <= data[p] && data[p] <= 126 {
41644166 goto st318
41654167 }
41664168 goto st0
41674169 st318:
41684170 if p++; p == pe {
4169 goto _testEof318
4170 }
4171 stCase318:
4171 goto _test_eof318
4172 }
4173 st_case_318:
41724174 if 33 <= data[p] && data[p] <= 126 {
41734175 goto st319
41744176 }
41754177 goto st0
41764178 st319:
41774179 if p++; p == pe {
4178 goto _testEof319
4179 }
4180 stCase319:
4180 goto _test_eof319
4181 }
4182 st_case_319:
41814183 if 33 <= data[p] && data[p] <= 126 {
41824184 goto st320
41834185 }
41844186 goto st0
41854187 st320:
41864188 if p++; p == pe {
4187 goto _testEof320
4188 }
4189 stCase320:
4189 goto _test_eof320
4190 }
4191 st_case_320:
41904192 if 33 <= data[p] && data[p] <= 126 {
41914193 goto st321
41924194 }
41934195 goto st0
41944196 st321:
41954197 if p++; p == pe {
4196 goto _testEof321
4197 }
4198 stCase321:
4198 goto _test_eof321
4199 }
4200 st_case_321:
41994201 if 33 <= data[p] && data[p] <= 126 {
42004202 goto st322
42014203 }
42024204 goto st0
42034205 st322:
42044206 if p++; p == pe {
4205 goto _testEof322
4206 }
4207 stCase322:
4207 goto _test_eof322
4208 }
4209 st_case_322:
42084210 if 33 <= data[p] && data[p] <= 126 {
42094211 goto st323
42104212 }
42114213 goto st0
42124214 st323:
42134215 if p++; p == pe {
4214 goto _testEof323
4215 }
4216 stCase323:
4216 goto _test_eof323
4217 }
4218 st_case_323:
42174219 if 33 <= data[p] && data[p] <= 126 {
42184220 goto st324
42194221 }
42204222 goto st0
42214223 st324:
42224224 if p++; p == pe {
4223 goto _testEof324
4224 }
4225 stCase324:
4225 goto _test_eof324
4226 }
4227 st_case_324:
42264228 if 33 <= data[p] && data[p] <= 126 {
42274229 goto st325
42284230 }
42294231 goto st0
42304232 st325:
42314233 if p++; p == pe {
4232 goto _testEof325
4233 }
4234 stCase325:
4234 goto _test_eof325
4235 }
4236 st_case_325:
42354237 if 33 <= data[p] && data[p] <= 126 {
42364238 goto st326
42374239 }
42384240 goto st0
42394241 st326:
42404242 if p++; p == pe {
4241 goto _testEof326
4242 }
4243 stCase326:
4243 goto _test_eof326
4244 }
4245 st_case_326:
42444246 if 33 <= data[p] && data[p] <= 126 {
42454247 goto st327
42464248 }
42474249 goto st0
42484250 st327:
42494251 if p++; p == pe {
4250 goto _testEof327
4251 }
4252 stCase327:
4252 goto _test_eof327
4253 }
4254 st_case_327:
42534255 if 33 <= data[p] && data[p] <= 126 {
42544256 goto st328
42554257 }
42564258 goto st0
42574259 st328:
42584260 if p++; p == pe {
4259 goto _testEof328
4260 }
4261 stCase328:
4261 goto _test_eof328
4262 }
4263 st_case_328:
42624264 if 33 <= data[p] && data[p] <= 126 {
42634265 goto st329
42644266 }
42654267 goto st0
42664268 st329:
42674269 if p++; p == pe {
4268 goto _testEof329
4269 }
4270 stCase329:
4270 goto _test_eof329
4271 }
4272 st_case_329:
42714273 if 33 <= data[p] && data[p] <= 126 {
42724274 goto st330
42734275 }
42744276 goto st0
42754277 st330:
42764278 if p++; p == pe {
4277 goto _testEof330
4278 }
4279 stCase330:
4279 goto _test_eof330
4280 }
4281 st_case_330:
42804282 if 33 <= data[p] && data[p] <= 126 {
42814283 goto st331
42824284 }
42834285 goto st0
42844286 st331:
42854287 if p++; p == pe {
4286 goto _testEof331
4287 }
4288 stCase331:
4288 goto _test_eof331
4289 }
4290 st_case_331:
42894291 if 33 <= data[p] && data[p] <= 126 {
42904292 goto st332
42914293 }
42924294 goto st0
42934295 st332:
42944296 if p++; p == pe {
4295 goto _testEof332
4296 }
4297 stCase332:
4297 goto _test_eof332
4298 }
4299 st_case_332:
42984300 if 33 <= data[p] && data[p] <= 126 {
42994301 goto st333
43004302 }
43014303 goto st0
43024304 st333:
43034305 if p++; p == pe {
4304 goto _testEof333
4305 }
4306 stCase333:
4306 goto _test_eof333
4307 }
4308 st_case_333:
43074309 if 33 <= data[p] && data[p] <= 126 {
43084310 goto st334
43094311 }
43104312 goto st0
43114313 st334:
43124314 if p++; p == pe {
4313 goto _testEof334
4314 }
4315 stCase334:
4315 goto _test_eof334
4316 }
4317 st_case_334:
43164318 if 33 <= data[p] && data[p] <= 126 {
43174319 goto st335
43184320 }
43194321 goto st0
43204322 st335:
43214323 if p++; p == pe {
4322 goto _testEof335
4323 }
4324 stCase335:
4324 goto _test_eof335
4325 }
4326 st_case_335:
43254327 if 33 <= data[p] && data[p] <= 126 {
43264328 goto st336
43274329 }
43284330 goto st0
43294331 st336:
43304332 if p++; p == pe {
4331 goto _testEof336
4332 }
4333 stCase336:
4333 goto _test_eof336
4334 }
4335 st_case_336:
43344336 if 33 <= data[p] && data[p] <= 126 {
43354337 goto st337
43364338 }
43374339 goto st0
43384340 st337:
43394341 if p++; p == pe {
4340 goto _testEof337
4341 }
4342 stCase337:
4342 goto _test_eof337
4343 }
4344 st_case_337:
43434345 if 33 <= data[p] && data[p] <= 126 {
43444346 goto st338
43454347 }
43464348 goto st0
43474349 st338:
43484350 if p++; p == pe {
4349 goto _testEof338
4350 }
4351 stCase338:
4351 goto _test_eof338
4352 }
4353 st_case_338:
43524354 if 33 <= data[p] && data[p] <= 126 {
43534355 goto st339
43544356 }
43554357 goto st0
43564358 st339:
43574359 if p++; p == pe {
4358 goto _testEof339
4359 }
4360 stCase339:
4360 goto _test_eof339
4361 }
4362 st_case_339:
43614363 if 33 <= data[p] && data[p] <= 126 {
43624364 goto st340
43634365 }
43644366 goto st0
43654367 st340:
43664368 if p++; p == pe {
4367 goto _testEof340
4368 }
4369 stCase340:
4369 goto _test_eof340
4370 }
4371 st_case_340:
43704372 if 33 <= data[p] && data[p] <= 126 {
43714373 goto st341
43724374 }
43734375 goto st0
43744376 st341:
43754377 if p++; p == pe {
4376 goto _testEof341
4377 }
4378 stCase341:
4378 goto _test_eof341
4379 }
4380 st_case_341:
43794381 if 33 <= data[p] && data[p] <= 126 {
43804382 goto st342
43814383 }
43824384 goto st0
43834385 st342:
43844386 if p++; p == pe {
4385 goto _testEof342
4386 }
4387 stCase342:
4387 goto _test_eof342
4388 }
4389 st_case_342:
43884390 if 33 <= data[p] && data[p] <= 126 {
43894391 goto st343
43904392 }
43914393 goto st0
43924394 st343:
43934395 if p++; p == pe {
4394 goto _testEof343
4395 }
4396 stCase343:
4396 goto _test_eof343
4397 }
4398 st_case_343:
43974399 if 33 <= data[p] && data[p] <= 126 {
43984400 goto st344
43994401 }
44004402 goto st0
44014403 st344:
44024404 if p++; p == pe {
4403 goto _testEof344
4404 }
4405 stCase344:
4405 goto _test_eof344
4406 }
4407 st_case_344:
44064408 if 33 <= data[p] && data[p] <= 126 {
44074409 goto st345
44084410 }
44094411 goto st0
44104412 st345:
44114413 if p++; p == pe {
4412 goto _testEof345
4413 }
4414 stCase345:
4414 goto _test_eof345
4415 }
4416 st_case_345:
44154417 if 33 <= data[p] && data[p] <= 126 {
44164418 goto st346
44174419 }
44184420 goto st0
44194421 st346:
44204422 if p++; p == pe {
4421 goto _testEof346
4422 }
4423 stCase346:
4423 goto _test_eof346
4424 }
4425 st_case_346:
44244426 if 33 <= data[p] && data[p] <= 126 {
44254427 goto st347
44264428 }
44274429 goto st0
44284430 st347:
44294431 if p++; p == pe {
4430 goto _testEof347
4431 }
4432 stCase347:
4432 goto _test_eof347
4433 }
4434 st_case_347:
44334435 if 33 <= data[p] && data[p] <= 126 {
44344436 goto st348
44354437 }
44364438 goto st0
44374439 st348:
44384440 if p++; p == pe {
4439 goto _testEof348
4440 }
4441 stCase348:
4441 goto _test_eof348
4442 }
4443 st_case_348:
44424444 if 33 <= data[p] && data[p] <= 126 {
44434445 goto st349
44444446 }
44454447 goto st0
44464448 st349:
44474449 if p++; p == pe {
4448 goto _testEof349
4449 }
4450 stCase349:
4450 goto _test_eof349
4451 }
4452 st_case_349:
44514453 if 33 <= data[p] && data[p] <= 126 {
44524454 goto st350
44534455 }
44544456 goto st0
44554457 st350:
44564458 if p++; p == pe {
4457 goto _testEof350
4458 }
4459 stCase350:
4459 goto _test_eof350
4460 }
4461 st_case_350:
44604462 if 33 <= data[p] && data[p] <= 126 {
44614463 goto st351
44624464 }
44634465 goto st0
44644466 st351:
44654467 if p++; p == pe {
4466 goto _testEof351
4467 }
4468 stCase351:
4468 goto _test_eof351
4469 }
4470 st_case_351:
44694471 if 33 <= data[p] && data[p] <= 126 {
44704472 goto st352
44714473 }
44724474 goto st0
44734475 st352:
44744476 if p++; p == pe {
4475 goto _testEof352
4476 }
4477 stCase352:
4477 goto _test_eof352
4478 }
4479 st_case_352:
44784480 if 33 <= data[p] && data[p] <= 126 {
44794481 goto st353
44804482 }
44814483 goto st0
44824484 st353:
44834485 if p++; p == pe {
4484 goto _testEof353
4485 }
4486 stCase353:
4486 goto _test_eof353
4487 }
4488 st_case_353:
44874489 if 33 <= data[p] && data[p] <= 126 {
44884490 goto st354
44894491 }
44904492 goto st0
44914493 st354:
44924494 if p++; p == pe {
4493 goto _testEof354
4494 }
4495 stCase354:
4495 goto _test_eof354
4496 }
4497 st_case_354:
44964498 if 33 <= data[p] && data[p] <= 126 {
44974499 goto st355
44984500 }
44994501 goto st0
45004502 st355:
45014503 if p++; p == pe {
4502 goto _testEof355
4503 }
4504 stCase355:
4504 goto _test_eof355
4505 }
4506 st_case_355:
45054507 if 33 <= data[p] && data[p] <= 126 {
45064508 goto st356
45074509 }
45084510 goto st0
45094511 st356:
45104512 if p++; p == pe {
4511 goto _testEof356
4512 }
4513 stCase356:
4513 goto _test_eof356
4514 }
4515 st_case_356:
45144516 if 33 <= data[p] && data[p] <= 126 {
45154517 goto st357
45164518 }
45174519 goto st0
45184520 st357:
45194521 if p++; p == pe {
4520 goto _testEof357
4521 }
4522 stCase357:
4522 goto _test_eof357
4523 }
4524 st_case_357:
45234525 if 33 <= data[p] && data[p] <= 126 {
45244526 goto st358
45254527 }
45264528 goto st0
45274529 st358:
45284530 if p++; p == pe {
4529 goto _testEof358
4530 }
4531 stCase358:
4531 goto _test_eof358
4532 }
4533 st_case_358:
45324534 if 33 <= data[p] && data[p] <= 126 {
45334535 goto st359
45344536 }
45354537 goto st0
45364538 st359:
45374539 if p++; p == pe {
4538 goto _testEof359
4539 }
4540 stCase359:
4540 goto _test_eof359
4541 }
4542 st_case_359:
45414543 if 33 <= data[p] && data[p] <= 126 {
45424544 goto st360
45434545 }
45444546 goto st0
45454547 st360:
45464548 if p++; p == pe {
4547 goto _testEof360
4548 }
4549 stCase360:
4549 goto _test_eof360
4550 }
4551 st_case_360:
45504552 if 33 <= data[p] && data[p] <= 126 {
45514553 goto st361
45524554 }
45534555 goto st0
45544556 st361:
45554557 if p++; p == pe {
4556 goto _testEof361
4557 }
4558 stCase361:
4558 goto _test_eof361
4559 }
4560 st_case_361:
45594561 if 33 <= data[p] && data[p] <= 126 {
45604562 goto st362
45614563 }
45624564 goto st0
45634565 st362:
45644566 if p++; p == pe {
4565 goto _testEof362
4566 }
4567 stCase362:
4567 goto _test_eof362
4568 }
4569 st_case_362:
45684570 if 33 <= data[p] && data[p] <= 126 {
45694571 goto st363
45704572 }
45714573 goto st0
45724574 st363:
45734575 if p++; p == pe {
4574 goto _testEof363
4575 }
4576 stCase363:
4576 goto _test_eof363
4577 }
4578 st_case_363:
45774579 if 33 <= data[p] && data[p] <= 126 {
45784580 goto st364
45794581 }
45804582 goto st0
45814583 st364:
45824584 if p++; p == pe {
4583 goto _testEof364
4584 }
4585 stCase364:
4586 goto st0
4587 stCase47:
4585 goto _test_eof364
4586 }
4587 st_case_364:
4588 goto st0
4589 st_case_47:
45884590 if 33 <= data[p] && data[p] <= 126 {
45894591 goto tr43
45904592 }
45964598 goto st365
45974599 st365:
45984600 if p++; p == pe {
4599 goto _testEof365
4600 }
4601 stCase365:
4601 goto _test_eof365
4602 }
4603 st_case_365:
46024604 if 33 <= data[p] && data[p] <= 126 {
46034605 goto st366
46044606 }
46054607 goto st0
46064608 st366:
46074609 if p++; p == pe {
4608 goto _testEof366
4609 }
4610 stCase366:
4610 goto _test_eof366
4611 }
4612 st_case_366:
46114613 if 33 <= data[p] && data[p] <= 126 {
46124614 goto st367
46134615 }
46144616 goto st0
46154617 st367:
46164618 if p++; p == pe {
4617 goto _testEof367
4618 }
4619 stCase367:
4619 goto _test_eof367
4620 }
4621 st_case_367:
46204622 if 33 <= data[p] && data[p] <= 126 {
46214623 goto st368
46224624 }
46234625 goto st0
46244626 st368:
46254627 if p++; p == pe {
4626 goto _testEof368
4627 }
4628 stCase368:
4628 goto _test_eof368
4629 }
4630 st_case_368:
46294631 if 33 <= data[p] && data[p] <= 126 {
46304632 goto st369
46314633 }
46324634 goto st0
46334635 st369:
46344636 if p++; p == pe {
4635 goto _testEof369
4636 }
4637 stCase369:
4637 goto _test_eof369
4638 }
4639 st_case_369:
46384640 if 33 <= data[p] && data[p] <= 126 {
46394641 goto st370
46404642 }
46414643 goto st0
46424644 st370:
46434645 if p++; p == pe {
4644 goto _testEof370
4645 }
4646 stCase370:
4646 goto _test_eof370
4647 }
4648 st_case_370:
46474649 if 33 <= data[p] && data[p] <= 126 {
46484650 goto st371
46494651 }
46504652 goto st0
46514653 st371:
46524654 if p++; p == pe {
4653 goto _testEof371
4654 }
4655 stCase371:
4655 goto _test_eof371
4656 }
4657 st_case_371:
46564658 if 33 <= data[p] && data[p] <= 126 {
46574659 goto st372
46584660 }
46594661 goto st0
46604662 st372:
46614663 if p++; p == pe {
4662 goto _testEof372
4663 }
4664 stCase372:
4664 goto _test_eof372
4665 }
4666 st_case_372:
46654667 if 33 <= data[p] && data[p] <= 126 {
46664668 goto st373
46674669 }
46684670 goto st0
46694671 st373:
46704672 if p++; p == pe {
4671 goto _testEof373
4672 }
4673 stCase373:
4673 goto _test_eof373
4674 }
4675 st_case_373:
46744676 if 33 <= data[p] && data[p] <= 126 {
46754677 goto st374
46764678 }
46774679 goto st0
46784680 st374:
46794681 if p++; p == pe {
4680 goto _testEof374
4681 }
4682 stCase374:
4682 goto _test_eof374
4683 }
4684 st_case_374:
46834685 if 33 <= data[p] && data[p] <= 126 {
46844686 goto st375
46854687 }
46864688 goto st0
46874689 st375:
46884690 if p++; p == pe {
4689 goto _testEof375
4690 }
4691 stCase375:
4691 goto _test_eof375
4692 }
4693 st_case_375:
46924694 if 33 <= data[p] && data[p] <= 126 {
46934695 goto st376
46944696 }
46954697 goto st0
46964698 st376:
46974699 if p++; p == pe {
4698 goto _testEof376
4699 }
4700 stCase376:
4700 goto _test_eof376
4701 }
4702 st_case_376:
47014703 if 33 <= data[p] && data[p] <= 126 {
47024704 goto st377
47034705 }
47044706 goto st0
47054707 st377:
47064708 if p++; p == pe {
4707 goto _testEof377
4708 }
4709 stCase377:
4709 goto _test_eof377
4710 }
4711 st_case_377:
47104712 if 33 <= data[p] && data[p] <= 126 {
47114713 goto st378
47124714 }
47134715 goto st0
47144716 st378:
47154717 if p++; p == pe {
4716 goto _testEof378
4717 }
4718 stCase378:
4718 goto _test_eof378
4719 }
4720 st_case_378:
47194721 if 33 <= data[p] && data[p] <= 126 {
47204722 goto st379
47214723 }
47224724 goto st0
47234725 st379:
47244726 if p++; p == pe {
4725 goto _testEof379
4726 }
4727 stCase379:
4727 goto _test_eof379
4728 }
4729 st_case_379:
47284730 if 33 <= data[p] && data[p] <= 126 {
47294731 goto st380
47304732 }
47314733 goto st0
47324734 st380:
47334735 if p++; p == pe {
4734 goto _testEof380
4735 }
4736 stCase380:
4736 goto _test_eof380
4737 }
4738 st_case_380:
47374739 if 33 <= data[p] && data[p] <= 126 {
47384740 goto st381
47394741 }
47404742 goto st0
47414743 st381:
47424744 if p++; p == pe {
4743 goto _testEof381
4744 }
4745 stCase381:
4745 goto _test_eof381
4746 }
4747 st_case_381:
47464748 if 33 <= data[p] && data[p] <= 126 {
47474749 goto st382
47484750 }
47494751 goto st0
47504752 st382:
47514753 if p++; p == pe {
4752 goto _testEof382
4753 }
4754 stCase382:
4754 goto _test_eof382
4755 }
4756 st_case_382:
47554757 if 33 <= data[p] && data[p] <= 126 {
47564758 goto st383
47574759 }
47584760 goto st0
47594761 st383:
47604762 if p++; p == pe {
4761 goto _testEof383
4762 }
4763 stCase383:
4763 goto _test_eof383
4764 }
4765 st_case_383:
47644766 if 33 <= data[p] && data[p] <= 126 {
47654767 goto st384
47664768 }
47674769 goto st0
47684770 st384:
47694771 if p++; p == pe {
4770 goto _testEof384
4771 }
4772 stCase384:
4772 goto _test_eof384
4773 }
4774 st_case_384:
47734775 if 33 <= data[p] && data[p] <= 126 {
47744776 goto st385
47754777 }
47764778 goto st0
47774779 st385:
47784780 if p++; p == pe {
4779 goto _testEof385
4780 }
4781 stCase385:
4781 goto _test_eof385
4782 }
4783 st_case_385:
47824784 if 33 <= data[p] && data[p] <= 126 {
47834785 goto st386
47844786 }
47854787 goto st0
47864788 st386:
47874789 if p++; p == pe {
4788 goto _testEof386
4789 }
4790 stCase386:
4790 goto _test_eof386
4791 }
4792 st_case_386:
47914793 if 33 <= data[p] && data[p] <= 126 {
47924794 goto st387
47934795 }
47944796 goto st0
47954797 st387:
47964798 if p++; p == pe {
4797 goto _testEof387
4798 }
4799 stCase387:
4799 goto _test_eof387
4800 }
4801 st_case_387:
48004802 if 33 <= data[p] && data[p] <= 126 {
48014803 goto st388
48024804 }
48034805 goto st0
48044806 st388:
48054807 if p++; p == pe {
4806 goto _testEof388
4807 }
4808 stCase388:
4808 goto _test_eof388
4809 }
4810 st_case_388:
48094811 if 33 <= data[p] && data[p] <= 126 {
48104812 goto st389
48114813 }
48124814 goto st0
48134815 st389:
48144816 if p++; p == pe {
4815 goto _testEof389
4816 }
4817 stCase389:
4817 goto _test_eof389
4818 }
4819 st_case_389:
48184820 if 33 <= data[p] && data[p] <= 126 {
48194821 goto st390
48204822 }
48214823 goto st0
48224824 st390:
48234825 if p++; p == pe {
4824 goto _testEof390
4825 }
4826 stCase390:
4826 goto _test_eof390
4827 }
4828 st_case_390:
48274829 if 33 <= data[p] && data[p] <= 126 {
48284830 goto st391
48294831 }
48304832 goto st0
48314833 st391:
48324834 if p++; p == pe {
4833 goto _testEof391
4834 }
4835 stCase391:
4835 goto _test_eof391
4836 }
4837 st_case_391:
48364838 if 33 <= data[p] && data[p] <= 126 {
48374839 goto st392
48384840 }
48394841 goto st0
48404842 st392:
48414843 if p++; p == pe {
4842 goto _testEof392
4843 }
4844 stCase392:
4844 goto _test_eof392
4845 }
4846 st_case_392:
48454847 if 33 <= data[p] && data[p] <= 126 {
48464848 goto st393
48474849 }
48484850 goto st0
48494851 st393:
48504852 if p++; p == pe {
4851 goto _testEof393
4852 }
4853 stCase393:
4853 goto _test_eof393
4854 }
4855 st_case_393:
48544856 if 33 <= data[p] && data[p] <= 126 {
48554857 goto st394
48564858 }
48574859 goto st0
48584860 st394:
48594861 if p++; p == pe {
4860 goto _testEof394
4861 }
4862 stCase394:
4862 goto _test_eof394
4863 }
4864 st_case_394:
48634865 if 33 <= data[p] && data[p] <= 126 {
48644866 goto st395
48654867 }
48664868 goto st0
48674869 st395:
48684870 if p++; p == pe {
4869 goto _testEof395
4870 }
4871 stCase395:
4871 goto _test_eof395
4872 }
4873 st_case_395:
48724874 if 33 <= data[p] && data[p] <= 126 {
48734875 goto st396
48744876 }
48754877 goto st0
48764878 st396:
48774879 if p++; p == pe {
4878 goto _testEof396
4879 }
4880 stCase396:
4880 goto _test_eof396
4881 }
4882 st_case_396:
48814883 if 33 <= data[p] && data[p] <= 126 {
48824884 goto st397
48834885 }
48844886 goto st0
48854887 st397:
48864888 if p++; p == pe {
4887 goto _testEof397
4888 }
4889 stCase397:
4889 goto _test_eof397
4890 }
4891 st_case_397:
48904892 if 33 <= data[p] && data[p] <= 126 {
48914893 goto st398
48924894 }
48934895 goto st0
48944896 st398:
48954897 if p++; p == pe {
4896 goto _testEof398
4897 }
4898 stCase398:
4898 goto _test_eof398
4899 }
4900 st_case_398:
48994901 if 33 <= data[p] && data[p] <= 126 {
49004902 goto st399
49014903 }
49024904 goto st0
49034905 st399:
49044906 if p++; p == pe {
4905 goto _testEof399
4906 }
4907 stCase399:
4907 goto _test_eof399
4908 }
4909 st_case_399:
49084910 if 33 <= data[p] && data[p] <= 126 {
49094911 goto st400
49104912 }
49114913 goto st0
49124914 st400:
49134915 if p++; p == pe {
4914 goto _testEof400
4915 }
4916 stCase400:
4916 goto _test_eof400
4917 }
4918 st_case_400:
49174919 if 33 <= data[p] && data[p] <= 126 {
49184920 goto st401
49194921 }
49204922 goto st0
49214923 st401:
49224924 if p++; p == pe {
4923 goto _testEof401
4924 }
4925 stCase401:
4925 goto _test_eof401
4926 }
4927 st_case_401:
49264928 if 33 <= data[p] && data[p] <= 126 {
49274929 goto st402
49284930 }
49294931 goto st0
49304932 st402:
49314933 if p++; p == pe {
4932 goto _testEof402
4933 }
4934 stCase402:
4934 goto _test_eof402
4935 }
4936 st_case_402:
49354937 if 33 <= data[p] && data[p] <= 126 {
49364938 goto st403
49374939 }
49384940 goto st0
49394941 st403:
49404942 if p++; p == pe {
4941 goto _testEof403
4942 }
4943 stCase403:
4943 goto _test_eof403
4944 }
4945 st_case_403:
49444946 if 33 <= data[p] && data[p] <= 126 {
49454947 goto st404
49464948 }
49474949 goto st0
49484950 st404:
49494951 if p++; p == pe {
4950 goto _testEof404
4951 }
4952 stCase404:
4952 goto _test_eof404
4953 }
4954 st_case_404:
49534955 if 33 <= data[p] && data[p] <= 126 {
49544956 goto st405
49554957 }
49564958 goto st0
49574959 st405:
49584960 if p++; p == pe {
4959 goto _testEof405
4960 }
4961 stCase405:
4961 goto _test_eof405
4962 }
4963 st_case_405:
49624964 if 33 <= data[p] && data[p] <= 126 {
49634965 goto st406
49644966 }
49654967 goto st0
49664968 st406:
49674969 if p++; p == pe {
4968 goto _testEof406
4969 }
4970 stCase406:
4970 goto _test_eof406
4971 }
4972 st_case_406:
49714973 if 33 <= data[p] && data[p] <= 126 {
49724974 goto st407
49734975 }
49744976 goto st0
49754977 st407:
49764978 if p++; p == pe {
4977 goto _testEof407
4978 }
4979 stCase407:
4979 goto _test_eof407
4980 }
4981 st_case_407:
49804982 if 33 <= data[p] && data[p] <= 126 {
49814983 goto st408
49824984 }
49834985 goto st0
49844986 st408:
49854987 if p++; p == pe {
4986 goto _testEof408
4987 }
4988 stCase408:
4988 goto _test_eof408
4989 }
4990 st_case_408:
49894991 if 33 <= data[p] && data[p] <= 126 {
49904992 goto st409
49914993 }
49924994 goto st0
49934995 st409:
49944996 if p++; p == pe {
4995 goto _testEof409
4996 }
4997 stCase409:
4997 goto _test_eof409
4998 }
4999 st_case_409:
49985000 if 33 <= data[p] && data[p] <= 126 {
49995001 goto st410
50005002 }
50015003 goto st0
50025004 st410:
50035005 if p++; p == pe {
5004 goto _testEof410
5005 }
5006 stCase410:
5006 goto _test_eof410
5007 }
5008 st_case_410:
50075009 if 33 <= data[p] && data[p] <= 126 {
50085010 goto st411
50095011 }
50105012 goto st0
50115013 st411:
50125014 if p++; p == pe {
5013 goto _testEof411
5014 }
5015 stCase411:
5015 goto _test_eof411
5016 }
5017 st_case_411:
50165018 if 33 <= data[p] && data[p] <= 126 {
50175019 goto st412
50185020 }
50195021 goto st0
50205022 st412:
50215023 if p++; p == pe {
5022 goto _testEof412
5023 }
5024 stCase412:
5024 goto _test_eof412
5025 }
5026 st_case_412:
50255027 if 33 <= data[p] && data[p] <= 126 {
50265028 goto st413
50275029 }
50285030 goto st0
50295031 st413:
50305032 if p++; p == pe {
5031 goto _testEof413
5032 }
5033 stCase413:
5033 goto _test_eof413
5034 }
5035 st_case_413:
50345036 if 33 <= data[p] && data[p] <= 126 {
50355037 goto st414
50365038 }
50375039 goto st0
50385040 st414:
50395041 if p++; p == pe {
5040 goto _testEof414
5041 }
5042 stCase414:
5042 goto _test_eof414
5043 }
5044 st_case_414:
50435045 if 33 <= data[p] && data[p] <= 126 {
50445046 goto st415
50455047 }
50465048 goto st0
50475049 st415:
50485050 if p++; p == pe {
5049 goto _testEof415
5050 }
5051 stCase415:
5051 goto _test_eof415
5052 }
5053 st_case_415:
50525054 if 33 <= data[p] && data[p] <= 126 {
50535055 goto st416
50545056 }
50555057 goto st0
50565058 st416:
50575059 if p++; p == pe {
5058 goto _testEof416
5059 }
5060 stCase416:
5060 goto _test_eof416
5061 }
5062 st_case_416:
50615063 if 33 <= data[p] && data[p] <= 126 {
50625064 goto st417
50635065 }
50645066 goto st0
50655067 st417:
50665068 if p++; p == pe {
5067 goto _testEof417
5068 }
5069 stCase417:
5069 goto _test_eof417
5070 }
5071 st_case_417:
50705072 if 33 <= data[p] && data[p] <= 126 {
50715073 goto st418
50725074 }
50735075 goto st0
50745076 st418:
50755077 if p++; p == pe {
5076 goto _testEof418
5077 }
5078 stCase418:
5078 goto _test_eof418
5079 }
5080 st_case_418:
50795081 if 33 <= data[p] && data[p] <= 126 {
50805082 goto st419
50815083 }
50825084 goto st0
50835085 st419:
50845086 if p++; p == pe {
5085 goto _testEof419
5086 }
5087 stCase419:
5087 goto _test_eof419
5088 }
5089 st_case_419:
50885090 if 33 <= data[p] && data[p] <= 126 {
50895091 goto st420
50905092 }
50915093 goto st0
50925094 st420:
50935095 if p++; p == pe {
5094 goto _testEof420
5095 }
5096 stCase420:
5096 goto _test_eof420
5097 }
5098 st_case_420:
50975099 if 33 <= data[p] && data[p] <= 126 {
50985100 goto st421
50995101 }
51005102 goto st0
51015103 st421:
51025104 if p++; p == pe {
5103 goto _testEof421
5104 }
5105 stCase421:
5105 goto _test_eof421
5106 }
5107 st_case_421:
51065108 if 33 <= data[p] && data[p] <= 126 {
51075109 goto st422
51085110 }
51095111 goto st0
51105112 st422:
51115113 if p++; p == pe {
5112 goto _testEof422
5113 }
5114 stCase422:
5114 goto _test_eof422
5115 }
5116 st_case_422:
51155117 if 33 <= data[p] && data[p] <= 126 {
51165118 goto st423
51175119 }
51185120 goto st0
51195121 st423:
51205122 if p++; p == pe {
5121 goto _testEof423
5122 }
5123 stCase423:
5123 goto _test_eof423
5124 }
5125 st_case_423:
51245126 if 33 <= data[p] && data[p] <= 126 {
51255127 goto st424
51265128 }
51275129 goto st0
51285130 st424:
51295131 if p++; p == pe {
5130 goto _testEof424
5131 }
5132 stCase424:
5132 goto _test_eof424
5133 }
5134 st_case_424:
51335135 if 33 <= data[p] && data[p] <= 126 {
51345136 goto st425
51355137 }
51365138 goto st0
51375139 st425:
51385140 if p++; p == pe {
5139 goto _testEof425
5140 }
5141 stCase425:
5141 goto _test_eof425
5142 }
5143 st_case_425:
51425144 if 33 <= data[p] && data[p] <= 126 {
51435145 goto st426
51445146 }
51455147 goto st0
51465148 st426:
51475149 if p++; p == pe {
5148 goto _testEof426
5149 }
5150 stCase426:
5150 goto _test_eof426
5151 }
5152 st_case_426:
51515153 if 33 <= data[p] && data[p] <= 126 {
51525154 goto st427
51535155 }
51545156 goto st0
51555157 st427:
51565158 if p++; p == pe {
5157 goto _testEof427
5158 }
5159 stCase427:
5159 goto _test_eof427
5160 }
5161 st_case_427:
51605162 if 33 <= data[p] && data[p] <= 126 {
51615163 goto st428
51625164 }
51635165 goto st0
51645166 st428:
51655167 if p++; p == pe {
5166 goto _testEof428
5167 }
5168 stCase428:
5168 goto _test_eof428
5169 }
5170 st_case_428:
51695171 if 33 <= data[p] && data[p] <= 126 {
51705172 goto st429
51715173 }
51725174 goto st0
51735175 st429:
51745176 if p++; p == pe {
5175 goto _testEof429
5176 }
5177 stCase429:
5177 goto _test_eof429
5178 }
5179 st_case_429:
51785180 if 33 <= data[p] && data[p] <= 126 {
51795181 goto st430
51805182 }
51815183 goto st0
51825184 st430:
51835185 if p++; p == pe {
5184 goto _testEof430
5185 }
5186 stCase430:
5186 goto _test_eof430
5187 }
5188 st_case_430:
51875189 if 33 <= data[p] && data[p] <= 126 {
51885190 goto st431
51895191 }
51905192 goto st0
51915193 st431:
51925194 if p++; p == pe {
5193 goto _testEof431
5194 }
5195 stCase431:
5195 goto _test_eof431
5196 }
5197 st_case_431:
51965198 if 33 <= data[p] && data[p] <= 126 {
51975199 goto st432
51985200 }
51995201 goto st0
52005202 st432:
52015203 if p++; p == pe {
5202 goto _testEof432
5203 }
5204 stCase432:
5204 goto _test_eof432
5205 }
5206 st_case_432:
52055207 if 33 <= data[p] && data[p] <= 126 {
52065208 goto st433
52075209 }
52085210 goto st0
52095211 st433:
52105212 if p++; p == pe {
5211 goto _testEof433
5212 }
5213 stCase433:
5213 goto _test_eof433
5214 }
5215 st_case_433:
52145216 if 33 <= data[p] && data[p] <= 126 {
52155217 goto st434
52165218 }
52175219 goto st0
52185220 st434:
52195221 if p++; p == pe {
5220 goto _testEof434
5221 }
5222 stCase434:
5222 goto _test_eof434
5223 }
5224 st_case_434:
52235225 if 33 <= data[p] && data[p] <= 126 {
52245226 goto st435
52255227 }
52265228 goto st0
52275229 st435:
52285230 if p++; p == pe {
5229 goto _testEof435
5230 }
5231 stCase435:
5231 goto _test_eof435
5232 }
5233 st_case_435:
52325234 if 33 <= data[p] && data[p] <= 126 {
52335235 goto st436
52345236 }
52355237 goto st0
52365238 st436:
52375239 if p++; p == pe {
5238 goto _testEof436
5239 }
5240 stCase436:
5240 goto _test_eof436
5241 }
5242 st_case_436:
52415243 if 33 <= data[p] && data[p] <= 126 {
52425244 goto st437
52435245 }
52445246 goto st0
52455247 st437:
52465248 if p++; p == pe {
5247 goto _testEof437
5248 }
5249 stCase437:
5249 goto _test_eof437
5250 }
5251 st_case_437:
52505252 if 33 <= data[p] && data[p] <= 126 {
52515253 goto st438
52525254 }
52535255 goto st0
52545256 st438:
52555257 if p++; p == pe {
5256 goto _testEof438
5257 }
5258 stCase438:
5258 goto _test_eof438
5259 }
5260 st_case_438:
52595261 if 33 <= data[p] && data[p] <= 126 {
52605262 goto st439
52615263 }
52625264 goto st0
52635265 st439:
52645266 if p++; p == pe {
5265 goto _testEof439
5266 }
5267 stCase439:
5267 goto _test_eof439
5268 }
5269 st_case_439:
52685270 if 33 <= data[p] && data[p] <= 126 {
52695271 goto st440
52705272 }
52715273 goto st0
52725274 st440:
52735275 if p++; p == pe {
5274 goto _testEof440
5275 }
5276 stCase440:
5276 goto _test_eof440
5277 }
5278 st_case_440:
52775279 if 33 <= data[p] && data[p] <= 126 {
52785280 goto st441
52795281 }
52805282 goto st0
52815283 st441:
52825284 if p++; p == pe {
5283 goto _testEof441
5284 }
5285 stCase441:
5285 goto _test_eof441
5286 }
5287 st_case_441:
52865288 if 33 <= data[p] && data[p] <= 126 {
52875289 goto st442
52885290 }
52895291 goto st0
52905292 st442:
52915293 if p++; p == pe {
5292 goto _testEof442
5293 }
5294 stCase442:
5294 goto _test_eof442
5295 }
5296 st_case_442:
52955297 if 33 <= data[p] && data[p] <= 126 {
52965298 goto st443
52975299 }
52985300 goto st0
52995301 st443:
53005302 if p++; p == pe {
5301 goto _testEof443
5302 }
5303 stCase443:
5303 goto _test_eof443
5304 }
5305 st_case_443:
53045306 if 33 <= data[p] && data[p] <= 126 {
53055307 goto st444
53065308 }
53075309 goto st0
53085310 st444:
53095311 if p++; p == pe {
5310 goto _testEof444
5311 }
5312 stCase444:
5312 goto _test_eof444
5313 }
5314 st_case_444:
53135315 if 33 <= data[p] && data[p] <= 126 {
53145316 goto st445
53155317 }
53165318 goto st0
53175319 st445:
53185320 if p++; p == pe {
5319 goto _testEof445
5320 }
5321 stCase445:
5321 goto _test_eof445
5322 }
5323 st_case_445:
53225324 if 33 <= data[p] && data[p] <= 126 {
53235325 goto st446
53245326 }
53255327 goto st0
53265328 st446:
53275329 if p++; p == pe {
5328 goto _testEof446
5329 }
5330 stCase446:
5330 goto _test_eof446
5331 }
5332 st_case_446:
53315333 if 33 <= data[p] && data[p] <= 126 {
53325334 goto st447
53335335 }
53345336 goto st0
53355337 st447:
53365338 if p++; p == pe {
5337 goto _testEof447
5338 }
5339 stCase447:
5339 goto _test_eof447
5340 }
5341 st_case_447:
53405342 if 33 <= data[p] && data[p] <= 126 {
53415343 goto st448
53425344 }
53435345 goto st0
53445346 st448:
53455347 if p++; p == pe {
5346 goto _testEof448
5347 }
5348 stCase448:
5348 goto _test_eof448
5349 }
5350 st_case_448:
53495351 if 33 <= data[p] && data[p] <= 126 {
53505352 goto st449
53515353 }
53525354 goto st0
53535355 st449:
53545356 if p++; p == pe {
5355 goto _testEof449
5356 }
5357 stCase449:
5357 goto _test_eof449
5358 }
5359 st_case_449:
53585360 if 33 <= data[p] && data[p] <= 126 {
53595361 goto st450
53605362 }
53615363 goto st0
53625364 st450:
53635365 if p++; p == pe {
5364 goto _testEof450
5365 }
5366 stCase450:
5366 goto _test_eof450
5367 }
5368 st_case_450:
53675369 if 33 <= data[p] && data[p] <= 126 {
53685370 goto st451
53695371 }
53705372 goto st0
53715373 st451:
53725374 if p++; p == pe {
5373 goto _testEof451
5374 }
5375 stCase451:
5375 goto _test_eof451
5376 }
5377 st_case_451:
53765378 if 33 <= data[p] && data[p] <= 126 {
53775379 goto st452
53785380 }
53795381 goto st0
53805382 st452:
53815383 if p++; p == pe {
5382 goto _testEof452
5383 }
5384 stCase452:
5384 goto _test_eof452
5385 }
5386 st_case_452:
53855387 if 33 <= data[p] && data[p] <= 126 {
53865388 goto st453
53875389 }
53885390 goto st0
53895391 st453:
53905392 if p++; p == pe {
5391 goto _testEof453
5392 }
5393 stCase453:
5393 goto _test_eof453
5394 }
5395 st_case_453:
53945396 if 33 <= data[p] && data[p] <= 126 {
53955397 goto st454
53965398 }
53975399 goto st0
53985400 st454:
53995401 if p++; p == pe {
5400 goto _testEof454
5401 }
5402 stCase454:
5402 goto _test_eof454
5403 }
5404 st_case_454:
54035405 if 33 <= data[p] && data[p] <= 126 {
54045406 goto st455
54055407 }
54065408 goto st0
54075409 st455:
54085410 if p++; p == pe {
5409 goto _testEof455
5410 }
5411 stCase455:
5411 goto _test_eof455
5412 }
5413 st_case_455:
54125414 if 33 <= data[p] && data[p] <= 126 {
54135415 goto st456
54145416 }
54155417 goto st0
54165418 st456:
54175419 if p++; p == pe {
5418 goto _testEof456
5419 }
5420 stCase456:
5420 goto _test_eof456
5421 }
5422 st_case_456:
54215423 if 33 <= data[p] && data[p] <= 126 {
54225424 goto st457
54235425 }
54245426 goto st0
54255427 st457:
54265428 if p++; p == pe {
5427 goto _testEof457
5428 }
5429 stCase457:
5429 goto _test_eof457
5430 }
5431 st_case_457:
54305432 if 33 <= data[p] && data[p] <= 126 {
54315433 goto st458
54325434 }
54335435 goto st0
54345436 st458:
54355437 if p++; p == pe {
5436 goto _testEof458
5437 }
5438 stCase458:
5438 goto _test_eof458
5439 }
5440 st_case_458:
54395441 if 33 <= data[p] && data[p] <= 126 {
54405442 goto st459
54415443 }
54425444 goto st0
54435445 st459:
54445446 if p++; p == pe {
5445 goto _testEof459
5446 }
5447 stCase459:
5447 goto _test_eof459
5448 }
5449 st_case_459:
54485450 if 33 <= data[p] && data[p] <= 126 {
54495451 goto st460
54505452 }
54515453 goto st0
54525454 st460:
54535455 if p++; p == pe {
5454 goto _testEof460
5455 }
5456 stCase460:
5456 goto _test_eof460
5457 }
5458 st_case_460:
54575459 if 33 <= data[p] && data[p] <= 126 {
54585460 goto st461
54595461 }
54605462 goto st0
54615463 st461:
54625464 if p++; p == pe {
5463 goto _testEof461
5464 }
5465 stCase461:
5465 goto _test_eof461
5466 }
5467 st_case_461:
54665468 if 33 <= data[p] && data[p] <= 126 {
54675469 goto st462
54685470 }
54695471 goto st0
54705472 st462:
54715473 if p++; p == pe {
5472 goto _testEof462
5473 }
5474 stCase462:
5474 goto _test_eof462
5475 }
5476 st_case_462:
54755477 if 33 <= data[p] && data[p] <= 126 {
54765478 goto st463
54775479 }
54785480 goto st0
54795481 st463:
54805482 if p++; p == pe {
5481 goto _testEof463
5482 }
5483 stCase463:
5483 goto _test_eof463
5484 }
5485 st_case_463:
54845486 if 33 <= data[p] && data[p] <= 126 {
54855487 goto st464
54865488 }
54875489 goto st0
54885490 st464:
54895491 if p++; p == pe {
5490 goto _testEof464
5491 }
5492 stCase464:
5492 goto _test_eof464
5493 }
5494 st_case_464:
54935495 if 33 <= data[p] && data[p] <= 126 {
54945496 goto st465
54955497 }
54965498 goto st0
54975499 st465:
54985500 if p++; p == pe {
5499 goto _testEof465
5500 }
5501 stCase465:
5501 goto _test_eof465
5502 }
5503 st_case_465:
55025504 if 33 <= data[p] && data[p] <= 126 {
55035505 goto st466
55045506 }
55055507 goto st0
55065508 st466:
55075509 if p++; p == pe {
5508 goto _testEof466
5509 }
5510 stCase466:
5510 goto _test_eof466
5511 }
5512 st_case_466:
55115513 if 33 <= data[p] && data[p] <= 126 {
55125514 goto st467
55135515 }
55145516 goto st0
55155517 st467:
55165518 if p++; p == pe {
5517 goto _testEof467
5518 }
5519 stCase467:
5519 goto _test_eof467
5520 }
5521 st_case_467:
55205522 if 33 <= data[p] && data[p] <= 126 {
55215523 goto st468
55225524 }
55235525 goto st0
55245526 st468:
55255527 if p++; p == pe {
5526 goto _testEof468
5527 }
5528 stCase468:
5528 goto _test_eof468
5529 }
5530 st_case_468:
55295531 if 33 <= data[p] && data[p] <= 126 {
55305532 goto st469
55315533 }
55325534 goto st0
55335535 st469:
55345536 if p++; p == pe {
5535 goto _testEof469
5536 }
5537 stCase469:
5537 goto _test_eof469
5538 }
5539 st_case_469:
55385540 if 33 <= data[p] && data[p] <= 126 {
55395541 goto st470
55405542 }
55415543 goto st0
55425544 st470:
55435545 if p++; p == pe {
5544 goto _testEof470
5545 }
5546 stCase470:
5546 goto _test_eof470
5547 }
5548 st_case_470:
55475549 if 33 <= data[p] && data[p] <= 126 {
55485550 goto st471
55495551 }
55505552 goto st0
55515553 st471:
55525554 if p++; p == pe {
5553 goto _testEof471
5554 }
5555 stCase471:
5555 goto _test_eof471
5556 }
5557 st_case_471:
55565558 if 33 <= data[p] && data[p] <= 126 {
55575559 goto st472
55585560 }
55595561 goto st0
55605562 st472:
55615563 if p++; p == pe {
5562 goto _testEof472
5563 }
5564 stCase472:
5564 goto _test_eof472
5565 }
5566 st_case_472:
55655567 if 33 <= data[p] && data[p] <= 126 {
55665568 goto st473
55675569 }
55685570 goto st0
55695571 st473:
55705572 if p++; p == pe {
5571 goto _testEof473
5572 }
5573 stCase473:
5573 goto _test_eof473
5574 }
5575 st_case_473:
55745576 if 33 <= data[p] && data[p] <= 126 {
55755577 goto st474
55765578 }
55775579 goto st0
55785580 st474:
55795581 if p++; p == pe {
5580 goto _testEof474
5581 }
5582 stCase474:
5582 goto _test_eof474
5583 }
5584 st_case_474:
55835585 if 33 <= data[p] && data[p] <= 126 {
55845586 goto st475
55855587 }
55865588 goto st0
55875589 st475:
55885590 if p++; p == pe {
5589 goto _testEof475
5590 }
5591 stCase475:
5591 goto _test_eof475
5592 }
5593 st_case_475:
55925594 if 33 <= data[p] && data[p] <= 126 {
55935595 goto st476
55945596 }
55955597 goto st0
55965598 st476:
55975599 if p++; p == pe {
5598 goto _testEof476
5599 }
5600 stCase476:
5600 goto _test_eof476
5601 }
5602 st_case_476:
56015603 if 33 <= data[p] && data[p] <= 126 {
56025604 goto st477
56035605 }
56045606 goto st0
56055607 st477:
56065608 if p++; p == pe {
5607 goto _testEof477
5608 }
5609 stCase477:
5609 goto _test_eof477
5610 }
5611 st_case_477:
56105612 if 33 <= data[p] && data[p] <= 126 {
56115613 goto st478
56125614 }
56135615 goto st0
56145616 st478:
56155617 if p++; p == pe {
5616 goto _testEof478
5617 }
5618 stCase478:
5618 goto _test_eof478
5619 }
5620 st_case_478:
56195621 if 33 <= data[p] && data[p] <= 126 {
56205622 goto st479
56215623 }
56225624 goto st0
56235625 st479:
56245626 if p++; p == pe {
5625 goto _testEof479
5626 }
5627 stCase479:
5627 goto _test_eof479
5628 }
5629 st_case_479:
56285630 if 33 <= data[p] && data[p] <= 126 {
56295631 goto st480
56305632 }
56315633 goto st0
56325634 st480:
56335635 if p++; p == pe {
5634 goto _testEof480
5635 }
5636 stCase480:
5636 goto _test_eof480
5637 }
5638 st_case_480:
56375639 if 33 <= data[p] && data[p] <= 126 {
56385640 goto st481
56395641 }
56405642 goto st0
56415643 st481:
56425644 if p++; p == pe {
5643 goto _testEof481
5644 }
5645 stCase481:
5645 goto _test_eof481
5646 }
5647 st_case_481:
56465648 if 33 <= data[p] && data[p] <= 126 {
56475649 goto st482
56485650 }
56495651 goto st0
56505652 st482:
56515653 if p++; p == pe {
5652 goto _testEof482
5653 }
5654 stCase482:
5654 goto _test_eof482
5655 }
5656 st_case_482:
56555657 if 33 <= data[p] && data[p] <= 126 {
56565658 goto st483
56575659 }
56585660 goto st0
56595661 st483:
56605662 if p++; p == pe {
5661 goto _testEof483
5662 }
5663 stCase483:
5663 goto _test_eof483
5664 }
5665 st_case_483:
56645666 if 33 <= data[p] && data[p] <= 126 {
56655667 goto st484
56665668 }
56675669 goto st0
56685670 st484:
56695671 if p++; p == pe {
5670 goto _testEof484
5671 }
5672 stCase484:
5672 goto _test_eof484
5673 }
5674 st_case_484:
56735675 if 33 <= data[p] && data[p] <= 126 {
56745676 goto st485
56755677 }
56765678 goto st0
56775679 st485:
56785680 if p++; p == pe {
5679 goto _testEof485
5680 }
5681 stCase485:
5681 goto _test_eof485
5682 }
5683 st_case_485:
56825684 if 33 <= data[p] && data[p] <= 126 {
56835685 goto st486
56845686 }
56855687 goto st0
56865688 st486:
56875689 if p++; p == pe {
5688 goto _testEof486
5689 }
5690 stCase486:
5690 goto _test_eof486
5691 }
5692 st_case_486:
56915693 if 33 <= data[p] && data[p] <= 126 {
56925694 goto st487
56935695 }
56945696 goto st0
56955697 st487:
56965698 if p++; p == pe {
5697 goto _testEof487
5698 }
5699 stCase487:
5699 goto _test_eof487
5700 }
5701 st_case_487:
57005702 if 33 <= data[p] && data[p] <= 126 {
57015703 goto st488
57025704 }
57035705 goto st0
57045706 st488:
57055707 if p++; p == pe {
5706 goto _testEof488
5707 }
5708 stCase488:
5708 goto _test_eof488
5709 }
5710 st_case_488:
57095711 if 33 <= data[p] && data[p] <= 126 {
57105712 goto st489
57115713 }
57125714 goto st0
57135715 st489:
57145716 if p++; p == pe {
5715 goto _testEof489
5716 }
5717 stCase489:
5717 goto _test_eof489
5718 }
5719 st_case_489:
57185720 if 33 <= data[p] && data[p] <= 126 {
57195721 goto st490
57205722 }
57215723 goto st0
57225724 st490:
57235725 if p++; p == pe {
5724 goto _testEof490
5725 }
5726 stCase490:
5726 goto _test_eof490
5727 }
5728 st_case_490:
57275729 if 33 <= data[p] && data[p] <= 126 {
57285730 goto st491
57295731 }
57305732 goto st0
57315733 st491:
57325734 if p++; p == pe {
5733 goto _testEof491
5734 }
5735 stCase491:
5735 goto _test_eof491
5736 }
5737 st_case_491:
57365738 if 33 <= data[p] && data[p] <= 126 {
57375739 goto st492
57385740 }
57395741 goto st0
57405742 st492:
57415743 if p++; p == pe {
5742 goto _testEof492
5743 }
5744 stCase492:
5745 goto st0
5746 stCase48:
5744 goto _test_eof492
5745 }
5746 st_case_492:
5747 goto st0
5748 st_case_48:
57475749 if 33 <= data[p] && data[p] <= 126 {
57485750 goto tr44
57495751 }
57555757 goto st493
57565758 st493:
57575759 if p++; p == pe {
5758 goto _testEof493
5759 }
5760 stCase493:
5760 goto _test_eof493
5761 }
5762 st_case_493:
57615763 if 33 <= data[p] && data[p] <= 126 {
57625764 goto st494
57635765 }
57645766 goto st0
57655767 st494:
57665768 if p++; p == pe {
5767 goto _testEof494
5768 }
5769 stCase494:
5769 goto _test_eof494
5770 }
5771 st_case_494:
57705772 if 33 <= data[p] && data[p] <= 126 {
57715773 goto st495
57725774 }
57735775 goto st0
57745776 st495:
57755777 if p++; p == pe {
5776 goto _testEof495
5777 }
5778 stCase495:
5778 goto _test_eof495
5779 }
5780 st_case_495:
57795781 if 33 <= data[p] && data[p] <= 126 {
57805782 goto st496
57815783 }
57825784 goto st0
57835785 st496:
57845786 if p++; p == pe {
5785 goto _testEof496
5786 }
5787 stCase496:
5787 goto _test_eof496
5788 }
5789 st_case_496:
57885790 if 33 <= data[p] && data[p] <= 126 {
57895791 goto st497
57905792 }
57915793 goto st0
57925794 st497:
57935795 if p++; p == pe {
5794 goto _testEof497
5795 }
5796 stCase497:
5796 goto _test_eof497
5797 }
5798 st_case_497:
57975799 if 33 <= data[p] && data[p] <= 126 {
57985800 goto st498
57995801 }
58005802 goto st0
58015803 st498:
58025804 if p++; p == pe {
5803 goto _testEof498
5804 }
5805 stCase498:
5805 goto _test_eof498
5806 }
5807 st_case_498:
58065808 if 33 <= data[p] && data[p] <= 126 {
58075809 goto st499
58085810 }
58095811 goto st0
58105812 st499:
58115813 if p++; p == pe {
5812 goto _testEof499
5813 }
5814 stCase499:
5814 goto _test_eof499
5815 }
5816 st_case_499:
58155817 if 33 <= data[p] && data[p] <= 126 {
58165818 goto st500
58175819 }
58185820 goto st0
58195821 st500:
58205822 if p++; p == pe {
5821 goto _testEof500
5822 }
5823 stCase500:
5823 goto _test_eof500
5824 }
5825 st_case_500:
58245826 if 33 <= data[p] && data[p] <= 126 {
58255827 goto st501
58265828 }
58275829 goto st0
58285830 st501:
58295831 if p++; p == pe {
5830 goto _testEof501
5831 }
5832 stCase501:
5832 goto _test_eof501
5833 }
5834 st_case_501:
58335835 if 33 <= data[p] && data[p] <= 126 {
58345836 goto st502
58355837 }
58365838 goto st0
58375839 st502:
58385840 if p++; p == pe {
5839 goto _testEof502
5840 }
5841 stCase502:
5841 goto _test_eof502
5842 }
5843 st_case_502:
58425844 if 33 <= data[p] && data[p] <= 126 {
58435845 goto st503
58445846 }
58455847 goto st0
58465848 st503:
58475849 if p++; p == pe {
5848 goto _testEof503
5849 }
5850 stCase503:
5850 goto _test_eof503
5851 }
5852 st_case_503:
58515853 if 33 <= data[p] && data[p] <= 126 {
58525854 goto st504
58535855 }
58545856 goto st0
58555857 st504:
58565858 if p++; p == pe {
5857 goto _testEof504
5858 }
5859 stCase504:
5859 goto _test_eof504
5860 }
5861 st_case_504:
58605862 if 33 <= data[p] && data[p] <= 126 {
58615863 goto st505
58625864 }
58635865 goto st0
58645866 st505:
58655867 if p++; p == pe {
5866 goto _testEof505
5867 }
5868 stCase505:
5868 goto _test_eof505
5869 }
5870 st_case_505:
58695871 if 33 <= data[p] && data[p] <= 126 {
58705872 goto st506
58715873 }
58725874 goto st0
58735875 st506:
58745876 if p++; p == pe {
5875 goto _testEof506
5876 }
5877 stCase506:
5877 goto _test_eof506
5878 }
5879 st_case_506:
58785880 if 33 <= data[p] && data[p] <= 126 {
58795881 goto st507
58805882 }
58815883 goto st0
58825884 st507:
58835885 if p++; p == pe {
5884 goto _testEof507
5885 }
5886 stCase507:
5886 goto _test_eof507
5887 }
5888 st_case_507:
58875889 if 33 <= data[p] && data[p] <= 126 {
58885890 goto st508
58895891 }
58905892 goto st0
58915893 st508:
58925894 if p++; p == pe {
5893 goto _testEof508
5894 }
5895 stCase508:
5895 goto _test_eof508
5896 }
5897 st_case_508:
58965898 if 33 <= data[p] && data[p] <= 126 {
58975899 goto st509
58985900 }
58995901 goto st0
59005902 st509:
59015903 if p++; p == pe {
5902 goto _testEof509
5903 }
5904 stCase509:
5904 goto _test_eof509
5905 }
5906 st_case_509:
59055907 if 33 <= data[p] && data[p] <= 126 {
59065908 goto st510
59075909 }
59085910 goto st0
59095911 st510:
59105912 if p++; p == pe {
5911 goto _testEof510
5912 }
5913 stCase510:
5913 goto _test_eof510
5914 }
5915 st_case_510:
59145916 if 33 <= data[p] && data[p] <= 126 {
59155917 goto st511
59165918 }
59175919 goto st0
59185920 st511:
59195921 if p++; p == pe {
5920 goto _testEof511
5921 }
5922 stCase511:
5922 goto _test_eof511
5923 }
5924 st_case_511:
59235925 if 33 <= data[p] && data[p] <= 126 {
59245926 goto st512
59255927 }
59265928 goto st0
59275929 st512:
59285930 if p++; p == pe {
5929 goto _testEof512
5930 }
5931 stCase512:
5931 goto _test_eof512
5932 }
5933 st_case_512:
59325934 if 33 <= data[p] && data[p] <= 126 {
59335935 goto st513
59345936 }
59355937 goto st0
59365938 st513:
59375939 if p++; p == pe {
5938 goto _testEof513
5939 }
5940 stCase513:
5940 goto _test_eof513
5941 }
5942 st_case_513:
59415943 if 33 <= data[p] && data[p] <= 126 {
59425944 goto st514
59435945 }
59445946 goto st0
59455947 st514:
59465948 if p++; p == pe {
5947 goto _testEof514
5948 }
5949 stCase514:
5949 goto _test_eof514
5950 }
5951 st_case_514:
59505952 if 33 <= data[p] && data[p] <= 126 {
59515953 goto st515
59525954 }
59535955 goto st0
59545956 st515:
59555957 if p++; p == pe {
5956 goto _testEof515
5957 }
5958 stCase515:
5958 goto _test_eof515
5959 }
5960 st_case_515:
59595961 if 33 <= data[p] && data[p] <= 126 {
59605962 goto st516
59615963 }
59625964 goto st0
59635965 st516:
59645966 if p++; p == pe {
5965 goto _testEof516
5966 }
5967 stCase516:
5967 goto _test_eof516
5968 }
5969 st_case_516:
59685970 if 33 <= data[p] && data[p] <= 126 {
59695971 goto st517
59705972 }
59715973 goto st0
59725974 st517:
59735975 if p++; p == pe {
5974 goto _testEof517
5975 }
5976 stCase517:
5976 goto _test_eof517
5977 }
5978 st_case_517:
59775979 if 33 <= data[p] && data[p] <= 126 {
59785980 goto st518
59795981 }
59805982 goto st0
59815983 st518:
59825984 if p++; p == pe {
5983 goto _testEof518
5984 }
5985 stCase518:
5985 goto _test_eof518
5986 }
5987 st_case_518:
59865988 if 33 <= data[p] && data[p] <= 126 {
59875989 goto st519
59885990 }
59895991 goto st0
59905992 st519:
59915993 if p++; p == pe {
5992 goto _testEof519
5993 }
5994 stCase519:
5994 goto _test_eof519
5995 }
5996 st_case_519:
59955997 if 33 <= data[p] && data[p] <= 126 {
59965998 goto st520
59975999 }
59986000 goto st0
59996001 st520:
60006002 if p++; p == pe {
6001 goto _testEof520
6002 }
6003 stCase520:
6003 goto _test_eof520
6004 }
6005 st_case_520:
60046006 if 33 <= data[p] && data[p] <= 126 {
60056007 goto st521
60066008 }
60076009 goto st0
60086010 st521:
60096011 if p++; p == pe {
6010 goto _testEof521
6011 }
6012 stCase521:
6012 goto _test_eof521
6013 }
6014 st_case_521:
60136015 if 33 <= data[p] && data[p] <= 126 {
60146016 goto st522
60156017 }
60166018 goto st0
60176019 st522:
60186020 if p++; p == pe {
6019 goto _testEof522
6020 }
6021 stCase522:
6021 goto _test_eof522
6022 }
6023 st_case_522:
60226024 if 33 <= data[p] && data[p] <= 126 {
60236025 goto st523
60246026 }
60256027 goto st0
60266028 st523:
60276029 if p++; p == pe {
6028 goto _testEof523
6029 }
6030 stCase523:
6030 goto _test_eof523
6031 }
6032 st_case_523:
60316033 if 33 <= data[p] && data[p] <= 126 {
60326034 goto st524
60336035 }
60346036 goto st0
60356037 st524:
60366038 if p++; p == pe {
6037 goto _testEof524
6038 }
6039 stCase524:
6040 goto st0
6041 stCase49:
6039 goto _test_eof524
6040 }
6041 st_case_524:
6042 goto st0
6043 st_case_49:
60426044 if data[p] == 33 {
60436045 goto tr45
60446046 }
60626064 goto st525
60636065 st525:
60646066 if p++; p == pe {
6065 goto _testEof525
6066 }
6067 stCase525:
6067 goto _test_eof525
6068 }
6069 st_case_525:
60686070 if data[p] == 33 {
60696071 goto st526
60706072 }
60836085 goto st0
60846086 st526:
60856087 if p++; p == pe {
6086 goto _testEof526
6087 }
6088 stCase526:
6088 goto _test_eof526
6089 }
6090 st_case_526:
60896091 if data[p] == 33 {
60906092 goto st527
60916093 }
61046106 goto st0
61056107 st527:
61066108 if p++; p == pe {
6107 goto _testEof527
6108 }
6109 stCase527:
6109 goto _test_eof527
6110 }
6111 st_case_527:
61106112 if data[p] == 33 {
61116113 goto st528
61126114 }
61256127 goto st0
61266128 st528:
61276129 if p++; p == pe {
6128 goto _testEof528
6129 }
6130 stCase528:
6130 goto _test_eof528
6131 }
6132 st_case_528:
61316133 if data[p] == 33 {
61326134 goto st529
61336135 }
61466148 goto st0
61476149 st529:
61486150 if p++; p == pe {
6149 goto _testEof529
6150 }
6151 stCase529:
6151 goto _test_eof529
6152 }
6153 st_case_529:
61526154 if data[p] == 33 {
61536155 goto st530
61546156 }
61676169 goto st0
61686170 st530:
61696171 if p++; p == pe {
6170 goto _testEof530
6171 }
6172 stCase530:
6172 goto _test_eof530
6173 }
6174 st_case_530:
61736175 if data[p] == 33 {
61746176 goto st531
61756177 }
61886190 goto st0
61896191 st531:
61906192 if p++; p == pe {
6191 goto _testEof531
6192 }
6193 stCase531:
6193 goto _test_eof531
6194 }
6195 st_case_531:
61946196 if data[p] == 33 {
61956197 goto st532
61966198 }
62096211 goto st0
62106212 st532:
62116213 if p++; p == pe {
6212 goto _testEof532
6213 }
6214 stCase532:
6214 goto _test_eof532
6215 }
6216 st_case_532:
62156217 if data[p] == 33 {
62166218 goto st533
62176219 }
62306232 goto st0
62316233 st533:
62326234 if p++; p == pe {
6233 goto _testEof533
6234 }
6235 stCase533:
6235 goto _test_eof533
6236 }
6237 st_case_533:
62366238 if data[p] == 33 {
62376239 goto st534
62386240 }
62516253 goto st0
62526254 st534:
62536255 if p++; p == pe {
6254 goto _testEof534
6255 }
6256 stCase534:
6256 goto _test_eof534
6257 }
6258 st_case_534:
62576259 if data[p] == 33 {
62586260 goto st535
62596261 }
62726274 goto st0
62736275 st535:
62746276 if p++; p == pe {
6275 goto _testEof535
6276 }
6277 stCase535:
6277 goto _test_eof535
6278 }
6279 st_case_535:
62786280 if data[p] == 33 {
62796281 goto st536
62806282 }
62936295 goto st0
62946296 st536:
62956297 if p++; p == pe {
6296 goto _testEof536
6297 }
6298 stCase536:
6298 goto _test_eof536
6299 }
6300 st_case_536:
62996301 if data[p] == 33 {
63006302 goto st537
63016303 }
63146316 goto st0
63156317 st537:
63166318 if p++; p == pe {
6317 goto _testEof537
6318 }
6319 stCase537:
6319 goto _test_eof537
6320 }
6321 st_case_537:
63206322 if data[p] == 33 {
63216323 goto st538
63226324 }
63356337 goto st0
63366338 st538:
63376339 if p++; p == pe {
6338 goto _testEof538
6339 }
6340 stCase538:
6340 goto _test_eof538
6341 }
6342 st_case_538:
63416343 if data[p] == 33 {
63426344 goto st539
63436345 }
63566358 goto st0
63576359 st539:
63586360 if p++; p == pe {
6359 goto _testEof539
6360 }
6361 stCase539:
6361 goto _test_eof539
6362 }
6363 st_case_539:
63626364 if data[p] == 33 {
63636365 goto st540
63646366 }
63776379 goto st0
63786380 st540:
63796381 if p++; p == pe {
6380 goto _testEof540
6381 }
6382 stCase540:
6382 goto _test_eof540
6383 }
6384 st_case_540:
63836385 if data[p] == 33 {
63846386 goto st541
63856387 }
63986400 goto st0
63996401 st541:
64006402 if p++; p == pe {
6401 goto _testEof541
6402 }
6403 stCase541:
6403 goto _test_eof541
6404 }
6405 st_case_541:
64046406 if data[p] == 33 {
64056407 goto st542
64066408 }
64196421 goto st0
64206422 st542:
64216423 if p++; p == pe {
6422 goto _testEof542
6423 }
6424 stCase542:
6424 goto _test_eof542
6425 }
6426 st_case_542:
64256427 if data[p] == 33 {
64266428 goto st543
64276429 }
64406442 goto st0
64416443 st543:
64426444 if p++; p == pe {
6443 goto _testEof543
6444 }
6445 stCase543:
6445 goto _test_eof543
6446 }
6447 st_case_543:
64466448 if data[p] == 33 {
64476449 goto st544
64486450 }
64616463 goto st0
64626464 st544:
64636465 if p++; p == pe {
6464 goto _testEof544
6465 }
6466 stCase544:
6466 goto _test_eof544
6467 }
6468 st_case_544:
64676469 if data[p] == 33 {
64686470 goto st545
64696471 }
64826484 goto st0
64836485 st545:
64846486 if p++; p == pe {
6485 goto _testEof545
6486 }
6487 stCase545:
6487 goto _test_eof545
6488 }
6489 st_case_545:
64886490 if data[p] == 33 {
64896491 goto st546
64906492 }
65036505 goto st0
65046506 st546:
65056507 if p++; p == pe {
6506 goto _testEof546
6507 }
6508 stCase546:
6508 goto _test_eof546
6509 }
6510 st_case_546:
65096511 if data[p] == 33 {
65106512 goto st547
65116513 }
65246526 goto st0
65256527 st547:
65266528 if p++; p == pe {
6527 goto _testEof547
6528 }
6529 stCase547:
6529 goto _test_eof547
6530 }
6531 st_case_547:
65306532 if data[p] == 33 {
65316533 goto st548
65326534 }
65456547 goto st0
65466548 st548:
65476549 if p++; p == pe {
6548 goto _testEof548
6549 }
6550 stCase548:
6550 goto _test_eof548
6551 }
6552 st_case_548:
65516553 if data[p] == 33 {
65526554 goto st549
65536555 }
65666568 goto st0
65676569 st549:
65686570 if p++; p == pe {
6569 goto _testEof549
6570 }
6571 stCase549:
6571 goto _test_eof549
6572 }
6573 st_case_549:
65726574 if data[p] == 33 {
65736575 goto st550
65746576 }
65876589 goto st0
65886590 st550:
65896591 if p++; p == pe {
6590 goto _testEof550
6591 }
6592 stCase550:
6592 goto _test_eof550
6593 }
6594 st_case_550:
65936595 if data[p] == 33 {
65946596 goto st551
65956597 }
66086610 goto st0
66096611 st551:
66106612 if p++; p == pe {
6611 goto _testEof551
6612 }
6613 stCase551:
6613 goto _test_eof551
6614 }
6615 st_case_551:
66146616 if data[p] == 33 {
66156617 goto st552
66166618 }
66296631 goto st0
66306632 st552:
66316633 if p++; p == pe {
6632 goto _testEof552
6633 }
6634 stCase552:
6634 goto _test_eof552
6635 }
6636 st_case_552:
66356637 if data[p] == 33 {
66366638 goto st553
66376639 }
66506652 goto st0
66516653 st553:
66526654 if p++; p == pe {
6653 goto _testEof553
6654 }
6655 stCase553:
6655 goto _test_eof553
6656 }
6657 st_case_553:
66566658 if data[p] == 33 {
66576659 goto st554
66586660 }
66716673 goto st0
66726674 st554:
66736675 if p++; p == pe {
6674 goto _testEof554
6675 }
6676 stCase554:
6676 goto _test_eof554
6677 }
6678 st_case_554:
66776679 if data[p] == 33 {
66786680 goto st555
66796681 }
66926694 goto st0
66936695 st555:
66946696 if p++; p == pe {
6695 goto _testEof555
6696 }
6697 stCase555:
6697 goto _test_eof555
6698 }
6699 st_case_555:
66986700 if data[p] == 33 {
66996701 goto st556
67006702 }
67136715 goto st0
67146716 st556:
67156717 if p++; p == pe {
6716 goto _testEof556
6717 }
6718 stCase556:
6719 goto st0
6720 stCase50:
6718 goto _test_eof556
6719 }
6720 st_case_556:
6721 goto st0
6722 st_case_50:
67216723 if data[p] == 33 {
67226724 goto tr46
67236725 }
67416743 goto st557
67426744 st557:
67436745 if p++; p == pe {
6744 goto _testEof557
6745 }
6746 stCase557:
6746 goto _test_eof557
6747 }
6748 st_case_557:
67476749 if data[p] == 33 {
67486750 goto st558
67496751 }
67626764 goto st0
67636765 st558:
67646766 if p++; p == pe {
6765 goto _testEof558
6766 }
6767 stCase558:
6767 goto _test_eof558
6768 }
6769 st_case_558:
67686770 if data[p] == 33 {
67696771 goto st559
67706772 }
67836785 goto st0
67846786 st559:
67856787 if p++; p == pe {
6786 goto _testEof559
6787 }
6788 stCase559:
6788 goto _test_eof559
6789 }
6790 st_case_559:
67896791 if data[p] == 33 {
67906792 goto st560
67916793 }
68046806 goto st0
68056807 st560:
68066808 if p++; p == pe {
6807 goto _testEof560
6808 }
6809 stCase560:
6809 goto _test_eof560
6810 }
6811 st_case_560:
68106812 if data[p] == 33 {
68116813 goto st561
68126814 }
68256827 goto st0
68266828 st561:
68276829 if p++; p == pe {
6828 goto _testEof561
6829 }
6830 stCase561:
6830 goto _test_eof561
6831 }
6832 st_case_561:
68316833 if data[p] == 33 {
68326834 goto st562
68336835 }
68466848 goto st0
68476849 st562:
68486850 if p++; p == pe {
6849 goto _testEof562
6850 }
6851 stCase562:
6851 goto _test_eof562
6852 }
6853 st_case_562:
68526854 if data[p] == 33 {
68536855 goto st563
68546856 }
68676869 goto st0
68686870 st563:
68696871 if p++; p == pe {
6870 goto _testEof563
6871 }
6872 stCase563:
6872 goto _test_eof563
6873 }
6874 st_case_563:
68736875 if data[p] == 33 {
68746876 goto st564
68756877 }
68886890 goto st0
68896891 st564:
68906892 if p++; p == pe {
6891 goto _testEof564
6892 }
6893 stCase564:
6893 goto _test_eof564
6894 }
6895 st_case_564:
68946896 if data[p] == 33 {
68956897 goto st565
68966898 }
69096911 goto st0
69106912 st565:
69116913 if p++; p == pe {
6912 goto _testEof565
6913 }
6914 stCase565:
6914 goto _test_eof565
6915 }
6916 st_case_565:
69156917 if data[p] == 33 {
69166918 goto st566
69176919 }
69306932 goto st0
69316933 st566:
69326934 if p++; p == pe {
6933 goto _testEof566
6934 }
6935 stCase566:
6935 goto _test_eof566
6936 }
6937 st_case_566:
69366938 if data[p] == 33 {
69376939 goto st567
69386940 }
69516953 goto st0
69526954 st567:
69536955 if p++; p == pe {
6954 goto _testEof567
6955 }
6956 stCase567:
6956 goto _test_eof567
6957 }
6958 st_case_567:
69576959 if data[p] == 33 {
69586960 goto st568
69596961 }
69726974 goto st0
69736975 st568:
69746976 if p++; p == pe {
6975 goto _testEof568
6976 }
6977 stCase568:
6977 goto _test_eof568
6978 }
6979 st_case_568:
69786980 if data[p] == 33 {
69796981 goto st569
69806982 }
69936995 goto st0
69946996 st569:
69956997 if p++; p == pe {
6996 goto _testEof569
6997 }
6998 stCase569:
6998 goto _test_eof569
6999 }
7000 st_case_569:
69997001 if data[p] == 33 {
70007002 goto st570
70017003 }
70147016 goto st0
70157017 st570:
70167018 if p++; p == pe {
7017 goto _testEof570
7018 }
7019 stCase570:
7019 goto _test_eof570
7020 }
7021 st_case_570:
70207022 if data[p] == 33 {
70217023 goto st571
70227024 }
70357037 goto st0
70367038 st571:
70377039 if p++; p == pe {
7038 goto _testEof571
7039 }
7040 stCase571:
7040 goto _test_eof571
7041 }
7042 st_case_571:
70417043 if data[p] == 33 {
70427044 goto st572
70437045 }
70567058 goto st0
70577059 st572:
70587060 if p++; p == pe {
7059 goto _testEof572
7060 }
7061 stCase572:
7061 goto _test_eof572
7062 }
7063 st_case_572:
70627064 if data[p] == 33 {
70637065 goto st573
70647066 }
70777079 goto st0
70787080 st573:
70797081 if p++; p == pe {
7080 goto _testEof573
7081 }
7082 stCase573:
7082 goto _test_eof573
7083 }
7084 st_case_573:
70837085 if data[p] == 33 {
70847086 goto st574
70857087 }
70987100 goto st0
70997101 st574:
71007102 if p++; p == pe {
7101 goto _testEof574
7102 }
7103 stCase574:
7103 goto _test_eof574
7104 }
7105 st_case_574:
71047106 if data[p] == 33 {
71057107 goto st575
71067108 }
71197121 goto st0
71207122 st575:
71217123 if p++; p == pe {
7122 goto _testEof575
7123 }
7124 stCase575:
7124 goto _test_eof575
7125 }
7126 st_case_575:
71257127 if data[p] == 33 {
71267128 goto st576
71277129 }
71407142 goto st0
71417143 st576:
71427144 if p++; p == pe {
7143 goto _testEof576
7144 }
7145 stCase576:
7145 goto _test_eof576
7146 }
7147 st_case_576:
71467148 if data[p] == 33 {
71477149 goto st577
71487150 }
71617163 goto st0
71627164 st577:
71637165 if p++; p == pe {
7164 goto _testEof577
7165 }
7166 stCase577:
7166 goto _test_eof577
7167 }
7168 st_case_577:
71677169 if data[p] == 33 {
71687170 goto st578
71697171 }
71827184 goto st0
71837185 st578:
71847186 if p++; p == pe {
7185 goto _testEof578
7186 }
7187 stCase578:
7187 goto _test_eof578
7188 }
7189 st_case_578:
71887190 if data[p] == 33 {
71897191 goto st579
71907192 }
72037205 goto st0
72047206 st579:
72057207 if p++; p == pe {
7206 goto _testEof579
7207 }
7208 stCase579:
7208 goto _test_eof579
7209 }
7210 st_case_579:
72097211 if data[p] == 33 {
72107212 goto st580
72117213 }
72247226 goto st0
72257227 st580:
72267228 if p++; p == pe {
7227 goto _testEof580
7228 }
7229 stCase580:
7229 goto _test_eof580
7230 }
7231 st_case_580:
72307232 if data[p] == 33 {
72317233 goto st581
72327234 }
72457247 goto st0
72467248 st581:
72477249 if p++; p == pe {
7248 goto _testEof581
7249 }
7250 stCase581:
7250 goto _test_eof581
7251 }
7252 st_case_581:
72517253 if data[p] == 33 {
72527254 goto st582
72537255 }
72667268 goto st0
72677269 st582:
72687270 if p++; p == pe {
7269 goto _testEof582
7270 }
7271 stCase582:
7271 goto _test_eof582
7272 }
7273 st_case_582:
72727274 if data[p] == 33 {
72737275 goto st583
72747276 }
72877289 goto st0
72887290 st583:
72897291 if p++; p == pe {
7290 goto _testEof583
7291 }
7292 stCase583:
7292 goto _test_eof583
7293 }
7294 st_case_583:
72937295 if data[p] == 33 {
72947296 goto st584
72957297 }
73087310 goto st0
73097311 st584:
73107312 if p++; p == pe {
7311 goto _testEof584
7312 }
7313 stCase584:
7313 goto _test_eof584
7314 }
7315 st_case_584:
73147316 if data[p] == 33 {
73157317 goto st585
73167318 }
73297331 goto st0
73307332 st585:
73317333 if p++; p == pe {
7332 goto _testEof585
7333 }
7334 stCase585:
7334 goto _test_eof585
7335 }
7336 st_case_585:
73357337 if data[p] == 33 {
73367338 goto st586
73377339 }
73507352 goto st0
73517353 st586:
73527354 if p++; p == pe {
7353 goto _testEof586
7354 }
7355 stCase586:
7355 goto _test_eof586
7356 }
7357 st_case_586:
73567358 if data[p] == 33 {
73577359 goto st587
73587360 }
73717373 goto st0
73727374 st587:
73737375 if p++; p == pe {
7374 goto _testEof587
7375 }
7376 stCase587:
7376 goto _test_eof587
7377 }
7378 st_case_587:
73777379 if data[p] == 33 {
73787380 goto st588
73797381 }
73927394 goto st0
73937395 st588:
73947396 if p++; p == pe {
7395 goto _testEof588
7396 }
7397 stCase588:
7398 goto st0
7399 stCase589:
7397 goto _test_eof588
7398 }
7399 st_case_588:
7400 goto st0
7401 st_case_589:
74007402 switch data[p] {
74017403 case 34:
74027404 goto st0
74437445 goto st590
74447446 st590:
74457447 if p++; p == pe {
7446 goto _testEof590
7447 }
7448 stCase590:
7448 goto _test_eof590
7449 }
7450 st_case_590:
74497451 switch data[p] {
74507452 case 34:
74517453 goto st0
74997501 goto st51
75007502 st51:
75017503 if p++; p == pe {
7502 goto _testEof51
7503 }
7504 stCase51:
7504 goto _test_eof51
7505 }
7506 st_case_51:
75057507 if data[p] == 34 {
75067508 goto st590
75077509 }
75167518 goto st52
75177519 st52:
75187520 if p++; p == pe {
7519 goto _testEof52
7520 }
7521 stCase52:
7521 goto _test_eof52
7522 }
7523 st_case_52:
75227524 if 128 <= data[p] && data[p] <= 191 {
75237525 goto st590
75247526 }
75307532 goto st53
75317533 st53:
75327534 if p++; p == pe {
7533 goto _testEof53
7534 }
7535 stCase53:
7535 goto _test_eof53
7536 }
7537 st_case_53:
75367538 if 160 <= data[p] && data[p] <= 191 {
75377539 goto st52
75387540 }
75447546 goto st54
75457547 st54:
75467548 if p++; p == pe {
7547 goto _testEof54
7548 }
7549 stCase54:
7549 goto _test_eof54
7550 }
7551 st_case_54:
75507552 if 128 <= data[p] && data[p] <= 191 {
75517553 goto st52
75527554 }
75587560 goto st55
75597561 st55:
75607562 if p++; p == pe {
7561 goto _testEof55
7562 }
7563 stCase55:
7563 goto _test_eof55
7564 }
7565 st_case_55:
75647566 if 128 <= data[p] && data[p] <= 159 {
75657567 goto st52
75667568 }
75727574 goto st56
75737575 st56:
75747576 if p++; p == pe {
7575 goto _testEof56
7576 }
7577 stCase56:
7577 goto _test_eof56
7578 }
7579 st_case_56:
75787580 if 144 <= data[p] && data[p] <= 191 {
75797581 goto st54
75807582 }
75867588 goto st57
75877589 st57:
75887590 if p++; p == pe {
7589 goto _testEof57
7590 }
7591 stCase57:
7591 goto _test_eof57
7592 }
7593 st_case_57:
75927594 if 128 <= data[p] && data[p] <= 191 {
75937595 goto st54
75947596 }
76007602 goto st58
76017603 st58:
76027604 if p++; p == pe {
7603 goto _testEof58
7604 }
7605 stCase58:
7605 goto _test_eof58
7606 }
7607 st_case_58:
76067608 if 128 <= data[p] && data[p] <= 143 {
76077609 goto st54
76087610 }
76097611 goto st0
7610 stOut:
7611 _testEof60:
7612 st_out:
7613 _test_eof60:
76127614 cs = 60
7613 goto _testEof
7614 _testEof1:
7615 goto _test_eof
7616 _test_eof1:
76157617 cs = 1
7616 goto _testEof
7617 _testEof2:
7618 goto _test_eof
7619 _test_eof2:
76187620 cs = 2
7619 goto _testEof
7620 _testEof3:
7621 goto _test_eof
7622 _test_eof3:
76217623 cs = 3
7622 goto _testEof
7623 _testEof4:
7624 goto _test_eof
7625 _test_eof4:
76247626 cs = 4
7625 goto _testEof
7626 _testEof5:
7627 goto _test_eof
7628 _test_eof5:
76277629 cs = 5
7628 goto _testEof
7629 _testEof6:
7630 goto _test_eof
7631 _test_eof6:
76307632 cs = 6
7631 goto _testEof
7632 _testEof7:
7633 goto _test_eof
7634 _test_eof7:
76337635 cs = 7
7634 goto _testEof
7635 _testEof9:
7636 goto _test_eof
7637 _test_eof9:
76367638 cs = 9
7637 goto _testEof
7638 _testEof10:
7639 goto _test_eof
7640 _test_eof10:
76397641 cs = 10
7640 goto _testEof
7641 _testEof11:
7642 goto _test_eof
7643 _test_eof11:
76427644 cs = 11
7643 goto _testEof
7644 _testEof12:
7645 goto _test_eof
7646 _test_eof12:
76457647 cs = 12
7646 goto _testEof
7647 _testEof13:
7648 goto _test_eof
7649 _test_eof13:
76487650 cs = 13
7649 goto _testEof
7650 _testEof14:
7651 goto _test_eof
7652 _test_eof14:
76517653 cs = 14
7652 goto _testEof
7653 _testEof15:
7654 goto _test_eof
7655 _test_eof15:
76547656 cs = 15
7655 goto _testEof
7656 _testEof16:
7657 goto _test_eof
7658 _test_eof16:
76577659 cs = 16
7658 goto _testEof
7659 _testEof17:
7660 goto _test_eof
7661 _test_eof17:
76607662 cs = 17
7661 goto _testEof
7662 _testEof18:
7663 goto _test_eof
7664 _test_eof18:
76637665 cs = 18
7664 goto _testEof
7665 _testEof19:
7666 goto _test_eof
7667 _test_eof19:
76667668 cs = 19
7667 goto _testEof
7668 _testEof20:
7669 goto _test_eof
7670 _test_eof20:
76697671 cs = 20
7670 goto _testEof
7671 _testEof21:
7672 goto _test_eof
7673 _test_eof21:
76727674 cs = 21
7673 goto _testEof
7674 _testEof22:
7675 goto _test_eof
7676 _test_eof22:
76757677 cs = 22
7676 goto _testEof
7677 _testEof23:
7678 goto _test_eof
7679 _test_eof23:
76787680 cs = 23
7679 goto _testEof
7680 _testEof24:
7681 goto _test_eof
7682 _test_eof24:
76817683 cs = 24
7682 goto _testEof
7683 _testEof25:
7684 goto _test_eof
7685 _test_eof25:
76847686 cs = 25
7685 goto _testEof
7686 _testEof26:
7687 goto _test_eof
7688 _test_eof26:
76877689 cs = 26
7688 goto _testEof
7689 _testEof27:
7690 goto _test_eof
7691 _test_eof27:
76907692 cs = 27
7691 goto _testEof
7692 _testEof28:
7693 goto _test_eof
7694 _test_eof28:
76937695 cs = 28
7694 goto _testEof
7695 _testEof29:
7696 goto _test_eof
7697 _test_eof29:
76967698 cs = 29
7697 goto _testEof
7698 _testEof30:
7699 goto _test_eof
7700 _test_eof30:
76997701 cs = 30
7700 goto _testEof
7701 _testEof31:
7702 goto _test_eof
7703 _test_eof31:
77027704 cs = 31
7703 goto _testEof
7704 _testEof32:
7705 goto _test_eof
7706 _test_eof32:
77057707 cs = 32
7706 goto _testEof
7707 _testEof61:
7708 goto _test_eof
7709 _test_eof61:
77087710 cs = 61
7709 goto _testEof
7710 _testEof33:
7711 goto _test_eof
7712 _test_eof33:
77117713 cs = 33
7712 goto _testEof
7713 _testEof34:
7714 goto _test_eof
7715 _test_eof34:
77147716 cs = 34
7715 goto _testEof
7716 _testEof35:
7717 goto _test_eof
7718 _test_eof35:
77177719 cs = 35
7718 goto _testEof
7719 _testEof36:
7720 goto _test_eof
7721 _test_eof36:
77207722 cs = 36
7721 goto _testEof
7722 _testEof37:
7723 goto _test_eof
7724 _test_eof37:
77237725 cs = 37
7724 goto _testEof
7725 _testEof38:
7726 goto _test_eof
7727 _test_eof38:
77267728 cs = 38
7727 goto _testEof
7728 _testEof39:
7729 goto _test_eof
7730 _test_eof39:
77297731 cs = 39
7730 goto _testEof
7731 _testEof40:
7732 goto _test_eof
7733 _test_eof40:
77327734 cs = 40
7733 goto _testEof
7734 _testEof41:
7735 goto _test_eof
7736 _test_eof41:
77357737 cs = 41
7736 goto _testEof
7737 _testEof42:
7738 goto _test_eof
7739 _test_eof42:
77387740 cs = 42
7739 goto _testEof
7740 _testEof43:
7741 goto _test_eof
7742 _test_eof43:
77417743 cs = 43
7742 goto _testEof
7743 _testEof44:
7744 goto _test_eof
7745 _test_eof44:
77447746 cs = 44
7745 goto _testEof
7746 _testEof62:
7747 goto _test_eof
7748 _test_eof62:
77477749 cs = 62
7748 goto _testEof
7749 _testEof63:
7750 goto _test_eof
7751 _test_eof63:
77507752 cs = 63
7751 goto _testEof
7752 _testEof64:
7753 goto _test_eof
7754 _test_eof64:
77537755 cs = 64
7754 goto _testEof
7755 _testEof65:
7756 goto _test_eof
7757 _test_eof65:
77567758 cs = 65
7757 goto _testEof
7758 _testEof66:
7759 goto _test_eof
7760 _test_eof66:
77597761 cs = 66
7760 goto _testEof
7761 _testEof67:
7762 goto _test_eof
7763 _test_eof67:
77627764 cs = 67
7763 goto _testEof
7764 _testEof68:
7765 goto _test_eof
7766 _test_eof68:
77657767 cs = 68
7766 goto _testEof
7767 _testEof69:
7768 goto _test_eof
7769 _test_eof69:
77687770 cs = 69
7769 goto _testEof
7770 _testEof70:
7771 goto _test_eof
7772 _test_eof70:
77717773 cs = 70
7772 goto _testEof
7773 _testEof71:
7774 goto _test_eof
7775 _test_eof71:
77747776 cs = 71
7775 goto _testEof
7776 _testEof72:
7777 goto _test_eof
7778 _test_eof72:
77777779 cs = 72
7778 goto _testEof
7779 _testEof73:
7780 goto _test_eof
7781 _test_eof73:
77807782 cs = 73
7781 goto _testEof
7782 _testEof74:
7783 goto _test_eof
7784 _test_eof74:
77837785 cs = 74
7784 goto _testEof
7785 _testEof75:
7786 goto _test_eof
7787 _test_eof75:
77867788 cs = 75
7787 goto _testEof
7788 _testEof76:
7789 goto _test_eof
7790 _test_eof76:
77897791 cs = 76
7790 goto _testEof
7791 _testEof77:
7792 goto _test_eof
7793 _test_eof77:
77927794 cs = 77
7793 goto _testEof
7794 _testEof78:
7795 goto _test_eof
7796 _test_eof78:
77957797 cs = 78
7796 goto _testEof
7797 _testEof79:
7798 goto _test_eof
7799 _test_eof79:
77987800 cs = 79
7799 goto _testEof
7800 _testEof80:
7801 goto _test_eof
7802 _test_eof80:
78017803 cs = 80
7802 goto _testEof
7803 _testEof81:
7804 goto _test_eof
7805 _test_eof81:
78047806 cs = 81
7805 goto _testEof
7806 _testEof82:
7807 goto _test_eof
7808 _test_eof82:
78077809 cs = 82
7808 goto _testEof
7809 _testEof83:
7810 goto _test_eof
7811 _test_eof83:
78107812 cs = 83
7811 goto _testEof
7812 _testEof84:
7813 goto _test_eof
7814 _test_eof84:
78137815 cs = 84
7814 goto _testEof
7815 _testEof85:
7816 goto _test_eof
7817 _test_eof85:
78167818 cs = 85
7817 goto _testEof
7818 _testEof86:
7819 goto _test_eof
7820 _test_eof86:
78197821 cs = 86
7820 goto _testEof
7821 _testEof87:
7822 goto _test_eof
7823 _test_eof87:
78227824 cs = 87
7823 goto _testEof
7824 _testEof88:
7825 goto _test_eof
7826 _test_eof88:
78257827 cs = 88
7826 goto _testEof
7827 _testEof89:
7828 goto _test_eof
7829 _test_eof89:
78287830 cs = 89
7829 goto _testEof
7830 _testEof90:
7831 goto _test_eof
7832 _test_eof90:
78317833 cs = 90
7832 goto _testEof
7833 _testEof91:
7834 goto _test_eof
7835 _test_eof91:
78347836 cs = 91
7835 goto _testEof
7836 _testEof92:
7837 goto _test_eof
7838 _test_eof92:
78377839 cs = 92
7838 goto _testEof
7839 _testEof93:
7840 goto _test_eof
7841 _test_eof93:
78407842 cs = 93
7841 goto _testEof
7842 _testEof94:
7843 goto _test_eof
7844 _test_eof94:
78437845 cs = 94
7844 goto _testEof
7845 _testEof95:
7846 goto _test_eof
7847 _test_eof95:
78467848 cs = 95
7847 goto _testEof
7848 _testEof96:
7849 goto _test_eof
7850 _test_eof96:
78497851 cs = 96
7850 goto _testEof
7851 _testEof97:
7852 goto _test_eof
7853 _test_eof97:
78527854 cs = 97
7853 goto _testEof
7854 _testEof98:
7855 goto _test_eof
7856 _test_eof98:
78557857 cs = 98
7856 goto _testEof
7857 _testEof99:
7858 goto _test_eof
7859 _test_eof99:
78587860 cs = 99
7859 goto _testEof
7860 _testEof100:
7861 goto _test_eof
7862 _test_eof100:
78617863 cs = 100
7862 goto _testEof
7863 _testEof101:
7864 goto _test_eof
7865 _test_eof101:
78647866 cs = 101
7865 goto _testEof
7866 _testEof102:
7867 goto _test_eof
7868 _test_eof102:
78677869 cs = 102
7868 goto _testEof
7869 _testEof103:
7870 goto _test_eof
7871 _test_eof103:
78707872 cs = 103
7871 goto _testEof
7872 _testEof104:
7873 goto _test_eof
7874 _test_eof104:
78737875 cs = 104
7874 goto _testEof
7875 _testEof105:
7876 goto _test_eof
7877 _test_eof105:
78767878 cs = 105
7877 goto _testEof
7878 _testEof106:
7879 goto _test_eof
7880 _test_eof106:
78797881 cs = 106
7880 goto _testEof
7881 _testEof107:
7882 goto _test_eof
7883 _test_eof107:
78827884 cs = 107
7883 goto _testEof
7884 _testEof108:
7885 goto _test_eof
7886 _test_eof108:
78857887 cs = 108
7886 goto _testEof
7887 _testEof109:
7888 goto _test_eof
7889 _test_eof109:
78887890 cs = 109
7889 goto _testEof
7890 _testEof110:
7891 goto _test_eof
7892 _test_eof110:
78917893 cs = 110
7892 goto _testEof
7893 _testEof111:
7894 goto _test_eof
7895 _test_eof111:
78947896 cs = 111
7895 goto _testEof
7896 _testEof112:
7897 goto _test_eof
7898 _test_eof112:
78977899 cs = 112
7898 goto _testEof
7899 _testEof113:
7900 goto _test_eof
7901 _test_eof113:
79007902 cs = 113
7901 goto _testEof
7902 _testEof114:
7903 goto _test_eof
7904 _test_eof114:
79037905 cs = 114
7904 goto _testEof
7905 _testEof115:
7906 goto _test_eof
7907 _test_eof115:
79067908 cs = 115
7907 goto _testEof
7908 _testEof116:
7909 goto _test_eof
7910 _test_eof116:
79097911 cs = 116
7910 goto _testEof
7911 _testEof117:
7912 goto _test_eof
7913 _test_eof117:
79127914 cs = 117
7913 goto _testEof
7914 _testEof118:
7915 goto _test_eof
7916 _test_eof118:
79157917 cs = 118
7916 goto _testEof
7917 _testEof119:
7918 goto _test_eof
7919 _test_eof119:
79187920 cs = 119
7919 goto _testEof
7920 _testEof120:
7921 goto _test_eof
7922 _test_eof120:
79217923 cs = 120
7922 goto _testEof
7923 _testEof121:
7924 goto _test_eof
7925 _test_eof121:
79247926 cs = 121
7925 goto _testEof
7926 _testEof122:
7927 goto _test_eof
7928 _test_eof122:
79277929 cs = 122
7928 goto _testEof
7929 _testEof123:
7930 goto _test_eof
7931 _test_eof123:
79307932 cs = 123
7931 goto _testEof
7932 _testEof124:
7933 goto _test_eof
7934 _test_eof124:
79337935 cs = 124
7934 goto _testEof
7935 _testEof125:
7936 goto _test_eof
7937 _test_eof125:
79367938 cs = 125
7937 goto _testEof
7938 _testEof126:
7939 goto _test_eof
7940 _test_eof126:
79397941 cs = 126
7940 goto _testEof
7941 _testEof127:
7942 goto _test_eof
7943 _test_eof127:
79427944 cs = 127
7943 goto _testEof
7944 _testEof128:
7945 goto _test_eof
7946 _test_eof128:
79457947 cs = 128
7946 goto _testEof
7947 _testEof129:
7948 goto _test_eof
7949 _test_eof129:
79487950 cs = 129
7949 goto _testEof
7950 _testEof130:
7951 goto _test_eof
7952 _test_eof130:
79517953 cs = 130
7952 goto _testEof
7953 _testEof131:
7954 goto _test_eof
7955 _test_eof131:
79547956 cs = 131
7955 goto _testEof
7956 _testEof132:
7957 goto _test_eof
7958 _test_eof132:
79577959 cs = 132
7958 goto _testEof
7959 _testEof133:
7960 goto _test_eof
7961 _test_eof133:
79607962 cs = 133
7961 goto _testEof
7962 _testEof134:
7963 goto _test_eof
7964 _test_eof134:
79637965 cs = 134
7964 goto _testEof
7965 _testEof135:
7966 goto _test_eof
7967 _test_eof135:
79667968 cs = 135
7967 goto _testEof
7968 _testEof136:
7969 goto _test_eof
7970 _test_eof136:
79697971 cs = 136
7970 goto _testEof
7971 _testEof137:
7972 goto _test_eof
7973 _test_eof137:
79727974 cs = 137
7973 goto _testEof
7974 _testEof138:
7975 goto _test_eof
7976 _test_eof138:
79757977 cs = 138
7976 goto _testEof
7977 _testEof139:
7978 goto _test_eof
7979 _test_eof139:
79787980 cs = 139
7979 goto _testEof
7980 _testEof140:
7981 goto _test_eof
7982 _test_eof140:
79817983 cs = 140
7982 goto _testEof
7983 _testEof141:
7984 goto _test_eof
7985 _test_eof141:
79847986 cs = 141
7985 goto _testEof
7986 _testEof142:
7987 goto _test_eof
7988 _test_eof142:
79877989 cs = 142
7988 goto _testEof
7989 _testEof143:
7990 goto _test_eof
7991 _test_eof143:
79907992 cs = 143
7991 goto _testEof
7992 _testEof144:
7993 goto _test_eof
7994 _test_eof144:
79937995 cs = 144
7994 goto _testEof
7995 _testEof145:
7996 goto _test_eof
7997 _test_eof145:
79967998 cs = 145
7997 goto _testEof
7998 _testEof146:
7999 goto _test_eof
8000 _test_eof146:
79998001 cs = 146
8000 goto _testEof
8001 _testEof147:
8002 goto _test_eof
8003 _test_eof147:
80028004 cs = 147
8003 goto _testEof
8004 _testEof148:
8005 goto _test_eof
8006 _test_eof148:
80058007 cs = 148
8006 goto _testEof
8007 _testEof149:
8008 goto _test_eof
8009 _test_eof149:
80088010 cs = 149
8009 goto _testEof
8010 _testEof150:
8011 goto _test_eof
8012 _test_eof150:
80118013 cs = 150
8012 goto _testEof
8013 _testEof151:
8014 goto _test_eof
8015 _test_eof151:
80148016 cs = 151
8015 goto _testEof
8016 _testEof152:
8017 goto _test_eof
8018 _test_eof152:
80178019 cs = 152
8018 goto _testEof
8019 _testEof153:
8020 goto _test_eof
8021 _test_eof153:
80208022 cs = 153
8021 goto _testEof
8022 _testEof154:
8023 goto _test_eof
8024 _test_eof154:
80238025 cs = 154
8024 goto _testEof
8025 _testEof155:
8026 goto _test_eof
8027 _test_eof155:
80268028 cs = 155
8027 goto _testEof
8028 _testEof156:
8029 goto _test_eof
8030 _test_eof156:
80298031 cs = 156
8030 goto _testEof
8031 _testEof157:
8032 goto _test_eof
8033 _test_eof157:
80328034 cs = 157
8033 goto _testEof
8034 _testEof158:
8035 goto _test_eof
8036 _test_eof158:
80358037 cs = 158
8036 goto _testEof
8037 _testEof159:
8038 goto _test_eof
8039 _test_eof159:
80388040 cs = 159
8039 goto _testEof
8040 _testEof160:
8041 goto _test_eof
8042 _test_eof160:
80418043 cs = 160
8042 goto _testEof
8043 _testEof161:
8044 goto _test_eof
8045 _test_eof161:
80448046 cs = 161
8045 goto _testEof
8046 _testEof162:
8047 goto _test_eof
8048 _test_eof162:
80478049 cs = 162
8048 goto _testEof
8049 _testEof163:
8050 goto _test_eof
8051 _test_eof163:
80508052 cs = 163
8051 goto _testEof
8052 _testEof164:
8053 goto _test_eof
8054 _test_eof164:
80538055 cs = 164
8054 goto _testEof
8055 _testEof165:
8056 goto _test_eof
8057 _test_eof165:
80568058 cs = 165
8057 goto _testEof
8058 _testEof166:
8059 goto _test_eof
8060 _test_eof166:
80598061 cs = 166
8060 goto _testEof
8061 _testEof167:
8062 goto _test_eof
8063 _test_eof167:
80628064 cs = 167
8063 goto _testEof
8064 _testEof168:
8065 goto _test_eof
8066 _test_eof168:
80658067 cs = 168
8066 goto _testEof
8067 _testEof169:
8068 goto _test_eof
8069 _test_eof169:
80688070 cs = 169
8069 goto _testEof
8070 _testEof170:
8071 goto _test_eof
8072 _test_eof170:
80718073 cs = 170
8072 goto _testEof
8073 _testEof171:
8074 goto _test_eof
8075 _test_eof171:
80748076 cs = 171
8075 goto _testEof
8076 _testEof172:
8077 goto _test_eof
8078 _test_eof172:
80778079 cs = 172
8078 goto _testEof
8079 _testEof173:
8080 goto _test_eof
8081 _test_eof173:
80808082 cs = 173
8081 goto _testEof
8082 _testEof174:
8083 goto _test_eof
8084 _test_eof174:
80838085 cs = 174
8084 goto _testEof
8085 _testEof175:
8086 goto _test_eof
8087 _test_eof175:
80868088 cs = 175
8087 goto _testEof
8088 _testEof176:
8089 goto _test_eof
8090 _test_eof176:
80898091 cs = 176
8090 goto _testEof
8091 _testEof177:
8092 goto _test_eof
8093 _test_eof177:
80928094 cs = 177
8093 goto _testEof
8094 _testEof178:
8095 goto _test_eof
8096 _test_eof178:
80958097 cs = 178
8096 goto _testEof
8097 _testEof179:
8098 goto _test_eof
8099 _test_eof179:
80988100 cs = 179
8099 goto _testEof
8100 _testEof180:
8101 goto _test_eof
8102 _test_eof180:
81018103 cs = 180
8102 goto _testEof
8103 _testEof181:
8104 goto _test_eof
8105 _test_eof181:
81048106 cs = 181
8105 goto _testEof
8106 _testEof182:
8107 goto _test_eof
8108 _test_eof182:
81078109 cs = 182
8108 goto _testEof
8109 _testEof183:
8110 goto _test_eof
8111 _test_eof183:
81108112 cs = 183
8111 goto _testEof
8112 _testEof184:
8113 goto _test_eof
8114 _test_eof184:
81138115 cs = 184
8114 goto _testEof
8115 _testEof185:
8116 goto _test_eof
8117 _test_eof185:
81168118 cs = 185
8117 goto _testEof
8118 _testEof186:
8119 goto _test_eof
8120 _test_eof186:
81198121 cs = 186
8120 goto _testEof
8121 _testEof187:
8122 goto _test_eof
8123 _test_eof187:
81228124 cs = 187
8123 goto _testEof
8124 _testEof188:
8125 goto _test_eof
8126 _test_eof188:
81258127 cs = 188
8126 goto _testEof
8127 _testEof189:
8128 goto _test_eof
8129 _test_eof189:
81288130 cs = 189
8129 goto _testEof
8130 _testEof190:
8131 goto _test_eof
8132 _test_eof190:
81318133 cs = 190
8132 goto _testEof
8133 _testEof191:
8134 goto _test_eof
8135 _test_eof191:
81348136 cs = 191
8135 goto _testEof
8136 _testEof192:
8137 goto _test_eof
8138 _test_eof192:
81378139 cs = 192
8138 goto _testEof
8139 _testEof193:
8140 goto _test_eof
8141 _test_eof193:
81408142 cs = 193
8141 goto _testEof
8142 _testEof194:
8143 goto _test_eof
8144 _test_eof194:
81438145 cs = 194
8144 goto _testEof
8145 _testEof195:
8146 goto _test_eof
8147 _test_eof195:
81468148 cs = 195
8147 goto _testEof
8148 _testEof196:
8149 goto _test_eof
8150 _test_eof196:
81498151 cs = 196
8150 goto _testEof
8151 _testEof197:
8152 goto _test_eof
8153 _test_eof197:
81528154 cs = 197
8153 goto _testEof
8154 _testEof198:
8155 goto _test_eof
8156 _test_eof198:
81558157 cs = 198
8156 goto _testEof
8157 _testEof199:
8158 goto _test_eof
8159 _test_eof199:
81588160 cs = 199
8159 goto _testEof
8160 _testEof200:
8161 goto _test_eof
8162 _test_eof200:
81618163 cs = 200
8162 goto _testEof
8163 _testEof201:
8164 goto _test_eof
8165 _test_eof201:
81648166 cs = 201
8165 goto _testEof
8166 _testEof202:
8167 goto _test_eof
8168 _test_eof202:
81678169 cs = 202
8168 goto _testEof
8169 _testEof203:
8170 goto _test_eof
8171 _test_eof203:
81708172 cs = 203
8171 goto _testEof
8172 _testEof204:
8173 goto _test_eof
8174 _test_eof204:
81738175 cs = 204
8174 goto _testEof
8175 _testEof205:
8176 goto _test_eof
8177 _test_eof205:
81768178 cs = 205
8177 goto _testEof
8178 _testEof206:
8179 goto _test_eof
8180 _test_eof206:
81798181 cs = 206
8180 goto _testEof
8181 _testEof207:
8182 goto _test_eof
8183 _test_eof207:
81828184 cs = 207
8183 goto _testEof
8184 _testEof208:
8185 goto _test_eof
8186 _test_eof208:
81858187 cs = 208
8186 goto _testEof
8187 _testEof209:
8188 goto _test_eof
8189 _test_eof209:
81888190 cs = 209
8189 goto _testEof
8190 _testEof210:
8191 goto _test_eof
8192 _test_eof210:
81918193 cs = 210
8192 goto _testEof
8193 _testEof211:
8194 goto _test_eof
8195 _test_eof211:
81948196 cs = 211
8195 goto _testEof
8196 _testEof212:
8197 goto _test_eof
8198 _test_eof212:
81978199 cs = 212
8198 goto _testEof
8199 _testEof213:
8200 goto _test_eof
8201 _test_eof213:
82008202 cs = 213
8201 goto _testEof
8202 _testEof214:
8203 goto _test_eof
8204 _test_eof214:
82038205 cs = 214
8204 goto _testEof
8205 _testEof215:
8206 goto _test_eof
8207 _test_eof215:
82068208 cs = 215
8207 goto _testEof
8208 _testEof216:
8209 goto _test_eof
8210 _test_eof216:
82098211 cs = 216
8210 goto _testEof
8211 _testEof217:
8212 goto _test_eof
8213 _test_eof217:
82128214 cs = 217
8213 goto _testEof
8214 _testEof218:
8215 goto _test_eof
8216 _test_eof218:
82158217 cs = 218
8216 goto _testEof
8217 _testEof219:
8218 goto _test_eof
8219 _test_eof219:
82188220 cs = 219
8219 goto _testEof
8220 _testEof220:
8221 goto _test_eof
8222 _test_eof220:
82218223 cs = 220
8222 goto _testEof
8223 _testEof221:
8224 goto _test_eof
8225 _test_eof221:
82248226 cs = 221
8225 goto _testEof
8226 _testEof222:
8227 goto _test_eof
8228 _test_eof222:
82278229 cs = 222
8228 goto _testEof
8229 _testEof223:
8230 goto _test_eof
8231 _test_eof223:
82308232 cs = 223
8231 goto _testEof
8232 _testEof224:
8233 goto _test_eof
8234 _test_eof224:
82338235 cs = 224
8234 goto _testEof
8235 _testEof225:
8236 goto _test_eof
8237 _test_eof225:
82368238 cs = 225
8237 goto _testEof
8238 _testEof226:
8239 goto _test_eof
8240 _test_eof226:
82398241 cs = 226
8240 goto _testEof
8241 _testEof227:
8242 goto _test_eof
8243 _test_eof227:
82428244 cs = 227
8243 goto _testEof
8244 _testEof228:
8245 goto _test_eof
8246 _test_eof228:
82458247 cs = 228
8246 goto _testEof
8247 _testEof229:
8248 goto _test_eof
8249 _test_eof229:
82488250 cs = 229
8249 goto _testEof
8250 _testEof230:
8251 goto _test_eof
8252 _test_eof230:
82518253 cs = 230
8252 goto _testEof
8253 _testEof231:
8254 goto _test_eof
8255 _test_eof231:
82548256 cs = 231
8255 goto _testEof
8256 _testEof232:
8257 goto _test_eof
8258 _test_eof232:
82578259 cs = 232
8258 goto _testEof
8259 _testEof233:
8260 goto _test_eof
8261 _test_eof233:
82608262 cs = 233
8261 goto _testEof
8262 _testEof234:
8263 goto _test_eof
8264 _test_eof234:
82638265 cs = 234
8264 goto _testEof
8265 _testEof235:
8266 goto _test_eof
8267 _test_eof235:
82668268 cs = 235
8267 goto _testEof
8268 _testEof236:
8269 goto _test_eof
8270 _test_eof236:
82698271 cs = 236
8270 goto _testEof
8271 _testEof237:
8272 goto _test_eof
8273 _test_eof237:
82728274 cs = 237
8273 goto _testEof
8274 _testEof238:
8275 goto _test_eof
8276 _test_eof238:
82758277 cs = 238
8276 goto _testEof
8277 _testEof239:
8278 goto _test_eof
8279 _test_eof239:
82788280 cs = 239
8279 goto _testEof
8280 _testEof240:
8281 goto _test_eof
8282 _test_eof240:
82818283 cs = 240
8282 goto _testEof
8283 _testEof241:
8284 goto _test_eof
8285 _test_eof241:
82848286 cs = 241
8285 goto _testEof
8286 _testEof242:
8287 goto _test_eof
8288 _test_eof242:
82878289 cs = 242
8288 goto _testEof
8289 _testEof243:
8290 goto _test_eof
8291 _test_eof243:
82908292 cs = 243
8291 goto _testEof
8292 _testEof244:
8293 goto _test_eof
8294 _test_eof244:
82938295 cs = 244
8294 goto _testEof
8295 _testEof245:
8296 goto _test_eof
8297 _test_eof245:
82968298 cs = 245
8297 goto _testEof
8298 _testEof246:
8299 goto _test_eof
8300 _test_eof246:
82998301 cs = 246
8300 goto _testEof
8301 _testEof247:
8302 goto _test_eof
8303 _test_eof247:
83028304 cs = 247
8303 goto _testEof
8304 _testEof248:
8305 goto _test_eof
8306 _test_eof248:
83058307 cs = 248
8306 goto _testEof
8307 _testEof249:
8308 goto _test_eof
8309 _test_eof249:
83088310 cs = 249
8309 goto _testEof
8310 _testEof250:
8311 goto _test_eof
8312 _test_eof250:
83118313 cs = 250
8312 goto _testEof
8313 _testEof251:
8314 goto _test_eof
8315 _test_eof251:
83148316 cs = 251
8315 goto _testEof
8316 _testEof252:
8317 goto _test_eof
8318 _test_eof252:
83178319 cs = 252
8318 goto _testEof
8319 _testEof253:
8320 goto _test_eof
8321 _test_eof253:
83208322 cs = 253
8321 goto _testEof
8322 _testEof254:
8323 goto _test_eof
8324 _test_eof254:
83238325 cs = 254
8324 goto _testEof
8325 _testEof255:
8326 goto _test_eof
8327 _test_eof255:
83268328 cs = 255
8327 goto _testEof
8328 _testEof256:
8329 goto _test_eof
8330 _test_eof256:
83298331 cs = 256
8330 goto _testEof
8331 _testEof257:
8332 goto _test_eof
8333 _test_eof257:
83328334 cs = 257
8333 goto _testEof
8334 _testEof258:
8335 goto _test_eof
8336 _test_eof258:
83358337 cs = 258
8336 goto _testEof
8337 _testEof259:
8338 goto _test_eof
8339 _test_eof259:
83388340 cs = 259
8339 goto _testEof
8340 _testEof260:
8341 goto _test_eof
8342 _test_eof260:
83418343 cs = 260
8342 goto _testEof
8343 _testEof261:
8344 goto _test_eof
8345 _test_eof261:
83448346 cs = 261
8345 goto _testEof
8346 _testEof262:
8347 goto _test_eof
8348 _test_eof262:
83478349 cs = 262
8348 goto _testEof
8349 _testEof263:
8350 goto _test_eof
8351 _test_eof263:
83508352 cs = 263
8351 goto _testEof
8352 _testEof264:
8353 goto _test_eof
8354 _test_eof264:
83538355 cs = 264
8354 goto _testEof
8355 _testEof265:
8356 goto _test_eof
8357 _test_eof265:
83568358 cs = 265
8357 goto _testEof
8358 _testEof266:
8359 goto _test_eof
8360 _test_eof266:
83598361 cs = 266
8360 goto _testEof
8361 _testEof267:
8362 goto _test_eof
8363 _test_eof267:
83628364 cs = 267
8363 goto _testEof
8364 _testEof268:
8365 goto _test_eof
8366 _test_eof268:
83658367 cs = 268
8366 goto _testEof
8367 _testEof269:
8368 goto _test_eof
8369 _test_eof269:
83688370 cs = 269
8369 goto _testEof
8370 _testEof270:
8371 goto _test_eof
8372 _test_eof270:
83718373 cs = 270
8372 goto _testEof
8373 _testEof271:
8374 goto _test_eof
8375 _test_eof271:
83748376 cs = 271
8375 goto _testEof
8376 _testEof272:
8377 goto _test_eof
8378 _test_eof272:
83778379 cs = 272
8378 goto _testEof
8379 _testEof273:
8380 goto _test_eof
8381 _test_eof273:
83808382 cs = 273
8381 goto _testEof
8382 _testEof274:
8383 goto _test_eof
8384 _test_eof274:
83838385 cs = 274
8384 goto _testEof
8385 _testEof275:
8386 goto _test_eof
8387 _test_eof275:
83868388 cs = 275
8387 goto _testEof
8388 _testEof276:
8389 goto _test_eof
8390 _test_eof276:
83898391 cs = 276
8390 goto _testEof
8391 _testEof277:
8392 goto _test_eof
8393 _test_eof277:
83928394 cs = 277
8393 goto _testEof
8394 _testEof278:
8395 goto _test_eof
8396 _test_eof278:
83958397 cs = 278
8396 goto _testEof
8397 _testEof279:
8398 goto _test_eof
8399 _test_eof279:
83988400 cs = 279
8399 goto _testEof
8400 _testEof280:
8401 goto _test_eof
8402 _test_eof280:
84018403 cs = 280
8402 goto _testEof
8403 _testEof281:
8404 goto _test_eof
8405 _test_eof281:
84048406 cs = 281
8405 goto _testEof
8406 _testEof282:
8407 goto _test_eof
8408 _test_eof282:
84078409 cs = 282
8408 goto _testEof
8409 _testEof283:
8410 goto _test_eof
8411 _test_eof283:
84108412 cs = 283
8411 goto _testEof
8412 _testEof284:
8413 goto _test_eof
8414 _test_eof284:
84138415 cs = 284
8414 goto _testEof
8415 _testEof285:
8416 goto _test_eof
8417 _test_eof285:
84168418 cs = 285
8417 goto _testEof
8418 _testEof286:
8419 goto _test_eof
8420 _test_eof286:
84198421 cs = 286
8420 goto _testEof
8421 _testEof287:
8422 goto _test_eof
8423 _test_eof287:
84228424 cs = 287
8423 goto _testEof
8424 _testEof288:
8425 goto _test_eof
8426 _test_eof288:
84258427 cs = 288
8426 goto _testEof
8427 _testEof289:
8428 goto _test_eof
8429 _test_eof289:
84288430 cs = 289
8429 goto _testEof
8430 _testEof290:
8431 goto _test_eof
8432 _test_eof290:
84318433 cs = 290
8432 goto _testEof
8433 _testEof291:
8434 goto _test_eof
8435 _test_eof291:
84348436 cs = 291
8435 goto _testEof
8436 _testEof292:
8437 goto _test_eof
8438 _test_eof292:
84378439 cs = 292
8438 goto _testEof
8439 _testEof293:
8440 goto _test_eof
8441 _test_eof293:
84408442 cs = 293
8441 goto _testEof
8442 _testEof294:
8443 goto _test_eof
8444 _test_eof294:
84438445 cs = 294
8444 goto _testEof
8445 _testEof295:
8446 goto _test_eof
8447 _test_eof295:
84468448 cs = 295
8447 goto _testEof
8448 _testEof296:
8449 goto _test_eof
8450 _test_eof296:
84498451 cs = 296
8450 goto _testEof
8451 _testEof297:
8452 goto _test_eof
8453 _test_eof297:
84528454 cs = 297
8453 goto _testEof
8454 _testEof298:
8455 goto _test_eof
8456 _test_eof298:
84558457 cs = 298
8456 goto _testEof
8457 _testEof299:
8458 goto _test_eof
8459 _test_eof299:
84588460 cs = 299
8459 goto _testEof
8460 _testEof300:
8461 goto _test_eof
8462 _test_eof300:
84618463 cs = 300
8462 goto _testEof
8463 _testEof301:
8464 goto _test_eof
8465 _test_eof301:
84648466 cs = 301
8465 goto _testEof
8466 _testEof302:
8467 goto _test_eof
8468 _test_eof302:
84678469 cs = 302
8468 goto _testEof
8469 _testEof303:
8470 goto _test_eof
8471 _test_eof303:
84708472 cs = 303
8471 goto _testEof
8472 _testEof304:
8473 goto _test_eof
8474 _test_eof304:
84738475 cs = 304
8474 goto _testEof
8475 _testEof305:
8476 goto _test_eof
8477 _test_eof305:
84768478 cs = 305
8477 goto _testEof
8478 _testEof306:
8479 goto _test_eof
8480 _test_eof306:
84798481 cs = 306
8480 goto _testEof
8481 _testEof307:
8482 goto _test_eof
8483 _test_eof307:
84828484 cs = 307
8483 goto _testEof
8484 _testEof308:
8485 goto _test_eof
8486 _test_eof308:
84858487 cs = 308
8486 goto _testEof
8487 _testEof309:
8488 goto _test_eof
8489 _test_eof309:
84888490 cs = 309
8489 goto _testEof
8490 _testEof310:
8491 goto _test_eof
8492 _test_eof310:
84918493 cs = 310
8492 goto _testEof
8493 _testEof311:
8494 goto _test_eof
8495 _test_eof311:
84948496 cs = 311
8495 goto _testEof
8496 _testEof312:
8497 goto _test_eof
8498 _test_eof312:
84978499 cs = 312
8498 goto _testEof
8499 _testEof313:
8500 goto _test_eof
8501 _test_eof313:
85008502 cs = 313
8501 goto _testEof
8502 _testEof314:
8503 goto _test_eof
8504 _test_eof314:
85038505 cs = 314
8504 goto _testEof
8505 _testEof315:
8506 goto _test_eof
8507 _test_eof315:
85068508 cs = 315
8507 goto _testEof
8508 _testEof316:
8509 goto _test_eof
8510 _test_eof316:
85098511 cs = 316
8510 goto _testEof
8511 _testEof317:
8512 goto _test_eof
8513 _test_eof317:
85128514 cs = 317
8513 goto _testEof
8514 _testEof318:
8515 goto _test_eof
8516 _test_eof318:
85158517 cs = 318
8516 goto _testEof
8517 _testEof319:
8518 goto _test_eof
8519 _test_eof319:
85188520 cs = 319
8519 goto _testEof
8520 _testEof320:
8521 goto _test_eof
8522 _test_eof320:
85218523 cs = 320
8522 goto _testEof
8523 _testEof321:
8524 goto _test_eof
8525 _test_eof321:
85248526 cs = 321
8525 goto _testEof
8526 _testEof322:
8527 goto _test_eof
8528 _test_eof322:
85278529 cs = 322
8528 goto _testEof
8529 _testEof323:
8530 goto _test_eof
8531 _test_eof323:
85308532 cs = 323
8531 goto _testEof
8532 _testEof324:
8533 goto _test_eof
8534 _test_eof324:
85338535 cs = 324
8534 goto _testEof
8535 _testEof325:
8536 goto _test_eof
8537 _test_eof325:
85368538 cs = 325
8537 goto _testEof
8538 _testEof326:
8539 goto _test_eof
8540 _test_eof326:
85398541 cs = 326
8540 goto _testEof
8541 _testEof327:
8542 goto _test_eof
8543 _test_eof327:
85428544 cs = 327
8543 goto _testEof
8544 _testEof328:
8545 goto _test_eof
8546 _test_eof328:
85458547 cs = 328
8546 goto _testEof
8547 _testEof329:
8548 goto _test_eof
8549 _test_eof329:
85488550 cs = 329
8549 goto _testEof
8550 _testEof330:
8551 goto _test_eof
8552 _test_eof330:
85518553 cs = 330
8552 goto _testEof
8553 _testEof331:
8554 goto _test_eof
8555 _test_eof331:
85548556 cs = 331
8555 goto _testEof
8556 _testEof332:
8557 goto _test_eof
8558 _test_eof332:
85578559 cs = 332
8558 goto _testEof
8559 _testEof333:
8560 goto _test_eof
8561 _test_eof333:
85608562 cs = 333
8561 goto _testEof
8562 _testEof334:
8563 goto _test_eof
8564 _test_eof334:
85638565 cs = 334
8564 goto _testEof
8565 _testEof335:
8566 goto _test_eof
8567 _test_eof335:
85668568 cs = 335
8567 goto _testEof
8568 _testEof336:
8569 goto _test_eof
8570 _test_eof336:
85698571 cs = 336
8570 goto _testEof
8571 _testEof337:
8572 goto _test_eof
8573 _test_eof337:
85728574 cs = 337
8573 goto _testEof
8574 _testEof338:
8575 goto _test_eof
8576 _test_eof338:
85758577 cs = 338
8576 goto _testEof
8577 _testEof339:
8578 goto _test_eof
8579 _test_eof339:
85788580 cs = 339
8579 goto _testEof
8580 _testEof340:
8581 goto _test_eof
8582 _test_eof340:
85818583 cs = 340
8582 goto _testEof
8583 _testEof341:
8584 goto _test_eof
8585 _test_eof341:
85848586 cs = 341
8585 goto _testEof
8586 _testEof342:
8587 goto _test_eof
8588 _test_eof342:
85878589 cs = 342
8588 goto _testEof
8589 _testEof343:
8590 goto _test_eof
8591 _test_eof343:
85908592 cs = 343
8591 goto _testEof
8592 _testEof344:
8593 goto _test_eof
8594 _test_eof344:
85938595 cs = 344
8594 goto _testEof
8595 _testEof345:
8596 goto _test_eof
8597 _test_eof345:
85968598 cs = 345
8597 goto _testEof
8598 _testEof346:
8599 goto _test_eof
8600 _test_eof346:
85998601 cs = 346
8600 goto _testEof
8601 _testEof347:
8602 goto _test_eof
8603 _test_eof347:
86028604 cs = 347
8603 goto _testEof
8604 _testEof348:
8605 goto _test_eof
8606 _test_eof348:
86058607 cs = 348
8606 goto _testEof
8607 _testEof349:
8608 goto _test_eof
8609 _test_eof349:
86088610 cs = 349
8609 goto _testEof
8610 _testEof350:
8611 goto _test_eof
8612 _test_eof350:
86118613 cs = 350
8612 goto _testEof
8613 _testEof351:
8614 goto _test_eof
8615 _test_eof351:
86148616 cs = 351
8615 goto _testEof
8616 _testEof352:
8617 goto _test_eof
8618 _test_eof352:
86178619 cs = 352
8618 goto _testEof
8619 _testEof353:
8620 goto _test_eof
8621 _test_eof353:
86208622 cs = 353
8621 goto _testEof
8622 _testEof354:
8623 goto _test_eof
8624 _test_eof354:
86238625 cs = 354
8624 goto _testEof
8625 _testEof355:
8626 goto _test_eof
8627 _test_eof355:
86268628 cs = 355
8627 goto _testEof
8628 _testEof356:
8629 goto _test_eof
8630 _test_eof356:
86298631 cs = 356
8630 goto _testEof
8631 _testEof357:
8632 goto _test_eof
8633 _test_eof357:
86328634 cs = 357
8633 goto _testEof
8634 _testEof358:
8635 goto _test_eof
8636 _test_eof358:
86358637 cs = 358
8636 goto _testEof
8637 _testEof359:
8638 goto _test_eof
8639 _test_eof359:
86388640 cs = 359
8639 goto _testEof
8640 _testEof360:
8641 goto _test_eof
8642 _test_eof360:
86418643 cs = 360
8642 goto _testEof
8643 _testEof361:
8644 goto _test_eof
8645 _test_eof361:
86448646 cs = 361
8645 goto _testEof
8646 _testEof362:
8647 goto _test_eof
8648 _test_eof362:
86478649 cs = 362
8648 goto _testEof
8649 _testEof363:
8650 goto _test_eof
8651 _test_eof363:
86508652 cs = 363
8651 goto _testEof
8652 _testEof364:
8653 goto _test_eof
8654 _test_eof364:
86538655 cs = 364
8654 goto _testEof
8655 _testEof365:
8656 goto _test_eof
8657 _test_eof365:
86568658 cs = 365
8657 goto _testEof
8658 _testEof366:
8659 goto _test_eof
8660 _test_eof366:
86598661 cs = 366
8660 goto _testEof
8661 _testEof367:
8662 goto _test_eof
8663 _test_eof367:
86628664 cs = 367
8663 goto _testEof
8664 _testEof368:
8665 goto _test_eof
8666 _test_eof368:
86658667 cs = 368
8666 goto _testEof
8667 _testEof369:
8668 goto _test_eof
8669 _test_eof369:
86688670 cs = 369
8669 goto _testEof
8670 _testEof370:
8671 goto _test_eof
8672 _test_eof370:
86718673 cs = 370
8672 goto _testEof
8673 _testEof371:
8674 goto _test_eof
8675 _test_eof371:
86748676 cs = 371
8675 goto _testEof
8676 _testEof372:
8677 goto _test_eof
8678 _test_eof372:
86778679 cs = 372
8678 goto _testEof
8679 _testEof373:
8680 goto _test_eof
8681 _test_eof373:
86808682 cs = 373
8681 goto _testEof
8682 _testEof374:
8683 goto _test_eof
8684 _test_eof374:
86838685 cs = 374
8684 goto _testEof
8685 _testEof375:
8686 goto _test_eof
8687 _test_eof375:
86868688 cs = 375
8687 goto _testEof
8688 _testEof376:
8689 goto _test_eof
8690 _test_eof376:
86898691 cs = 376
8690 goto _testEof
8691 _testEof377:
8692 goto _test_eof
8693 _test_eof377:
86928694 cs = 377
8693 goto _testEof
8694 _testEof378:
8695 goto _test_eof
8696 _test_eof378:
86958697 cs = 378
8696 goto _testEof
8697 _testEof379:
8698 goto _test_eof
8699 _test_eof379:
86988700 cs = 379
8699 goto _testEof
8700 _testEof380:
8701 goto _test_eof
8702 _test_eof380:
87018703 cs = 380
8702 goto _testEof
8703 _testEof381:
8704 goto _test_eof
8705 _test_eof381:
87048706 cs = 381
8705 goto _testEof
8706 _testEof382:
8707 goto _test_eof
8708 _test_eof382:
87078709 cs = 382
8708 goto _testEof
8709 _testEof383:
8710 goto _test_eof
8711 _test_eof383:
87108712 cs = 383
8711 goto _testEof
8712 _testEof384:
8713 goto _test_eof
8714 _test_eof384:
87138715 cs = 384
8714 goto _testEof
8715 _testEof385:
8716 goto _test_eof
8717 _test_eof385:
87168718 cs = 385
8717 goto _testEof
8718 _testEof386:
8719 goto _test_eof
8720 _test_eof386:
87198721 cs = 386
8720 goto _testEof
8721 _testEof387:
8722 goto _test_eof
8723 _test_eof387:
87228724 cs = 387
8723 goto _testEof
8724 _testEof388:
8725 goto _test_eof
8726 _test_eof388:
87258727 cs = 388
8726 goto _testEof
8727 _testEof389:
8728 goto _test_eof
8729 _test_eof389:
87288730 cs = 389
8729 goto _testEof
8730 _testEof390:
8731 goto _test_eof
8732 _test_eof390:
87318733 cs = 390
8732 goto _testEof
8733 _testEof391:
8734 goto _test_eof
8735 _test_eof391:
87348736 cs = 391
8735 goto _testEof
8736 _testEof392:
8737 goto _test_eof
8738 _test_eof392:
87378739 cs = 392
8738 goto _testEof
8739 _testEof393:
8740 goto _test_eof
8741 _test_eof393:
87408742 cs = 393
8741 goto _testEof
8742 _testEof394:
8743 goto _test_eof
8744 _test_eof394:
87438745 cs = 394
8744 goto _testEof
8745 _testEof395:
8746 goto _test_eof
8747 _test_eof395:
87468748 cs = 395
8747 goto _testEof
8748 _testEof396:
8749 goto _test_eof
8750 _test_eof396:
87498751 cs = 396
8750 goto _testEof
8751 _testEof397:
8752 goto _test_eof
8753 _test_eof397:
87528754 cs = 397
8753 goto _testEof
8754 _testEof398:
8755 goto _test_eof
8756 _test_eof398:
87558757 cs = 398
8756 goto _testEof
8757 _testEof399:
8758 goto _test_eof
8759 _test_eof399:
87588760 cs = 399
8759 goto _testEof
8760 _testEof400:
8761 goto _test_eof
8762 _test_eof400:
87618763 cs = 400
8762 goto _testEof
8763 _testEof401:
8764 goto _test_eof
8765 _test_eof401:
87648766 cs = 401
8765 goto _testEof
8766 _testEof402:
8767 goto _test_eof
8768 _test_eof402:
87678769 cs = 402
8768 goto _testEof
8769 _testEof403:
8770 goto _test_eof
8771 _test_eof403:
87708772 cs = 403
8771 goto _testEof
8772 _testEof404:
8773 goto _test_eof
8774 _test_eof404:
87738775 cs = 404
8774 goto _testEof
8775 _testEof405:
8776 goto _test_eof
8777 _test_eof405:
87768778 cs = 405
8777 goto _testEof
8778 _testEof406:
8779 goto _test_eof
8780 _test_eof406:
87798781 cs = 406
8780 goto _testEof
8781 _testEof407:
8782 goto _test_eof
8783 _test_eof407:
87828784 cs = 407
8783 goto _testEof
8784 _testEof408:
8785 goto _test_eof
8786 _test_eof408:
87858787 cs = 408
8786 goto _testEof
8787 _testEof409:
8788 goto _test_eof
8789 _test_eof409:
87888790 cs = 409
8789 goto _testEof
8790 _testEof410:
8791 goto _test_eof
8792 _test_eof410:
87918793 cs = 410
8792 goto _testEof
8793 _testEof411:
8794 goto _test_eof
8795 _test_eof411:
87948796 cs = 411
8795 goto _testEof
8796 _testEof412:
8797 goto _test_eof
8798 _test_eof412:
87978799 cs = 412
8798 goto _testEof
8799 _testEof413:
8800 goto _test_eof
8801 _test_eof413:
88008802 cs = 413
8801 goto _testEof
8802 _testEof414:
8803 goto _test_eof
8804 _test_eof414:
88038805 cs = 414
8804 goto _testEof
8805 _testEof415:
8806 goto _test_eof
8807 _test_eof415:
88068808 cs = 415
8807 goto _testEof
8808 _testEof416:
8809 goto _test_eof
8810 _test_eof416:
88098811 cs = 416
8810 goto _testEof
8811 _testEof417:
8812 goto _test_eof
8813 _test_eof417:
88128814 cs = 417
8813 goto _testEof
8814 _testEof418:
8815 goto _test_eof
8816 _test_eof418:
88158817 cs = 418
8816 goto _testEof
8817 _testEof419:
8818 goto _test_eof
8819 _test_eof419:
88188820 cs = 419
8819 goto _testEof
8820 _testEof420:
8821 goto _test_eof
8822 _test_eof420:
88218823 cs = 420
8822 goto _testEof
8823 _testEof421:
8824 goto _test_eof
8825 _test_eof421:
88248826 cs = 421
8825 goto _testEof
8826 _testEof422:
8827 goto _test_eof
8828 _test_eof422:
88278829 cs = 422
8828 goto _testEof
8829 _testEof423:
8830 goto _test_eof
8831 _test_eof423:
88308832 cs = 423
8831 goto _testEof
8832 _testEof424:
8833 goto _test_eof
8834 _test_eof424:
88338835 cs = 424
8834 goto _testEof
8835 _testEof425:
8836 goto _test_eof
8837 _test_eof425:
88368838 cs = 425
8837 goto _testEof
8838 _testEof426:
8839 goto _test_eof
8840 _test_eof426:
88398841 cs = 426
8840 goto _testEof
8841 _testEof427:
8842 goto _test_eof
8843 _test_eof427:
88428844 cs = 427
8843 goto _testEof
8844 _testEof428:
8845 goto _test_eof
8846 _test_eof428:
88458847 cs = 428
8846 goto _testEof
8847 _testEof429:
8848 goto _test_eof
8849 _test_eof429:
88488850 cs = 429
8849 goto _testEof
8850 _testEof430:
8851 goto _test_eof
8852 _test_eof430:
88518853 cs = 430
8852 goto _testEof
8853 _testEof431:
8854 goto _test_eof
8855 _test_eof431:
88548856 cs = 431
8855 goto _testEof
8856 _testEof432:
8857 goto _test_eof
8858 _test_eof432:
88578859 cs = 432
8858 goto _testEof
8859 _testEof433:
8860 goto _test_eof
8861 _test_eof433:
88608862 cs = 433
8861 goto _testEof
8862 _testEof434:
8863 goto _test_eof
8864 _test_eof434:
88638865 cs = 434
8864 goto _testEof
8865 _testEof435:
8866 goto _test_eof
8867 _test_eof435:
88668868 cs = 435
8867 goto _testEof
8868 _testEof436:
8869 goto _test_eof
8870 _test_eof436:
88698871 cs = 436
8870 goto _testEof
8871 _testEof437:
8872 goto _test_eof
8873 _test_eof437:
88728874 cs = 437
8873 goto _testEof
8874 _testEof438:
8875 goto _test_eof
8876 _test_eof438:
88758877 cs = 438
8876 goto _testEof
8877 _testEof439:
8878 goto _test_eof
8879 _test_eof439:
88788880 cs = 439
8879 goto _testEof
8880 _testEof440:
8881 goto _test_eof
8882 _test_eof440:
88818883 cs = 440
8882 goto _testEof
8883 _testEof441:
8884 goto _test_eof
8885 _test_eof441:
88848886 cs = 441
8885 goto _testEof
8886 _testEof442:
8887 goto _test_eof
8888 _test_eof442:
88878889 cs = 442
8888 goto _testEof
8889 _testEof443:
8890 goto _test_eof
8891 _test_eof443:
88908892 cs = 443
8891 goto _testEof
8892 _testEof444:
8893 goto _test_eof
8894 _test_eof444:
88938895 cs = 444
8894 goto _testEof
8895 _testEof445:
8896 goto _test_eof
8897 _test_eof445:
88968898 cs = 445
8897 goto _testEof
8898 _testEof446:
8899 goto _test_eof
8900 _test_eof446:
88998901 cs = 446
8900 goto _testEof
8901 _testEof447:
8902 goto _test_eof
8903 _test_eof447:
89028904 cs = 447
8903 goto _testEof
8904 _testEof448:
8905 goto _test_eof
8906 _test_eof448:
89058907 cs = 448
8906 goto _testEof
8907 _testEof449:
8908 goto _test_eof
8909 _test_eof449:
89088910 cs = 449
8909 goto _testEof
8910 _testEof450:
8911 goto _test_eof
8912 _test_eof450:
89118913 cs = 450
8912 goto _testEof
8913 _testEof451:
8914 goto _test_eof
8915 _test_eof451:
89148916 cs = 451
8915 goto _testEof
8916 _testEof452:
8917 goto _test_eof
8918 _test_eof452:
89178919 cs = 452
8918 goto _testEof
8919 _testEof453:
8920 goto _test_eof
8921 _test_eof453:
89208922 cs = 453
8921 goto _testEof
8922 _testEof454:
8923 goto _test_eof
8924 _test_eof454:
89238925 cs = 454
8924 goto _testEof
8925 _testEof455:
8926 goto _test_eof
8927 _test_eof455:
89268928 cs = 455
8927 goto _testEof
8928 _testEof456:
8929 goto _test_eof
8930 _test_eof456:
89298931 cs = 456
8930 goto _testEof
8931 _testEof457:
8932 goto _test_eof
8933 _test_eof457:
89328934 cs = 457
8933 goto _testEof
8934 _testEof458:
8935 goto _test_eof
8936 _test_eof458:
89358937 cs = 458
8936 goto _testEof
8937 _testEof459:
8938 goto _test_eof
8939 _test_eof459:
89388940 cs = 459
8939 goto _testEof
8940 _testEof460:
8941 goto _test_eof
8942 _test_eof460:
89418943 cs = 460
8942 goto _testEof
8943 _testEof461:
8944 goto _test_eof
8945 _test_eof461:
89448946 cs = 461
8945 goto _testEof
8946 _testEof462:
8947 goto _test_eof
8948 _test_eof462:
89478949 cs = 462
8948 goto _testEof
8949 _testEof463:
8950 goto _test_eof
8951 _test_eof463:
89508952 cs = 463
8951 goto _testEof
8952 _testEof464:
8953 goto _test_eof
8954 _test_eof464:
89538955 cs = 464
8954 goto _testEof
8955 _testEof465:
8956 goto _test_eof
8957 _test_eof465:
89568958 cs = 465
8957 goto _testEof
8958 _testEof466:
8959 goto _test_eof
8960 _test_eof466:
89598961 cs = 466
8960 goto _testEof
8961 _testEof467:
8962 goto _test_eof
8963 _test_eof467:
89628964 cs = 467
8963 goto _testEof
8964 _testEof468:
8965 goto _test_eof
8966 _test_eof468:
89658967 cs = 468
8966 goto _testEof
8967 _testEof469:
8968 goto _test_eof
8969 _test_eof469:
89688970 cs = 469
8969 goto _testEof
8970 _testEof470:
8971 goto _test_eof
8972 _test_eof470:
89718973 cs = 470
8972 goto _testEof
8973 _testEof471:
8974 goto _test_eof
8975 _test_eof471:
89748976 cs = 471
8975 goto _testEof
8976 _testEof472:
8977 goto _test_eof
8978 _test_eof472:
89778979 cs = 472
8978 goto _testEof
8979 _testEof473:
8980 goto _test_eof
8981 _test_eof473:
89808982 cs = 473
8981 goto _testEof
8982 _testEof474:
8983 goto _test_eof
8984 _test_eof474:
89838985 cs = 474
8984 goto _testEof
8985 _testEof475:
8986 goto _test_eof
8987 _test_eof475:
89868988 cs = 475
8987 goto _testEof
8988 _testEof476:
8989 goto _test_eof
8990 _test_eof476:
89898991 cs = 476
8990 goto _testEof
8991 _testEof477:
8992 goto _test_eof
8993 _test_eof477:
89928994 cs = 477
8993 goto _testEof
8994 _testEof478:
8995 goto _test_eof
8996 _test_eof478:
89958997 cs = 478
8996 goto _testEof
8997 _testEof479:
8998 goto _test_eof
8999 _test_eof479:
89989000 cs = 479
8999 goto _testEof
9000 _testEof480:
9001 goto _test_eof
9002 _test_eof480:
90019003 cs = 480
9002 goto _testEof
9003 _testEof481:
9004 goto _test_eof
9005 _test_eof481:
90049006 cs = 481
9005 goto _testEof
9006 _testEof482:
9007 goto _test_eof
9008 _test_eof482:
90079009 cs = 482
9008 goto _testEof
9009 _testEof483:
9010 goto _test_eof
9011 _test_eof483:
90109012 cs = 483
9011 goto _testEof
9012 _testEof484:
9013 goto _test_eof
9014 _test_eof484:
90139015 cs = 484
9014 goto _testEof
9015 _testEof485:
9016 goto _test_eof
9017 _test_eof485:
90169018 cs = 485
9017 goto _testEof
9018 _testEof486:
9019 goto _test_eof
9020 _test_eof486:
90199021 cs = 486
9020 goto _testEof
9021 _testEof487:
9022 goto _test_eof
9023 _test_eof487:
90229024 cs = 487
9023 goto _testEof
9024 _testEof488:
9025 goto _test_eof
9026 _test_eof488:
90259027 cs = 488
9026 goto _testEof
9027 _testEof489:
9028 goto _test_eof
9029 _test_eof489:
90289030 cs = 489
9029 goto _testEof
9030 _testEof490:
9031 goto _test_eof
9032 _test_eof490:
90319033 cs = 490
9032 goto _testEof
9033 _testEof491:
9034 goto _test_eof
9035 _test_eof491:
90349036 cs = 491
9035 goto _testEof
9036 _testEof492:
9037 goto _test_eof
9038 _test_eof492:
90379039 cs = 492
9038 goto _testEof
9039 _testEof493:
9040 goto _test_eof
9041 _test_eof493:
90409042 cs = 493
9041 goto _testEof
9042 _testEof494:
9043 goto _test_eof
9044 _test_eof494:
90439045 cs = 494
9044 goto _testEof
9045 _testEof495:
9046 goto _test_eof
9047 _test_eof495:
90469048 cs = 495
9047 goto _testEof
9048 _testEof496:
9049 goto _test_eof
9050 _test_eof496:
90499051 cs = 496
9050 goto _testEof
9051 _testEof497:
9052 goto _test_eof
9053 _test_eof497:
90529054 cs = 497
9053 goto _testEof
9054 _testEof498:
9055 goto _test_eof
9056 _test_eof498:
90559057 cs = 498
9056 goto _testEof
9057 _testEof499:
9058 goto _test_eof
9059 _test_eof499:
90589060 cs = 499
9059 goto _testEof
9060 _testEof500:
9061 goto _test_eof
9062 _test_eof500:
90619063 cs = 500
9062 goto _testEof
9063 _testEof501:
9064 goto _test_eof
9065 _test_eof501:
90649066 cs = 501
9065 goto _testEof
9066 _testEof502:
9067 goto _test_eof
9068 _test_eof502:
90679069 cs = 502
9068 goto _testEof
9069 _testEof503:
9070 goto _test_eof
9071 _test_eof503:
90709072 cs = 503
9071 goto _testEof
9072 _testEof504:
9073 goto _test_eof
9074 _test_eof504:
90739075 cs = 504
9074 goto _testEof
9075 _testEof505:
9076 goto _test_eof
9077 _test_eof505:
90769078 cs = 505
9077 goto _testEof
9078 _testEof506:
9079 goto _test_eof
9080 _test_eof506:
90799081 cs = 506
9080 goto _testEof
9081 _testEof507:
9082 goto _test_eof
9083 _test_eof507:
90829084 cs = 507
9083 goto _testEof
9084 _testEof508:
9085 goto _test_eof
9086 _test_eof508:
90859087 cs = 508
9086 goto _testEof
9087 _testEof509:
9088 goto _test_eof
9089 _test_eof509:
90889090 cs = 509
9089 goto _testEof
9090 _testEof510:
9091 goto _test_eof
9092 _test_eof510:
90919093 cs = 510
9092 goto _testEof
9093 _testEof511:
9094 goto _test_eof
9095 _test_eof511:
90949096 cs = 511
9095 goto _testEof
9096 _testEof512:
9097 goto _test_eof
9098 _test_eof512:
90979099 cs = 512
9098 goto _testEof
9099 _testEof513:
9100 goto _test_eof
9101 _test_eof513:
91009102 cs = 513
9101 goto _testEof
9102 _testEof514:
9103 goto _test_eof
9104 _test_eof514:
91039105 cs = 514
9104 goto _testEof
9105 _testEof515:
9106 goto _test_eof
9107 _test_eof515:
91069108 cs = 515
9107 goto _testEof
9108 _testEof516:
9109 goto _test_eof
9110 _test_eof516:
91099111 cs = 516
9110 goto _testEof
9111 _testEof517:
9112 goto _test_eof
9113 _test_eof517:
91129114 cs = 517
9113 goto _testEof
9114 _testEof518:
9115 goto _test_eof
9116 _test_eof518:
91159117 cs = 518
9116 goto _testEof
9117 _testEof519:
9118 goto _test_eof
9119 _test_eof519:
91189120 cs = 519
9119 goto _testEof
9120 _testEof520:
9121 goto _test_eof
9122 _test_eof520:
91219123 cs = 520
9122 goto _testEof
9123 _testEof521:
9124 goto _test_eof
9125 _test_eof521:
91249126 cs = 521
9125 goto _testEof
9126 _testEof522:
9127 goto _test_eof
9128 _test_eof522:
91279129 cs = 522
9128 goto _testEof
9129 _testEof523:
9130 goto _test_eof
9131 _test_eof523:
91309132 cs = 523
9131 goto _testEof
9132 _testEof524:
9133 goto _test_eof
9134 _test_eof524:
91339135 cs = 524
9134 goto _testEof
9135 _testEof525:
9136 goto _test_eof
9137 _test_eof525:
91369138 cs = 525
9137 goto _testEof
9138 _testEof526:
9139 goto _test_eof
9140 _test_eof526:
91399141 cs = 526
9140 goto _testEof
9141 _testEof527:
9142 goto _test_eof
9143 _test_eof527:
91429144 cs = 527
9143 goto _testEof
9144 _testEof528:
9145 goto _test_eof
9146 _test_eof528:
91459147 cs = 528
9146 goto _testEof
9147 _testEof529:
9148 goto _test_eof
9149 _test_eof529:
91489150 cs = 529
9149 goto _testEof
9150 _testEof530:
9151 goto _test_eof
9152 _test_eof530:
91519153 cs = 530
9152 goto _testEof
9153 _testEof531:
9154 goto _test_eof
9155 _test_eof531:
91549156 cs = 531
9155 goto _testEof
9156 _testEof532:
9157 goto _test_eof
9158 _test_eof532:
91579159 cs = 532
9158 goto _testEof
9159 _testEof533:
9160 goto _test_eof
9161 _test_eof533:
91609162 cs = 533
9161 goto _testEof
9162 _testEof534:
9163 goto _test_eof
9164 _test_eof534:
91639165 cs = 534
9164 goto _testEof
9165 _testEof535:
9166 goto _test_eof
9167 _test_eof535:
91669168 cs = 535
9167 goto _testEof
9168 _testEof536:
9169 goto _test_eof
9170 _test_eof536:
91699171 cs = 536
9170 goto _testEof
9171 _testEof537:
9172 goto _test_eof
9173 _test_eof537:
91729174 cs = 537
9173 goto _testEof
9174 _testEof538:
9175 goto _test_eof
9176 _test_eof538:
91759177 cs = 538
9176 goto _testEof
9177 _testEof539:
9178 goto _test_eof
9179 _test_eof539:
91789180 cs = 539
9179 goto _testEof
9180 _testEof540:
9181 goto _test_eof
9182 _test_eof540:
91819183 cs = 540
9182 goto _testEof
9183 _testEof541:
9184 goto _test_eof
9185 _test_eof541:
91849186 cs = 541
9185 goto _testEof
9186 _testEof542:
9187 goto _test_eof
9188 _test_eof542:
91879189 cs = 542
9188 goto _testEof
9189 _testEof543:
9190 goto _test_eof
9191 _test_eof543:
91909192 cs = 543
9191 goto _testEof
9192 _testEof544:
9193 goto _test_eof
9194 _test_eof544:
91939195 cs = 544
9194 goto _testEof
9195 _testEof545:
9196 goto _test_eof
9197 _test_eof545:
91969198 cs = 545
9197 goto _testEof
9198 _testEof546:
9199 goto _test_eof
9200 _test_eof546:
91999201 cs = 546
9200 goto _testEof
9201 _testEof547:
9202 goto _test_eof
9203 _test_eof547:
92029204 cs = 547
9203 goto _testEof
9204 _testEof548:
9205 goto _test_eof
9206 _test_eof548:
92059207 cs = 548
9206 goto _testEof
9207 _testEof549:
9208 goto _test_eof
9209 _test_eof549:
92089210 cs = 549
9209 goto _testEof
9210 _testEof550:
9211 goto _test_eof
9212 _test_eof550:
92119213 cs = 550
9212 goto _testEof
9213 _testEof551:
9214 goto _test_eof
9215 _test_eof551:
92149216 cs = 551
9215 goto _testEof
9216 _testEof552:
9217 goto _test_eof
9218 _test_eof552:
92179219 cs = 552
9218 goto _testEof
9219 _testEof553:
9220 goto _test_eof
9221 _test_eof553:
92209222 cs = 553
9221 goto _testEof
9222 _testEof554:
9223 goto _test_eof
9224 _test_eof554:
92239225 cs = 554
9224 goto _testEof
9225 _testEof555:
9226 goto _test_eof
9227 _test_eof555:
92269228 cs = 555
9227 goto _testEof
9228 _testEof556:
9229 goto _test_eof
9230 _test_eof556:
92299231 cs = 556
9230 goto _testEof
9231 _testEof557:
9232 goto _test_eof
9233 _test_eof557:
92329234 cs = 557
9233 goto _testEof
9234 _testEof558:
9235 goto _test_eof
9236 _test_eof558:
92359237 cs = 558
9236 goto _testEof
9237 _testEof559:
9238 goto _test_eof
9239 _test_eof559:
92389240 cs = 559
9239 goto _testEof
9240 _testEof560:
9241 goto _test_eof
9242 _test_eof560:
92419243 cs = 560
9242 goto _testEof
9243 _testEof561:
9244 goto _test_eof
9245 _test_eof561:
92449246 cs = 561
9245 goto _testEof
9246 _testEof562:
9247 goto _test_eof
9248 _test_eof562:
92479249 cs = 562
9248 goto _testEof
9249 _testEof563:
9250 goto _test_eof
9251 _test_eof563:
92509252 cs = 563
9251 goto _testEof
9252 _testEof564:
9253 goto _test_eof
9254 _test_eof564:
92539255 cs = 564
9254 goto _testEof
9255 _testEof565:
9256 goto _test_eof
9257 _test_eof565:
92569258 cs = 565
9257 goto _testEof
9258 _testEof566:
9259 goto _test_eof
9260 _test_eof566:
92599261 cs = 566
9260 goto _testEof
9261 _testEof567:
9262 goto _test_eof
9263 _test_eof567:
92629264 cs = 567
9263 goto _testEof
9264 _testEof568:
9265 goto _test_eof
9266 _test_eof568:
92659267 cs = 568
9266 goto _testEof
9267 _testEof569:
9268 goto _test_eof
9269 _test_eof569:
92689270 cs = 569
9269 goto _testEof
9270 _testEof570:
9271 goto _test_eof
9272 _test_eof570:
92719273 cs = 570
9272 goto _testEof
9273 _testEof571:
9274 goto _test_eof
9275 _test_eof571:
92749276 cs = 571
9275 goto _testEof
9276 _testEof572:
9277 goto _test_eof
9278 _test_eof572:
92779279 cs = 572
9278 goto _testEof
9279 _testEof573:
9280 goto _test_eof
9281 _test_eof573:
92809282 cs = 573
9281 goto _testEof
9282 _testEof574:
9283 goto _test_eof
9284 _test_eof574:
92839285 cs = 574
9284 goto _testEof
9285 _testEof575:
9286 goto _test_eof
9287 _test_eof575:
92869288 cs = 575
9287 goto _testEof
9288 _testEof576:
9289 goto _test_eof
9290 _test_eof576:
92899291 cs = 576
9290 goto _testEof
9291 _testEof577:
9292 goto _test_eof
9293 _test_eof577:
92929294 cs = 577
9293 goto _testEof
9294 _testEof578:
9295 goto _test_eof
9296 _test_eof578:
92959297 cs = 578
9296 goto _testEof
9297 _testEof579:
9298 goto _test_eof
9299 _test_eof579:
92989300 cs = 579
9299 goto _testEof
9300 _testEof580:
9301 goto _test_eof
9302 _test_eof580:
93019303 cs = 580
9302 goto _testEof
9303 _testEof581:
9304 goto _test_eof
9305 _test_eof581:
93049306 cs = 581
9305 goto _testEof
9306 _testEof582:
9307 goto _test_eof
9308 _test_eof582:
93079309 cs = 582
9308 goto _testEof
9309 _testEof583:
9310 goto _test_eof
9311 _test_eof583:
93109312 cs = 583
9311 goto _testEof
9312 _testEof584:
9313 goto _test_eof
9314 _test_eof584:
93139315 cs = 584
9314 goto _testEof
9315 _testEof585:
9316 goto _test_eof
9317 _test_eof585:
93169318 cs = 585
9317 goto _testEof
9318 _testEof586:
9319 goto _test_eof
9320 _test_eof586:
93199321 cs = 586
9320 goto _testEof
9321 _testEof587:
9322 goto _test_eof
9323 _test_eof587:
93229324 cs = 587
9323 goto _testEof
9324 _testEof588:
9325 goto _test_eof
9326 _test_eof588:
93259327 cs = 588
9326 goto _testEof
9327 _testEof590:
9328 goto _test_eof
9329 _test_eof590:
93289330 cs = 590
9329 goto _testEof
9330 _testEof51:
9331 goto _test_eof
9332 _test_eof51:
93319333 cs = 51
9332 goto _testEof
9333 _testEof52:
9334 goto _test_eof
9335 _test_eof52:
93349336 cs = 52
9335 goto _testEof
9336 _testEof53:
9337 goto _test_eof
9338 _test_eof53:
93379339 cs = 53
9338 goto _testEof
9339 _testEof54:
9340 goto _test_eof
9341 _test_eof54:
93409342 cs = 54
9341 goto _testEof
9342 _testEof55:
9343 goto _test_eof
9344 _test_eof55:
93439345 cs = 55
9344 goto _testEof
9345 _testEof56:
9346 goto _test_eof
9347 _test_eof56:
93469348 cs = 56
9347 goto _testEof
9348 _testEof57:
9349 goto _test_eof
9350 _test_eof57:
93499351 cs = 57
9350 goto _testEof
9351 _testEof58:
9352 goto _test_eof
9353 _test_eof58:
93529354 cs = 58
9353 goto _testEof
9354
9355 _testEof:
9355 goto _test_eof
9356
9357 _test_eof:
93569358 {
93579359 }
93589360 if p == eof {
94119413 text := data[pb:p]
94129414 // Strip backslashes only when there are ...
94139415 if len(backslashes) > 0 {
9414 text = rmchars(text, backslashes, pb)
9416 text = common.RemoveBytes(text, backslashes, pb)
94159417 }
94169418 // Assuming SD map already exists, contains currentid key and currentparamname key (set from outside)
94179419 elements := *sm.structuredData
94319433 text := data[pb:p]
94329434 // Strip backslashes only when there are ...
94339435 if len(backslashes) > 0 {
9434 text = rmchars(text, backslashes, pb)
9436 text = common.RemoveBytes(text, backslashes, pb)
94359437 }
94369438 // Assuming SD map already exists, contains currentid key and currentparamname key (set from outside)
94379439 elements := *sm.structuredData
95909592 sort.Strings(names)
95919593
95929594 for _, name := range names {
9593 sd += fmt.Sprintf(" %s=\"%s\"", name, escape(params[name]))
9595 sd += fmt.Sprintf(" %s=\"%s\"", name, common.EscapeBytes(params[name]))
95949596 }
95959597 sd += "]"
95969598 }
33 "time"
44 "sort"
55 "fmt"
6
7 "github.com/influxdata/go-syslog/v2/common"
68 )
79
810 %%{
911 machine builder;
1012
11 include rfc5424 "rfc5424.rl";
13 include common "common.rl";
1214
1315 action mark {
1416 pb = p
4850 if sm.structuredData == nil {
4951 sm.structuredData = &(map[string]map[string]string{})
5052 }
51
53
5254 id := string(data[pb:p])
5355 elements := *sm.structuredData
5456 if _, ok := elements[id]; !ok {
7173 text := data[pb:p]
7274 // Strip backslashes only when there are ...
7375 if len(backslashes) > 0 {
74 text = rmchars(text, backslashes, pb)
76 text = common.RemoveBytes(text, backslashes, pb)
7577 }
7678 // Assuming SD map already exists, contains currentid key and currentparamname key (set from outside)
7779 elements := *sm.structuredData
223225 func (sm *SyslogMessage) SetParameter(id string, name string, value string) *SyslogMessage {
224226 // Create an element with the given id (or re-use the existing one)
225227 sm.set(sdid, id)
226
228
227229 // We can create parameter iff the given element id exists
228230 if sm.structuredData != nil {
229231 elements := *sm.structuredData
237239 }
238240 }
239241 }
240
242
241243 return sm
242244 }
243245
296298 sort.Strings(names)
297299
298300 for _, name := range names {
299 sd += fmt.Sprintf(" %s=\"%s\"", name, escape(params[name]))
301 sd += fmt.Sprintf(" %s=\"%s\"", name, common.EscapeBytes(params[name]))
300302 }
301303 sd += "]"
302304 }
306308 }
307309
308310 return fmt.Sprintf(template, *sm.priority, sm.version, t, hn, an, pid, mid, sd, m), nil
309 }
311 }
33 "testing"
44 "time"
55
6 "github.com/influxdata/go-syslog"
6 "github.com/influxdata/go-syslog/v2"
77 "github.com/stretchr/testify/assert"
88 )
99
1515
1616 // (note) > timestamp is invalid but it accepts until valid - ie., Z char
1717 // (note) > this dependes on the builder internal parser which does not have a final state, nor we check for any error or final state
18 // (todo) > decide wheter to be more strict or not
18 // (todo) > decide whether to be more strict or not
1919 assert.Equal(t, time.Date(2003, 10, 11, 22, 14, 15, 3000, time.UTC), *m.SetTimestamp("2003-10-11T22:14:15.000003Z+02:00").Timestamp())
2020 }
2121
+0
-41
rfc5424/functions.go less more
0 package rfc5424
1
2 // unsafeUTF8DecimalCodePointsToInt converts a slice containing
3 // a series of UTF-8 decimal code points into their integer rapresentation.
4 //
5 // It assumes input code points are in the range 48-57.
6 // Returns a pointer since an empty slice is equal to nil and not to the zero value of the codomain (ie., `int`).
7 func unsafeUTF8DecimalCodePointsToInt(chars []uint8) int {
8 out := 0
9 ord := 1
10 for i := len(chars) - 1; i >= 0; i-- {
11 curchar := int(chars[i])
12 out += (curchar - '0') * ord
13 ord *= 10
14 }
15 return out
16 }
17
18 // escape adds a backslash to \, ], " characters
19 func escape(value string) string {
20 res := ""
21 for i, c := range value {
22 if c == 92 || c == 93 || c == 34 {
23 res += `\`
24 }
25 res += string(value[i])
26 }
27
28 return res
29 }
30
31 // rmchars remove byte at given positions starting from offset
32 func rmchars(data []byte, positions []int, offset int) []byte {
33 // We need a copy here to not modify original data
34 cp := append([]byte(nil), data...)
35 for i, pos := range positions {
36 at := pos - i - offset
37 cp = append(cp[:at], cp[(at+1):]...)
38 }
39 return cp
40 }
+0
-32
rfc5424/functions_test.go less more
0 package rfc5424
1
2 import (
3 "testing"
4
5 "github.com/stretchr/testify/assert"
6 )
7
8 func TestSimpleUTF8DecimalConversion(t *testing.T) {
9 slice := []uint8{49, 48, 49}
10 res := unsafeUTF8DecimalCodePointsToInt(slice)
11 assert.Equal(t, 101, res)
12 }
13
14 func TestNumberStartingWithZero(t *testing.T) {
15 slice := []uint8{48, 48, 50}
16 res := unsafeUTF8DecimalCodePointsToInt(slice)
17 assert.Equal(t, 2, res)
18 }
19
20 func TestCharsNotInRange(t *testing.T) {
21 point := 10
22 slice := []uint8{uint8(point)} // Line Feed (LF)
23 res := unsafeUTF8DecimalCodePointsToInt(slice)
24 assert.Equal(t, res, -(48 - point))
25 }
26
27 func TestAllDigits(t *testing.T) {
28 slice := []uint8{49, 50, 51, 52, 53, 54, 55, 56, 57, 48}
29 res := unsafeUTF8DecimalCodePointsToInt(slice)
30 assert.Equal(t, 1234567890, res)
31 }
11
22 import (
33 "fmt"
4 "github.com/influxdata/go-syslog"
54 "time"
5
6 "github.com/influxdata/go-syslog/v2"
7 "github.com/influxdata/go-syslog/v2/common"
68 )
79
8 var (
9 errPrival = "expecting a priority value in the range 1-191 or equal to 0 [col %d]"
10 errPri = "expecting a priority value within angle brackets [col %d]"
11 errVersion = "expecting a version value in the range 1-999 [col %d]"
12 errTimestamp = "expecting a RFC3339MICRO timestamp or a nil value [col %d]"
13 errHostname = "expecting an hostname (from 1 to max 255 US-ASCII characters) or a nil value [col %d]"
14 errAppname = "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value [col %d]"
15 errProcid = "expecting a procid (from 1 to max 128 US-ASCII characters) or a nil value [col %d]"
16 errMsgid = "expecting a msgid (from 1 to max 32 US-ASCII characters) or a nil value [col %d]"
17 errStructuredData = "expecting a structured data section containing one or more elements (`[id( key=\"value\")*]+`) or a nil value [col %d]"
18 errSdID = "expecting a structured data element id (from 1 to max 32 US-ASCII characters; except `=`, ` `, `]`, and `\"` [col %d]"
19 errSdIDDuplicated = "duplicate structured data element id [col %d]"
20 errSdParam = "expecting a structured data parameter (`key=\"value\"`, both part from 1 to max 32 US-ASCII characters; key cannot contain `=`, ` `, `]`, and `\"`, while value cannot contain `]`, backslash, and `\"` unless escaped) [col %d]"
21 errMsg = "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col %d]"
22 errEscape = "expecting chars `]`, `\"`, and `\\` to be escaped within param value [col %d]"
23 errParse = "parsing error [col %d]"
10 // ColumnPositionTemplate is the template used to communicate the column where errors occur.
11 var ColumnPositionTemplate = " [col %d]"
12
13 const (
14 // ErrPrival represents an error in the priority value (PRIVAL) inside the PRI part of the RFC5424 syslog message.
15 ErrPrival = "expecting a priority value in the range 1-191 or equal to 0"
16 // ErrPri represents an error in the PRI part of the RFC5424 syslog message.
17 ErrPri = "expecting a priority value within angle brackets"
18 // ErrVersion represents an error in the VERSION part of the RFC5424 syslog message.
19 ErrVersion = "expecting a version value in the range 1-999"
20 // ErrTimestamp represents an error in the TIMESTAMP part of the RFC5424 syslog message.
21 ErrTimestamp = "expecting a RFC3339MICRO timestamp or a nil value"
22 // ErrHostname represents an error in the HOSTNAME part of the RFC5424 syslog message.
23 ErrHostname = "expecting an hostname (from 1 to max 255 US-ASCII characters) or a nil value"
24 // ErrAppname represents an error in the APP-NAME part of the RFC5424 syslog message.
25 ErrAppname = "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value"
26 // ErrProcID represents an error in the PROCID part of the RFC5424 syslog message.
27 ErrProcID = "expecting a procid (from 1 to max 128 US-ASCII characters) or a nil value"
28 // ErrMsgID represents an error in the MSGID part of the RFC5424 syslog message.
29 ErrMsgID = "expecting a msgid (from 1 to max 32 US-ASCII characters) or a nil value"
30 // ErrStructuredData represents an error in the STRUCTURED DATA part of the RFC5424 syslog message.
31 ErrStructuredData = "expecting a structured data section containing one or more elements (`[id( key=\"value\")*]+`) or a nil value"
32 // ErrSdID represents an error regarding the ID of a STRUCTURED DATA element of the RFC5424 syslog message.
33 ErrSdID = "expecting a structured data element id (from 1 to max 32 US-ASCII characters; except `=`, ` `, `]`, and `\"`"
34 // ErrSdIDDuplicated represents an error occurring when two STRUCTURED DATA elementes have the same ID in a RFC5424 syslog message.
35 ErrSdIDDuplicated = "duplicate structured data element id"
36 // ErrSdParam represents an error regarding a STRUCTURED DATA PARAM of the RFC5424 syslog message.
37 ErrSdParam = "expecting a structured data parameter (`key=\"value\"`, both part from 1 to max 32 US-ASCII characters; key cannot contain `=`, ` `, `]`, and `\"`, while value cannot contain `]`, backslash, and `\"` unless escaped)"
38 // ErrMsg represents an error in the MESSAGE part of the RFC5424 syslog message.
39 ErrMsg = "expecting a free-form optional message in UTF-8 (starting with or without BOM)"
40 // ErrEscape represents the error for a RFC5424 syslog message occurring when a STRUCTURED DATA PARAM value contains '"', '\', or ']' not escaped.
41 ErrEscape = "expecting chars `]`, `\"`, and `\\` to be escaped within param value"
42 // ErrParse represents a general parsing error for a RFC5424 syslog message.
43 ErrParse = "parsing error"
2444 )
2545
2646 // RFC3339MICRO represents the timestamp format that RFC5424 mandates.
13281348 goto tr0
13291349 tr0:
13301350
1331 m.err = fmt.Errorf(errPri, m.p)
1351 m.err = fmt.Errorf(ErrPri+ColumnPositionTemplate, m.p)
13321352 (m.p)--
13331353
13341354 {
13381358 goto st0
13391359 tr2:
13401360
1341 m.err = fmt.Errorf(errPrival, m.p)
1361 m.err = fmt.Errorf(ErrPrival+ColumnPositionTemplate, m.p)
13421362 (m.p)--
13431363
13441364 {
13451365 goto st607
13461366 }
13471367
1348 m.err = fmt.Errorf(errPri, m.p)
1368 m.err = fmt.Errorf(ErrPri+ColumnPositionTemplate, m.p)
13491369 (m.p)--
13501370
13511371 {
13521372 goto st607
13531373 }
13541374
1355 m.err = fmt.Errorf(errParse, m.p)
1375 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
13561376 (m.p)--
13571377
13581378 {
13621382 goto st0
13631383 tr7:
13641384
1365 m.err = fmt.Errorf(errVersion, m.p)
1385 m.err = fmt.Errorf(ErrVersion+ColumnPositionTemplate, m.p)
13661386 (m.p)--
13671387
13681388 {
13691389 goto st607
13701390 }
13711391
1372 m.err = fmt.Errorf(errParse, m.p)
1392 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
13731393 (m.p)--
13741394
13751395 {
13791399 goto st0
13801400 tr9:
13811401
1382 m.err = fmt.Errorf(errParse, m.p)
1402 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
13831403 (m.p)--
13841404
13851405 {
13891409 goto st0
13901410 tr12:
13911411
1392 m.err = fmt.Errorf(errTimestamp, m.p)
1412 m.err = fmt.Errorf(ErrTimestamp+ColumnPositionTemplate, m.p)
13931413 (m.p)--
13941414
13951415 {
13961416 goto st607
13971417 }
13981418
1399 m.err = fmt.Errorf(errParse, m.p)
1419 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
14001420 (m.p)--
14011421
14021422 {
14061426 goto st0
14071427 tr16:
14081428
1409 m.err = fmt.Errorf(errHostname, m.p)
1429 m.err = fmt.Errorf(ErrHostname+ColumnPositionTemplate, m.p)
14101430 (m.p)--
14111431
14121432 {
14131433 goto st607
14141434 }
14151435
1416 m.err = fmt.Errorf(errParse, m.p)
1436 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
14171437 (m.p)--
14181438
14191439 {
14231443 goto st0
14241444 tr20:
14251445
1426 m.err = fmt.Errorf(errAppname, m.p)
1446 m.err = fmt.Errorf(ErrAppname+ColumnPositionTemplate, m.p)
14271447 (m.p)--
14281448
14291449 {
14301450 goto st607
14311451 }
14321452
1433 m.err = fmt.Errorf(errParse, m.p)
1453 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
14341454 (m.p)--
14351455
14361456 {
14401460 goto st0
14411461 tr24:
14421462
1443 m.err = fmt.Errorf(errProcid, m.p)
1463 m.err = fmt.Errorf(ErrProcID+ColumnPositionTemplate, m.p)
14441464 (m.p)--
14451465
14461466 {
14471467 goto st607
14481468 }
14491469
1450 m.err = fmt.Errorf(errParse, m.p)
1470 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
14511471 (m.p)--
14521472
14531473 {
14571477 goto st0
14581478 tr28:
14591479
1460 m.err = fmt.Errorf(errMsgid, m.p)
1480 m.err = fmt.Errorf(ErrMsgID+ColumnPositionTemplate, m.p)
14611481 (m.p)--
14621482
14631483 {
14641484 goto st607
14651485 }
14661486
1467 m.err = fmt.Errorf(errParse, m.p)
1487 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
14681488 (m.p)--
14691489
14701490 {
14741494 goto st0
14751495 tr30:
14761496
1477 m.err = fmt.Errorf(errMsgid, m.p)
1497 m.err = fmt.Errorf(ErrMsgID+ColumnPositionTemplate, m.p)
14781498 (m.p)--
14791499
14801500 {
14841504 goto st0
14851505 tr33:
14861506
1487 m.err = fmt.Errorf(errStructuredData, m.p)
1507 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
14881508 (m.p)--
14891509
14901510 {
15001520 output.message = string(m.data[m.msgat:m.p])
15011521 }
15021522
1503 m.err = fmt.Errorf(errMsg, m.p)
1523 m.err = fmt.Errorf(ErrMsg+ColumnPositionTemplate, m.p)
15041524 (m.p)--
15051525
15061526 {
15071527 goto st607
15081528 }
15091529
1510 m.err = fmt.Errorf(errParse, m.p)
1530 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
15111531 (m.p)--
15121532
15131533 {
15211541 if len(output.structuredData) == 0 {
15221542 output.hasElements = false
15231543 }
1524 m.err = fmt.Errorf(errSdID, m.p)
1544 m.err = fmt.Errorf(ErrSdID+ColumnPositionTemplate, m.p)
15251545 (m.p)--
15261546
15271547 {
15281548 goto st607
15291549 }
15301550
1531 m.err = fmt.Errorf(errStructuredData, m.p)
1551 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
15321552 (m.p)--
15331553
15341554 {
15401560
15411561 if _, ok := output.structuredData[string(m.text())]; ok {
15421562 // As per RFC5424 section 6.3.2 SD-ID MUST NOT exist more than once in a message
1543 m.err = fmt.Errorf(errSdIDDuplicated, m.p)
1563 m.err = fmt.Errorf(ErrSdIDDuplicated+ColumnPositionTemplate, m.p)
15441564 (m.p)--
15451565
15461566 {
15571577 if len(output.structuredData) == 0 {
15581578 output.hasElements = false
15591579 }
1560 m.err = fmt.Errorf(errSdID, m.p)
1580 m.err = fmt.Errorf(ErrSdID+ColumnPositionTemplate, m.p)
15611581 (m.p)--
15621582
15631583 {
15641584 goto st607
15651585 }
15661586
1567 m.err = fmt.Errorf(errStructuredData, m.p)
1587 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
15681588 (m.p)--
15691589
15701590 {
15771597 if len(output.structuredData) > 0 {
15781598 delete(output.structuredData[m.currentelem], m.currentparam)
15791599 }
1580 m.err = fmt.Errorf(errSdParam, m.p)
1600 m.err = fmt.Errorf(ErrSdParam+ColumnPositionTemplate, m.p)
15811601 (m.p)--
15821602
15831603 {
15841604 goto st607
15851605 }
15861606
1587 m.err = fmt.Errorf(errStructuredData, m.p)
1607 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
15881608 (m.p)--
15891609
15901610 {
15941614 goto st0
15951615 tr84:
15961616
1597 m.err = fmt.Errorf(errEscape, m.p)
1617 m.err = fmt.Errorf(ErrEscape+ColumnPositionTemplate, m.p)
15981618 (m.p)--
15991619
16001620 {
16041624 if len(output.structuredData) > 0 {
16051625 delete(output.structuredData[m.currentelem], m.currentparam)
16061626 }
1607 m.err = fmt.Errorf(errSdParam, m.p)
1627 m.err = fmt.Errorf(ErrSdParam+ColumnPositionTemplate, m.p)
16081628 (m.p)--
16091629
16101630 {
16111631 goto st607
16121632 }
16131633
1614 m.err = fmt.Errorf(errStructuredData, m.p)
1634 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
16151635 (m.p)--
16161636
16171637 {
16331653 output.timestampSet = true
16341654 }
16351655
1636 m.err = fmt.Errorf(errParse, m.p)
1656 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
16371657 (m.p)--
16381658
16391659 {
16431663 goto st0
16441664 tr645:
16451665
1646 m.err = fmt.Errorf(errStructuredData, m.p)
1666 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
16471667 (m.p)--
16481668
16491669 {
16501670 goto st607
16511671 }
16521672
1653 m.err = fmt.Errorf(errParse, m.p)
1673 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
16541674 (m.p)--
16551675
16561676 {
16881708 }
16891709 stCase3:
16901710
1691 output.priority = uint8(unsafeUTF8DecimalCodePointsToInt(m.text()))
1711 output.priority = uint8(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
16921712 output.prioritySet = true
16931713
16941714 if (m.data)[(m.p)] == 62 {
17151735 }
17161736 stCase5:
17171737
1718 output.version = uint16(unsafeUTF8DecimalCodePointsToInt(m.text()))
1738 output.version = uint16(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
17191739
17201740 if (m.data)[(m.p)] == 32 {
17211741 goto st6
21572177
21582178 if _, ok := output.structuredData[string(m.text())]; ok {
21592179 // As per RFC5424 section 6.3.2 SD-ID MUST NOT exist more than once in a message
2160 m.err = fmt.Errorf(errSdIDDuplicated, m.p)
2180 m.err = fmt.Errorf(ErrSdIDDuplicated+ColumnPositionTemplate, m.p)
21612181 (m.p)--
21622182
21632183 {
29472967
29482968 // Strip backslashes only when there are ...
29492969 if len(m.backslashat) > 0 {
2950 text = rmchars(text, m.backslashat, m.pb)
2970 text = common.RemoveBytes(text, m.backslashat, m.pb)
29512971 }
29522972 output.structuredData[m.currentelem][m.currentparam] = string(text)
29532973 }
29632983
29642984 // Strip backslashes only when there are ...
29652985 if len(m.backslashat) > 0 {
2966 text = rmchars(text, m.backslashat, m.pb)
2986 text = common.RemoveBytes(text, m.backslashat, m.pb)
29672987 }
29682988 output.structuredData[m.currentelem][m.currentparam] = string(text)
29692989 }
29853005
29863006 if _, ok := output.structuredData[string(m.text())]; ok {
29873007 // As per RFC5424 section 6.3.2 SD-ID MUST NOT exist more than once in a message
2988 m.err = fmt.Errorf(errSdIDDuplicated, m.p)
3008 m.err = fmt.Errorf(ErrSdIDDuplicated+ColumnPositionTemplate, m.p)
29893009 (m.p)--
29903010
29913011 {
97129732 }
97139733 stCase598:
97149734
9715 output.version = uint16(unsafeUTF8DecimalCodePointsToInt(m.text()))
9735 output.version = uint16(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
97169736
97179737 if (m.data)[(m.p)] == 32 {
97189738 goto st6
97279747 }
97289748 stCase599:
97299749
9730 output.version = uint16(unsafeUTF8DecimalCodePointsToInt(m.text()))
9750 output.version = uint16(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
97319751
97329752 if (m.data)[(m.p)] == 32 {
97339753 goto st6
97449764 }
97459765 stCase600:
97469766
9747 output.priority = uint8(unsafeUTF8DecimalCodePointsToInt(m.text()))
9767 output.priority = uint8(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
97489768 output.prioritySet = true
97499769
97509770 switch (m.data)[(m.p)] {
97689788 }
97699789 stCase601:
97709790
9771 output.priority = uint8(unsafeUTF8DecimalCodePointsToInt(m.text()))
9791 output.priority = uint8(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
97729792 output.prioritySet = true
97739793
97749794 if (m.data)[(m.p)] == 62 {
97849804 }
97859805 stCase602:
97869806
9787 output.priority = uint8(unsafeUTF8DecimalCodePointsToInt(m.text()))
9807 output.priority = uint8(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
97889808 output.prioritySet = true
97899809
97909810 if (m.data)[(m.p)] == 62 {
1163711657
1163811658 case 1:
1163911659
11640 m.err = fmt.Errorf(errPri, m.p)
11660 m.err = fmt.Errorf(ErrPri+ColumnPositionTemplate, m.p)
1164111661 (m.p)--
1164211662
1164311663 {
1164611666
1164711667 case 15, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132:
1164811668
11649 m.err = fmt.Errorf(errMsgid, m.p)
11669 m.err = fmt.Errorf(ErrMsgID+ColumnPositionTemplate, m.p)
1165011670 (m.p)--
1165111671
1165211672 {
1165511675
1165611676 case 16:
1165711677
11658 m.err = fmt.Errorf(errStructuredData, m.p)
11678 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
1165911679 (m.p)--
1166011680
1166111681 {
1166411684
1166511685 case 7:
1166611686
11667 m.err = fmt.Errorf(errParse, m.p)
11687 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1166811688 (m.p)--
1166911689
1167011690 {
1167311693
1167411694 case 5:
1167511695
11676 output.version = uint16(unsafeUTF8DecimalCodePointsToInt(m.text()))
11677
11678 m.err = fmt.Errorf(errParse, m.p)
11696 output.version = uint16(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
11697
11698 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1167911699 (m.p)--
1168011700
1168111701 {
1169611716 output.timestampSet = true
1169711717 }
1169811718
11699 m.err = fmt.Errorf(errParse, m.p)
11719 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1170011720 (m.p)--
1170111721
1170211722 {
1170511725
1170611726 case 4:
1170711727
11708 m.err = fmt.Errorf(errVersion, m.p)
11728 m.err = fmt.Errorf(ErrVersion+ColumnPositionTemplate, m.p)
1170911729 (m.p)--
1171011730
1171111731 {
1171211732 goto st607
1171311733 }
1171411734
11715 m.err = fmt.Errorf(errParse, m.p)
11735 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1171611736 (m.p)--
1171711737
1171811738 {
1172111741
1172211742 case 6, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597:
1172311743
11724 m.err = fmt.Errorf(errTimestamp, m.p)
11744 m.err = fmt.Errorf(ErrTimestamp+ColumnPositionTemplate, m.p)
1172511745 (m.p)--
1172611746
1172711747 {
1172811748 goto st607
1172911749 }
1173011750
11731 m.err = fmt.Errorf(errParse, m.p)
11751 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1173211752 (m.p)--
1173311753
1173411754 {
1173711757
1173811758 case 8, 9, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560:
1173911759
11740 m.err = fmt.Errorf(errHostname, m.p)
11760 m.err = fmt.Errorf(ErrHostname+ColumnPositionTemplate, m.p)
1174111761 (m.p)--
1174211762
1174311763 {
1174411764 goto st607
1174511765 }
1174611766
11747 m.err = fmt.Errorf(errParse, m.p)
11767 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1174811768 (m.p)--
1174911769
1175011770 {
1175311773
1175411774 case 10, 11, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306:
1175511775
11756 m.err = fmt.Errorf(errAppname, m.p)
11776 m.err = fmt.Errorf(ErrAppname+ColumnPositionTemplate, m.p)
1175711777 (m.p)--
1175811778
1175911779 {
1176011780 goto st607
1176111781 }
1176211782
11763 m.err = fmt.Errorf(errParse, m.p)
11783 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1176411784 (m.p)--
1176511785
1176611786 {
1176911789
1177011790 case 12, 13, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259:
1177111791
11772 m.err = fmt.Errorf(errProcid, m.p)
11792 m.err = fmt.Errorf(ErrProcID+ColumnPositionTemplate, m.p)
1177311793 (m.p)--
1177411794
1177511795 {
1177611796 goto st607
1177711797 }
1177811798
11779 m.err = fmt.Errorf(errParse, m.p)
11799 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1178011800 (m.p)--
1178111801
1178211802 {
1178511805
1178611806 case 14:
1178711807
11788 m.err = fmt.Errorf(errMsgid, m.p)
11808 m.err = fmt.Errorf(ErrMsgID+ColumnPositionTemplate, m.p)
1178911809 (m.p)--
1179011810
1179111811 {
1179211812 goto st607
1179311813 }
1179411814
11795 m.err = fmt.Errorf(errParse, m.p)
11815 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1179611816 (m.p)--
1179711817
1179811818 {
1180511825 if len(output.structuredData) == 0 {
1180611826 output.hasElements = false
1180711827 }
11808 m.err = fmt.Errorf(errSdID, m.p)
11828 m.err = fmt.Errorf(ErrSdID+ColumnPositionTemplate, m.p)
1180911829 (m.p)--
1181011830
1181111831 {
1181211832 goto st607
1181311833 }
1181411834
11815 m.err = fmt.Errorf(errStructuredData, m.p)
11835 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
1181611836 (m.p)--
1181711837
1181811838 {
1182411844 if len(output.structuredData) > 0 {
1182511845 delete(output.structuredData[m.currentelem], m.currentparam)
1182611846 }
11827 m.err = fmt.Errorf(errSdParam, m.p)
11847 m.err = fmt.Errorf(ErrSdParam+ColumnPositionTemplate, m.p)
1182811848 (m.p)--
1182911849
1183011850 {
1183111851 goto st607
1183211852 }
1183311853
11834 m.err = fmt.Errorf(errStructuredData, m.p)
11854 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
1183511855 (m.p)--
1183611856
1183711857 {
1184611866 output.message = string(m.data[m.msgat:m.p])
1184711867 }
1184811868
11849 m.err = fmt.Errorf(errMsg, m.p)
11869 m.err = fmt.Errorf(ErrMsg+ColumnPositionTemplate, m.p)
1185011870 (m.p)--
1185111871
1185211872 {
1185311873 goto st607
1185411874 }
1185511875
11856 m.err = fmt.Errorf(errParse, m.p)
11876 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1185711877 (m.p)--
1185811878
1185911879 {
1187211892
1187311893 if _, ok := output.structuredData[string(m.text())]; ok {
1187411894 // As per RFC5424 section 6.3.2 SD-ID MUST NOT exist more than once in a message
11875 m.err = fmt.Errorf(errSdIDDuplicated, m.p)
11895 m.err = fmt.Errorf(ErrSdIDDuplicated+ColumnPositionTemplate, m.p)
1187611896 (m.p)--
1187711897
1187811898 {
1188911909 if len(output.structuredData) == 0 {
1189011910 output.hasElements = false
1189111911 }
11892 m.err = fmt.Errorf(errSdID, m.p)
11912 m.err = fmt.Errorf(ErrSdID+ColumnPositionTemplate, m.p)
1189311913 (m.p)--
1189411914
1189511915 {
1189611916 goto st607
1189711917 }
1189811918
11899 m.err = fmt.Errorf(errStructuredData, m.p)
11919 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
1190011920 (m.p)--
1190111921
1190211922 {
1190511925
1190611926 case 2, 3, 600, 601, 602:
1190711927
11908 m.err = fmt.Errorf(errPrival, m.p)
11928 m.err = fmt.Errorf(ErrPrival+ColumnPositionTemplate, m.p)
1190911929 (m.p)--
1191011930
1191111931 {
1191211932 goto st607
1191311933 }
1191411934
11915 m.err = fmt.Errorf(errPri, m.p)
11935 m.err = fmt.Errorf(ErrPri+ColumnPositionTemplate, m.p)
1191611936 (m.p)--
1191711937
1191811938 {
1191911939 goto st607
1192011940 }
1192111941
11922 m.err = fmt.Errorf(errParse, m.p)
11942 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1192311943 (m.p)--
1192411944
1192511945 {
1192811948
1192911949 case 598, 599:
1193011950
11931 m.err = fmt.Errorf(errVersion, m.p)
11951 m.err = fmt.Errorf(ErrVersion+ColumnPositionTemplate, m.p)
1193211952 (m.p)--
1193311953
1193411954 {
1193511955 goto st607
1193611956 }
1193711957
11938 output.version = uint16(unsafeUTF8DecimalCodePointsToInt(m.text()))
11939
11940 m.err = fmt.Errorf(errParse, m.p)
11958 output.version = uint16(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
11959
11960 m.err = fmt.Errorf(ErrParse+ColumnPositionTemplate, m.p)
1194111961 (m.p)--
1194211962
1194311963 {
1194611966
1194711967 case 60, 61, 63:
1194811968
11949 m.err = fmt.Errorf(errEscape, m.p)
11969 m.err = fmt.Errorf(ErrEscape+ColumnPositionTemplate, m.p)
1195011970 (m.p)--
1195111971
1195211972 {
1195611976 if len(output.structuredData) > 0 {
1195711977 delete(output.structuredData[m.currentelem], m.currentparam)
1195811978 }
11959 m.err = fmt.Errorf(errSdParam, m.p)
11979 m.err = fmt.Errorf(ErrSdParam+ColumnPositionTemplate, m.p)
1196011980 (m.p)--
1196111981
1196211982 {
1196311983 goto st607
1196411984 }
1196511985
11966 m.err = fmt.Errorf(errStructuredData, m.p)
11986 m.err = fmt.Errorf(ErrStructuredData+ColumnPositionTemplate, m.p)
1196711987 (m.p)--
1196811988
1196911989 {
22 import (
33 "time"
44 "fmt"
5 "github.com/influxdata/go-syslog"
5
6 "github.com/influxdata/go-syslog/v2"
7 "github.com/influxdata/go-syslog/v2/common"
68 )
79
8 var (
9 errPrival = "expecting a priority value in the range 1-191 or equal to 0 [col %d]"
10 errPri = "expecting a priority value within angle brackets [col %d]"
11 errVersion = "expecting a version value in the range 1-999 [col %d]"
12 errTimestamp = "expecting a RFC3339MICRO timestamp or a nil value [col %d]"
13 errHostname = "expecting an hostname (from 1 to max 255 US-ASCII characters) or a nil value [col %d]"
14 errAppname = "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value [col %d]"
15 errProcid = "expecting a procid (from 1 to max 128 US-ASCII characters) or a nil value [col %d]"
16 errMsgid = "expecting a msgid (from 1 to max 32 US-ASCII characters) or a nil value [col %d]"
17 errStructuredData = "expecting a structured data section containing one or more elements (`[id( key=\"value\")*]+`) or a nil value [col %d]"
18 errSdID = "expecting a structured data element id (from 1 to max 32 US-ASCII characters; except `=`, ` `, `]`, and `\"` [col %d]"
19 errSdIDDuplicated = "duplicate structured data element id [col %d]"
20 errSdParam = "expecting a structured data parameter (`key=\"value\"`, both part from 1 to max 32 US-ASCII characters; key cannot contain `=`, ` `, `]`, and `\"`, while value cannot contain `]`, backslash, and `\"` unless escaped) [col %d]"
21 errMsg = "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col %d]"
22 errEscape = "expecting chars `]`, `\"`, and `\\` to be escaped within param value [col %d]"
23 errParse = "parsing error [col %d]"
10 // ColumnPositionTemplate is the template used to communicate the column where errors occur.
11 var ColumnPositionTemplate = " [col %d]"
12
13 const (
14 // ErrPrival represents an error in the priority value (PRIVAL) inside the PRI part of the RFC5424 syslog message.
15 ErrPrival = "expecting a priority value in the range 1-191 or equal to 0"
16 // ErrPri represents an error in the PRI part of the RFC5424 syslog message.
17 ErrPri = "expecting a priority value within angle brackets"
18 // ErrVersion represents an error in the VERSION part of the RFC5424 syslog message.
19 ErrVersion = "expecting a version value in the range 1-999"
20 // ErrTimestamp represents an error in the TIMESTAMP part of the RFC5424 syslog message.
21 ErrTimestamp = "expecting a RFC3339MICRO timestamp or a nil value"
22 // ErrHostname represents an error in the HOSTNAME part of the RFC5424 syslog message.
23 ErrHostname = "expecting an hostname (from 1 to max 255 US-ASCII characters) or a nil value"
24 // ErrAppname represents an error in the APP-NAME part of the RFC5424 syslog message.
25 ErrAppname = "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value"
26 // ErrProcID represents an error in the PROCID part of the RFC5424 syslog message.
27 ErrProcID = "expecting a procid (from 1 to max 128 US-ASCII characters) or a nil value"
28 // ErrMsgID represents an error in the MSGID part of the RFC5424 syslog message.
29 ErrMsgID = "expecting a msgid (from 1 to max 32 US-ASCII characters) or a nil value"
30 // ErrStructuredData represents an error in the STRUCTURED DATA part of the RFC5424 syslog message.
31 ErrStructuredData = "expecting a structured data section containing one or more elements (`[id( key=\"value\")*]+`) or a nil value"
32 // ErrSdID represents an error regarding the ID of a STRUCTURED DATA element of the RFC5424 syslog message.
33 ErrSdID = "expecting a structured data element id (from 1 to max 32 US-ASCII characters; except `=`, ` `, `]`, and `\"`"
34 // ErrSdIDDuplicated represents an error occurring when two STRUCTURED DATA elementes have the same ID in a RFC5424 syslog message.
35 ErrSdIDDuplicated = "duplicate structured data element id"
36 // ErrSdParam represents an error regarding a STRUCTURED DATA PARAM of the RFC5424 syslog message.
37 ErrSdParam = "expecting a structured data parameter (`key=\"value\"`, both part from 1 to max 32 US-ASCII characters; key cannot contain `=`, ` `, `]`, and `\"`, while value cannot contain `]`, backslash, and `\"` unless escaped)"
38 // ErrMsg represents an error in the MESSAGE part of the RFC5424 syslog message.
39 ErrMsg = "expecting a free-form optional message in UTF-8 (starting with or without BOM)"
40 // ErrEscape represents the error for a RFC5424 syslog message occurring when a STRUCTURED DATA PARAM value contains '"', '\', or ']' not escaped.
41 ErrEscape = "expecting chars `]`, `\"`, and `\\` to be escaped within param value"
42 // ErrParse represents a general parsing error for a RFC5424 syslog message.
43 ErrParse = "parsing error"
2444 )
2545
2646 // RFC3339MICRO represents the timestamp format that RFC5424 mandates.
2949 %%{
3050 machine rfc5424;
3151
32 include rfc5424 "rfc5424.rl";
52 include common "common.rl";
3353
3454 # unsigned alphabet
3555 alphtype uint8;
4363 }
4464
4565 action set_prival {
46 output.priority = uint8(unsafeUTF8DecimalCodePointsToInt(m.text()))
66 output.priority = uint8(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
4767 output.prioritySet = true
4868 }
4969
5070 action set_version {
51 output.version = uint16(unsafeUTF8DecimalCodePointsToInt(m.text()))
71 output.version = uint16(common.UnsafeUTF8DecimalCodePointsToInt(m.text()))
5272 }
5373
5474 action set_timestamp {
85105 action set_id {
86106 if _, ok := output.structuredData[string(m.text())]; ok {
87107 // As per RFC5424 section 6.3.2 SD-ID MUST NOT exist more than once in a message
88 m.err = fmt.Errorf(errSdIDDuplicated, m.p)
108 m.err = fmt.Errorf(ErrSdIDDuplicated + ColumnPositionTemplate, m.p)
89109 fhold;
90110 fgoto fail;
91111 } else {
114134
115135 // Store text
116136 text := m.text()
117
137
118138 // Strip backslashes only when there are ...
119139 if len(m.backslashat) > 0 {
120 text = rmchars(text, m.backslashat, m.pb)
140 text = common.RemoveBytes(text, m.backslashat, m.pb)
121141 }
122142 output.structuredData[m.currentelem][m.currentparam] = string(text)
123143 }
128148 }
129149
130150 action err_prival {
131 m.err = fmt.Errorf(errPrival, m.p)
151 m.err = fmt.Errorf(ErrPrival + ColumnPositionTemplate, m.p)
132152 fhold;
133153 fgoto fail;
134154 }
135155
136156 action err_pri {
137 m.err = fmt.Errorf(errPri, m.p)
157 m.err = fmt.Errorf(ErrPri + ColumnPositionTemplate, m.p)
138158 fhold;
139159 fgoto fail;
140160 }
141161
142162 action err_version {
143 m.err = fmt.Errorf(errVersion, m.p)
163 m.err = fmt.Errorf(ErrVersion + ColumnPositionTemplate, m.p)
144164 fhold;
145165 fgoto fail;
146166 }
147167
148168 action err_timestamp {
149 m.err = fmt.Errorf(errTimestamp, m.p)
169 m.err = fmt.Errorf(ErrTimestamp + ColumnPositionTemplate, m.p)
150170 fhold;
151171 fgoto fail;
152172 }
153173
154174 action err_hostname {
155 m.err = fmt.Errorf(errHostname, m.p)
175 m.err = fmt.Errorf(ErrHostname + ColumnPositionTemplate, m.p)
156176 fhold;
157177 fgoto fail;
158178 }
159179
160180 action err_appname {
161 m.err = fmt.Errorf(errAppname, m.p)
181 m.err = fmt.Errorf(ErrAppname + ColumnPositionTemplate, m.p)
162182 fhold;
163183 fgoto fail;
164184 }
165185
166186 action err_procid {
167 m.err = fmt.Errorf(errProcid, m.p)
187 m.err = fmt.Errorf(ErrProcID + ColumnPositionTemplate, m.p)
168188 fhold;
169189 fgoto fail;
170190 }
171191
172192 action err_msgid {
173 m.err = fmt.Errorf(errMsgid, m.p)
193 m.err = fmt.Errorf(ErrMsgID + ColumnPositionTemplate, m.p)
174194 fhold;
175195 fgoto fail;
176196 }
177197
178198 action err_structureddata {
179 m.err = fmt.Errorf(errStructuredData, m.p)
199 m.err = fmt.Errorf(ErrStructuredData + ColumnPositionTemplate, m.p)
180200 fhold;
181201 fgoto fail;
182202 }
186206 if len(output.structuredData) == 0 {
187207 output.hasElements = false
188208 }
189 m.err = fmt.Errorf(errSdID, m.p)
209 m.err = fmt.Errorf(ErrSdID + ColumnPositionTemplate, m.p)
190210 fhold;
191211 fgoto fail;
192212 }
195215 if len(output.structuredData) > 0 {
196216 delete(output.structuredData[m.currentelem], m.currentparam)
197217 }
198 m.err = fmt.Errorf(errSdParam, m.p)
218 m.err = fmt.Errorf(ErrSdParam + ColumnPositionTemplate, m.p)
199219 fhold;
200220 fgoto fail;
201221 }
207227 output.message = string(m.data[m.msgat:m.p])
208228 }
209229
210 m.err = fmt.Errorf(errMsg, m.p)
230 m.err = fmt.Errorf(ErrMsg + ColumnPositionTemplate, m.p)
211231 fhold;
212232 fgoto fail;
213233 }
214234
215235 action err_escape {
216 m.err = fmt.Errorf(errEscape, m.p)
236 m.err = fmt.Errorf(ErrEscape + ColumnPositionTemplate, m.p)
217237 fhold;
218238 fgoto fail;
219239 }
220240
221241 action err_parse {
222 m.err = fmt.Errorf(errParse, m.p)
242 m.err = fmt.Errorf(ErrParse + ColumnPositionTemplate, m.p)
223243 fhold;
224244 fgoto fail;
225245 }
359379 }
360380
361381 return output.export(), nil
362 }
382 }
22 import (
33 "fmt"
44 "math/rand"
5 "strings"
65 "testing"
7 "time"
86
9 "github.com/influxdata/go-syslog"
7 "github.com/influxdata/go-syslog/v2"
8 syslogtesting "github.com/influxdata/go-syslog/v2/testing"
109 "github.com/stretchr/testify/assert"
1110 )
12
13 func random(min, max int) int {
14 return rand.Intn(max-min) + min
15 }
16
17 func timeParse(layout, value string) *time.Time {
18 t, _ := time.Parse(layout, value)
19 return &t
20 }
21
22 func getStringAddress(str string) *string {
23 return &str
24 }
25
26 func getUint8Address(x uint8) *uint8 {
27 return &x
28 }
29
30 func rxpad(str string, lim int) string {
31 str = str + strings.Repeat(" ", lim)
32 return str[:lim]
33 }
3411
3512 type testCase struct {
3613 input []byte
4623 []byte(""),
4724 false,
4825 nil,
49 "expecting a priority value within angle brackets [col 0]",
26 fmt.Sprintf(ErrPri+ColumnPositionTemplate, 0),
5027 nil,
5128 },
5229 // Invalid, multiple syslog messages on multiple lines
5532 <2>1 - - - - - -`),
5633 false,
5734 nil,
58 "parsing error [col 16]",
59 &SyslogMessage{
60 priority: getUint8Address(1),
61 severity: getUint8Address(1),
62 facility: getUint8Address(0),
35 fmt.Sprintf(ErrParse+ColumnPositionTemplate, 16),
36 &SyslogMessage{
37 priority: syslogtesting.Uint8Address(1),
38 severity: syslogtesting.Uint8Address(1),
39 facility: syslogtesting.Uint8Address(0),
6340 version: 1,
6441 },
6542 },
6845 []byte("<1>1 - \nhostname - - - -"),
6946 false,
7047 nil,
71 "expecting an hostname (from 1 to max 255 US-ASCII characters) or a nil value [col 7]",
72 &SyslogMessage{
73 facility: getUint8Address(0),
74 severity: getUint8Address(1),
75 priority: getUint8Address(1),
48 fmt.Sprintf(ErrHostname+ColumnPositionTemplate, 7),
49 &SyslogMessage{
50 facility: syslogtesting.Uint8Address(0),
51 severity: syslogtesting.Uint8Address(1),
52 priority: syslogtesting.Uint8Address(1),
7653 version: 1,
7754 },
7855 },
8057 []byte("<1>1 - host\x0Aname - - - -"),
8158 false,
8259 nil,
83 "expecting an hostname (from 1 to max 255 US-ASCII characters) or a nil value [col 11]",
84 &SyslogMessage{
85 facility: getUint8Address(0),
86 severity: getUint8Address(1),
87 priority: getUint8Address(1),
60 fmt.Sprintf(ErrHostname+ColumnPositionTemplate, 11),
61 &SyslogMessage{
62 facility: syslogtesting.Uint8Address(0),
63 severity: syslogtesting.Uint8Address(1),
64 priority: syslogtesting.Uint8Address(1),
8865 version: 1,
8966 },
9067 },
9269 []byte("<1>1 - - \nan - - -"),
9370 false,
9471 nil,
95 "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value [col 9]",
96 &SyslogMessage{
97 facility: getUint8Address(0),
98 severity: getUint8Address(1),
99 priority: getUint8Address(1),
72 fmt.Sprintf(ErrAppname+ColumnPositionTemplate, 9),
73 &SyslogMessage{
74 facility: syslogtesting.Uint8Address(0),
75 severity: syslogtesting.Uint8Address(1),
76 priority: syslogtesting.Uint8Address(1),
10077 version: 1,
10178 },
10279 },
10481 []byte("<1>1 - - a\x0An - - -"),
10582 false,
10683 nil,
107 "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value [col 10]",
108 &SyslogMessage{
109 facility: getUint8Address(0),
110 severity: getUint8Address(1),
111 priority: getUint8Address(1),
84 fmt.Sprintf(ErrAppname+ColumnPositionTemplate, 10),
85 &SyslogMessage{
86 facility: syslogtesting.Uint8Address(0),
87 severity: syslogtesting.Uint8Address(1),
88 priority: syslogtesting.Uint8Address(1),
11289 version: 1,
11390 },
11491 },
11693 []byte("<1>1 - - - \npid - -"),
11794 false,
11895 nil,
119 "expecting a procid (from 1 to max 128 US-ASCII characters) or a nil value [col 11]",
120 &SyslogMessage{
121 facility: getUint8Address(0),
122 severity: getUint8Address(1),
123 priority: getUint8Address(1),
96 fmt.Sprintf(ErrProcID+ColumnPositionTemplate, 11),
97 &SyslogMessage{
98 facility: syslogtesting.Uint8Address(0),
99 severity: syslogtesting.Uint8Address(1),
100 priority: syslogtesting.Uint8Address(1),
124101 version: 1,
125102 },
126103 },
128105 []byte("<1>1 - - - p\x0Aid - -"),
129106 false,
130107 nil,
131 "expecting a procid (from 1 to max 128 US-ASCII characters) or a nil value [col 12]",
132 &SyslogMessage{
133 facility: getUint8Address(0),
134 severity: getUint8Address(1),
135 priority: getUint8Address(1),
108 fmt.Sprintf(ErrProcID+ColumnPositionTemplate, 12),
109 &SyslogMessage{
110 facility: syslogtesting.Uint8Address(0),
111 severity: syslogtesting.Uint8Address(1),
112 priority: syslogtesting.Uint8Address(1),
136113 version: 1,
137114 },
138115 },
140117 []byte("<1>1 - - - - \nmid -"),
141118 false,
142119 nil,
143 "expecting a msgid (from 1 to max 32 US-ASCII characters) or a nil value [col 13]",
144 &SyslogMessage{
145 facility: getUint8Address(0),
146 severity: getUint8Address(1),
147 priority: getUint8Address(1),
120 fmt.Sprintf(ErrMsgID+ColumnPositionTemplate, 13),
121 &SyslogMessage{
122 facility: syslogtesting.Uint8Address(0),
123 severity: syslogtesting.Uint8Address(1),
124 priority: syslogtesting.Uint8Address(1),
148125 version: 1,
149126 },
150127 },
152129 []byte("<1>1 - - - - m\x0Aid -"),
153130 false,
154131 nil,
155 "expecting a msgid (from 1 to max 32 US-ASCII characters) or a nil value [col 14]",
156 &SyslogMessage{
157 facility: getUint8Address(0),
158 severity: getUint8Address(1),
159 priority: getUint8Address(1),
132 fmt.Sprintf(ErrMsgID+ColumnPositionTemplate, 14),
133 &SyslogMessage{
134 facility: syslogtesting.Uint8Address(0),
135 severity: syslogtesting.Uint8Address(1),
136 priority: syslogtesting.Uint8Address(1),
160137 version: 1,
161138 },
162139 },
165142 []byte("(190>122 2018-11-22"),
166143 false,
167144 nil,
168 "expecting a priority value within angle brackets [col 0]",
145 fmt.Sprintf(ErrPri+ColumnPositionTemplate, 0),
169146 nil,
170147 },
171148 // Malformed pri outputs wrong error
174151 false,
175152 nil,
176153 // (note) > machine can only understand that the ] char is not in the reachable states (just as any number would be in this situation), so it gives the error about the priority val submachine, not about the pri submachine (ie., <prival>)
177 "expecting a priority value in the range 1-191 or equal to 0 [col 3]",
154 fmt.Sprintf(ErrPrival+ColumnPositionTemplate, 3),
178155 nil, // nil since cannot reach version
179156 },
180157 // Invalid, missing pri
182159 []byte("122 - - - - - -"),
183160 false,
184161 nil,
185 "expecting a priority value within angle brackets [col 0]",
162 fmt.Sprintf(ErrPri+ColumnPositionTemplate, 0),
186163 nil,
187164 },
188165 // Invalid, missing prival
190167 []byte("<>122 2018-11-22"),
191168 false,
192169 nil,
193 "expecting a priority value in the range 1-191 or equal to 0 [col 1]",
170 fmt.Sprintf(ErrPrival+ColumnPositionTemplate, 1),
194171 nil,
195172 },
196173 // Invalid, prival with too much digits
198175 []byte("<19000021>122 2018-11-22"),
199176 false,
200177 nil,
201 "expecting a priority value in the range 1-191 or equal to 0 [col 4]",
178 fmt.Sprintf(ErrPrival+ColumnPositionTemplate, 4),
202179 nil, // no valid partial message since was not able to reach and extract version (which is mandatory for a valid message)
203180 },
204181 // Invalid, prival too high
206183 []byte("<192>122 2018-11-22"),
207184 false,
208185 nil,
209 "expecting a priority value in the range 1-191 or equal to 0 [col 3]",
186 fmt.Sprintf(ErrPrival+ColumnPositionTemplate, 3),
210187 nil,
211188 },
212189 // Invalid, 0 starting prival
214191 []byte("<002>122 2018-11-22"),
215192 false,
216193 nil,
217 "expecting a priority value in the range 1-191 or equal to 0 [col 2]",
194 fmt.Sprintf(ErrPrival+ColumnPositionTemplate, 2),
218195 nil,
219196 },
220197 // Invalid, non numeric prival
222199 []byte("<aaa>122 2018-11-22"),
223200 false,
224201 nil,
225 "expecting a priority value in the range 1-191 or equal to 0 [col 1]",
202 fmt.Sprintf(ErrPrival+ColumnPositionTemplate, 1),
226203 nil,
227204 },
228205 // Invalid, missing version
230207 []byte("<100> 2018-11-22"),
231208 false,
232209 nil,
233 "expecting a version value in the range 1-999 [col 5]",
210 fmt.Sprintf(ErrVersion+ColumnPositionTemplate, 5),
234211 nil,
235212 },
236213 // Invalid, 0 version
238215 []byte("<103>0 2018-11-22"),
239216 false,
240217 nil,
241 "expecting a version value in the range 1-999 [col 5]",
218 fmt.Sprintf(ErrVersion+ColumnPositionTemplate, 5),
242219 nil,
243220 },
244221 // Invalid, out of range version
246223 []byte("<101>1000 2018-11-22"),
247224 false,
248225 nil,
249 "expecting a version value in the range 1-999 [col 8]",
250 &SyslogMessage{
251 priority: getUint8Address(101),
252 facility: getUint8Address(12),
253 severity: getUint8Address(5),
226 fmt.Sprintf(ErrVersion+ColumnPositionTemplate, 8),
227 &SyslogMessage{
228 priority: syslogtesting.Uint8Address(101),
229 facility: syslogtesting.Uint8Address(12),
230 severity: syslogtesting.Uint8Address(5),
254231 version: 100,
255232 },
256233 },
259236 []byte("<1>2 "),
260237 false,
261238 nil,
262 "expecting a RFC3339MICRO timestamp or a nil value [col 5]",
263 &SyslogMessage{
264 priority: getUint8Address(1),
265 facility: getUint8Address(0),
266 severity: getUint8Address(1),
239 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 5),
240 &SyslogMessage{
241 priority: syslogtesting.Uint8Address(1),
242 facility: syslogtesting.Uint8Address(0),
243 severity: syslogtesting.Uint8Address(1),
267244 version: 2,
268245 },
269246 },
272249 []byte("<1>1"),
273250 false,
274251 nil,
275 "parsing error [col 4]",
276 &SyslogMessage{
277 priority: getUint8Address(1),
278 facility: getUint8Address(0),
279 severity: getUint8Address(1),
252 fmt.Sprintf(ErrParse+ColumnPositionTemplate, 4),
253 &SyslogMessage{
254 priority: syslogtesting.Uint8Address(1),
255 facility: syslogtesting.Uint8Address(0),
256 severity: syslogtesting.Uint8Address(1),
280257 version: 1,
281258 },
282259 },
285262 // []byte("<3>22"),
286263 // false,
287264 // nil,
288 // "parsing error [col 6]",
265 // fmt.Sprintf(ErrParse+ColumnPositionTemplate, 6),
289266 // (&SyslogMessage{}).SetPriority(3).SetVersion(22),
290267 // },
291268 // Invalid, non numeric (also partially) version
293270 []byte("<1>3a"),
294271 false,
295272 nil,
296 "parsing error [col 4]",
297 &SyslogMessage{
298 priority: getUint8Address(1),
299 facility: getUint8Address(0),
300 severity: getUint8Address(1),
273 fmt.Sprintf(ErrParse+ColumnPositionTemplate, 4),
274 &SyslogMessage{
275 priority: syslogtesting.Uint8Address(1),
276 facility: syslogtesting.Uint8Address(0),
277 severity: syslogtesting.Uint8Address(1),
301278 version: 3,
302279 },
303280 },
305282 []byte("<1>4a "),
306283 false,
307284 nil,
308 "parsing error [col 4]",
309 &SyslogMessage{
310 priority: getUint8Address(1),
311 facility: getUint8Address(0),
312 severity: getUint8Address(1),
285 fmt.Sprintf(ErrParse+ColumnPositionTemplate, 4),
286 &SyslogMessage{
287 priority: syslogtesting.Uint8Address(1),
288 facility: syslogtesting.Uint8Address(0),
289 severity: syslogtesting.Uint8Address(1),
313290 version: 4,
314291 },
315292 },
317294 []byte("<102>abc 2018-11-22"),
318295 false,
319296 nil,
320 "expecting a version value in the range 1-999 [col 5]",
297 fmt.Sprintf(ErrVersion+ColumnPositionTemplate, 5),
321298 nil,
322299 },
323300 // Invalid, letter rather than timestamp
325302 []byte("<1>5 A"),
326303 false,
327304 nil,
328 "expecting a RFC3339MICRO timestamp or a nil value [col 5]",
329 &SyslogMessage{
330 priority: getUint8Address(1),
331 facility: getUint8Address(0),
332 severity: getUint8Address(1),
305 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 5),
306 &SyslogMessage{
307 priority: syslogtesting.Uint8Address(1),
308 facility: syslogtesting.Uint8Address(0),
309 severity: syslogtesting.Uint8Address(1),
333310 version: 5,
334311 },
335312 },
338315 []byte(`<29>1 2006-01-02t15:04:05Z - - - - -`),
339316 false,
340317 nil,
341 "expecting a RFC3339MICRO timestamp or a nil value [col 16]",
342 &SyslogMessage{
343 facility: getUint8Address(3),
344 severity: getUint8Address(5),
345 priority: getUint8Address(29),
318 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 16),
319 &SyslogMessage{
320 facility: syslogtesting.Uint8Address(3),
321 severity: syslogtesting.Uint8Address(5),
322 priority: syslogtesting.Uint8Address(29),
346323 version: 1,
347324 },
348325 },
350327 []byte(`<29>2 2006-01-02T15:04:05z - - - - -`),
351328 false,
352329 nil,
353 "expecting a RFC3339MICRO timestamp or a nil value [col 25]",
354 &SyslogMessage{
355 facility: getUint8Address(3),
356 severity: getUint8Address(5),
357 priority: getUint8Address(29),
330 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 25),
331 &SyslogMessage{
332 facility: syslogtesting.Uint8Address(3),
333 severity: syslogtesting.Uint8Address(5),
334 priority: syslogtesting.Uint8Address(29),
358335 version: 2,
359336 },
360337 },
363340 []byte("<101>123 2"),
364341 false,
365342 nil,
366 "expecting a RFC3339MICRO timestamp or a nil value [col 10]",
367 &SyslogMessage{
368 priority: getUint8Address(101),
369 facility: getUint8Address(12),
370 severity: getUint8Address(5),
343 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 10),
344 &SyslogMessage{
345 priority: syslogtesting.Uint8Address(101),
346 facility: syslogtesting.Uint8Address(12),
347 severity: syslogtesting.Uint8Address(5),
371348 version: 123,
372349 },
373350 },
375352 []byte("<101>124 20"),
376353 false,
377354 nil,
378 "expecting a RFC3339MICRO timestamp or a nil value [col 11]",
379 &SyslogMessage{
380 priority: getUint8Address(101),
381 facility: getUint8Address(12),
382 severity: getUint8Address(5),
355 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 11),
356 &SyslogMessage{
357 priority: syslogtesting.Uint8Address(101),
358 facility: syslogtesting.Uint8Address(12),
359 severity: syslogtesting.Uint8Address(5),
383360 version: 124,
384361 },
385362 },
387364 []byte("<101>125 201"),
388365 false,
389366 nil,
390 "expecting a RFC3339MICRO timestamp or a nil value [col 12]",
391 &SyslogMessage{
392 priority: getUint8Address(101),
393 facility: getUint8Address(12),
394 severity: getUint8Address(5),
367 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 12),
368 &SyslogMessage{
369 priority: syslogtesting.Uint8Address(101),
370 facility: syslogtesting.Uint8Address(12),
371 severity: syslogtesting.Uint8Address(5),
395372 version: 125,
396373 },
397374 },
399376 []byte("<101>125 2013"),
400377 false,
401378 nil,
402 "expecting a RFC3339MICRO timestamp or a nil value [col 13]",
403 &SyslogMessage{
404 priority: getUint8Address(101),
405 facility: getUint8Address(12),
406 severity: getUint8Address(5),
379 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 13),
380 &SyslogMessage{
381 priority: syslogtesting.Uint8Address(101),
382 facility: syslogtesting.Uint8Address(12),
383 severity: syslogtesting.Uint8Address(5),
407384 version: 125,
408385 },
409386 },
411388 []byte("<101>126 2013-"),
412389 false,
413390 nil,
414 "expecting a RFC3339MICRO timestamp or a nil value [col 14]",
415 &SyslogMessage{
416 priority: getUint8Address(101),
417 facility: getUint8Address(12),
418 severity: getUint8Address(5),
391 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 14),
392 &SyslogMessage{
393 priority: syslogtesting.Uint8Address(101),
394 facility: syslogtesting.Uint8Address(12),
395 severity: syslogtesting.Uint8Address(5),
419396 version: 126,
420397 },
421398 },
423400 []byte("<101>122 201-11-22"),
424401 false,
425402 nil,
426 "expecting a RFC3339MICRO timestamp or a nil value [col 12]",
427 &SyslogMessage{
428 priority: getUint8Address(101),
429 facility: getUint8Address(12),
430 severity: getUint8Address(5),
403 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 12),
404 &SyslogMessage{
405 priority: syslogtesting.Uint8Address(101),
406 facility: syslogtesting.Uint8Address(12),
407 severity: syslogtesting.Uint8Address(5),
431408 version: 122,
432409 },
433410 },
435412 []byte("<101>189 0-11-22"),
436413 false,
437414 nil,
438 "expecting a RFC3339MICRO timestamp or a nil value [col 10]",
439 &SyslogMessage{
440 priority: getUint8Address(101),
441 facility: getUint8Address(12),
442 severity: getUint8Address(5),
415 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 10),
416 &SyslogMessage{
417 priority: syslogtesting.Uint8Address(101),
418 facility: syslogtesting.Uint8Address(12),
419 severity: syslogtesting.Uint8Address(5),
443420 version: 189,
444421 },
445422 },
448425 []byte("<101>122 2018-112-22"),
449426 false,
450427 nil,
451 "expecting a RFC3339MICRO timestamp or a nil value [col 16]",
452 &SyslogMessage{
453 priority: getUint8Address(101),
454 facility: getUint8Address(12),
455 severity: getUint8Address(5),
428 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 16),
429 &SyslogMessage{
430 priority: syslogtesting.Uint8Address(101),
431 facility: syslogtesting.Uint8Address(12),
432 severity: syslogtesting.Uint8Address(5),
456433 version: 122,
457434 },
458435 },
461438 []byte("<101>123 2018-02-32"),
462439 false,
463440 nil,
464 "expecting a RFC3339MICRO timestamp or a nil value [col 18]",
465 &SyslogMessage{
466 priority: getUint8Address(101),
467 facility: getUint8Address(12),
468 severity: getUint8Address(5),
441 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 18),
442 &SyslogMessage{
443 priority: syslogtesting.Uint8Address(101),
444 facility: syslogtesting.Uint8Address(12),
445 severity: syslogtesting.Uint8Address(5),
469446 version: 123,
470447 },
471448 },
474451 []byte("<101>124 2018-02-01:25:15Z"),
475452 false,
476453 nil,
477 "expecting a RFC3339MICRO timestamp or a nil value [col 19]",
478 &SyslogMessage{
479 priority: getUint8Address(101),
480 facility: getUint8Address(12),
481 severity: getUint8Address(5),
454 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 19),
455 &SyslogMessage{
456 priority: syslogtesting.Uint8Address(101),
457 facility: syslogtesting.Uint8Address(12),
458 severity: syslogtesting.Uint8Address(5),
482459 version: 124,
483460 },
484461 },
487464 []byte("<101>125 2003-09-29T22:99:16Z"),
488465 false,
489466 nil,
490 "expecting a RFC3339MICRO timestamp or a nil value [col 23]",
491 &SyslogMessage{
492 priority: getUint8Address(101),
493 facility: getUint8Address(12),
494 severity: getUint8Address(5),
467 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 23),
468 &SyslogMessage{
469 priority: syslogtesting.Uint8Address(101),
470 facility: syslogtesting.Uint8Address(12),
471 severity: syslogtesting.Uint8Address(5),
495472 version: 125,
496473 },
497474 },
500477 []byte("<101>126 2003-09-29T22:09:99Z"),
501478 false,
502479 nil,
503 "expecting a RFC3339MICRO timestamp or a nil value [col 26]",
504 &SyslogMessage{
505 priority: getUint8Address(101),
506 facility: getUint8Address(12),
507 severity: getUint8Address(5),
480 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 26),
481 &SyslogMessage{
482 priority: syslogtesting.Uint8Address(101),
483 facility: syslogtesting.Uint8Address(12),
484 severity: syslogtesting.Uint8Address(5),
508485 version: 126,
509486 },
510487 },
513490 []byte("<101>127 2003-09-29T22:09:01.000000000009Z"),
514491 false,
515492 nil,
516 "expecting a RFC3339MICRO timestamp or a nil value [col 35]",
517 &SyslogMessage{
518 priority: getUint8Address(101),
519 facility: getUint8Address(12),
520 severity: getUint8Address(5),
493 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 35),
494 &SyslogMessage{
495 priority: syslogtesting.Uint8Address(101),
496 facility: syslogtesting.Uint8Address(12),
497 severity: syslogtesting.Uint8Address(5),
521498 version: 127,
522499 },
523500 },
525502 []byte("<101>128 2003-09-29T22:09:01.Z"),
526503 false,
527504 nil,
528 "expecting a RFC3339MICRO timestamp or a nil value [col 29]",
529 &SyslogMessage{
530 priority: getUint8Address(101),
531 facility: getUint8Address(12),
532 severity: getUint8Address(5),
505 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 29),
506 &SyslogMessage{
507 priority: syslogtesting.Uint8Address(101),
508 facility: syslogtesting.Uint8Address(12),
509 severity: syslogtesting.Uint8Address(5),
533510 version: 128,
534511 },
535512 },
537514 []byte("<101>28 2003-09-29T22:09:01."),
538515 false,
539516 nil,
540 "expecting a RFC3339MICRO timestamp or a nil value [col 28]",
541 &SyslogMessage{
542 priority: getUint8Address(101),
543 facility: getUint8Address(12),
544 severity: getUint8Address(5),
517 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 28),
518 &SyslogMessage{
519 priority: syslogtesting.Uint8Address(101),
520 facility: syslogtesting.Uint8Address(12),
521 severity: syslogtesting.Uint8Address(5),
545522 version: 28,
546523 },
547524 },
550527 []byte("<101>129 2003-09-29T22:09:01A"),
551528 false,
552529 nil,
553 "expecting a RFC3339MICRO timestamp or a nil value [col 28]",
554 &SyslogMessage{
555 priority: getUint8Address(101),
556 facility: getUint8Address(12),
557 severity: getUint8Address(5),
530 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 28),
531 &SyslogMessage{
532 priority: syslogtesting.Uint8Address(101),
533 facility: syslogtesting.Uint8Address(12),
534 severity: syslogtesting.Uint8Address(5),
558535 version: 129,
559536 },
560537 },
562539 []byte("<101>130 2003-08-24T05:14:15.000003-24:00"),
563540 false,
564541 nil,
565 "expecting a RFC3339MICRO timestamp or a nil value [col 37]",
566 &SyslogMessage{
567 priority: getUint8Address(101),
568 facility: getUint8Address(12),
569 severity: getUint8Address(5),
542 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 37),
543 &SyslogMessage{
544 priority: syslogtesting.Uint8Address(101),
545 facility: syslogtesting.Uint8Address(12),
546 severity: syslogtesting.Uint8Address(5),
570547 version: 130,
571548 },
572549 },
574551 []byte("<101>131 2003-08-24T05:14:15.000003-60:00"),
575552 false,
576553 nil,
577 "expecting a RFC3339MICRO timestamp or a nil value [col 36]",
578 &SyslogMessage{
579 priority: getUint8Address(101),
580 facility: getUint8Address(12),
581 severity: getUint8Address(5),
554 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 36),
555 &SyslogMessage{
556 priority: syslogtesting.Uint8Address(101),
557 facility: syslogtesting.Uint8Address(12),
558 severity: syslogtesting.Uint8Address(5),
582559 version: 131,
583560 },
584561 },
586563 []byte("<101>132 2003-08-24T05:14:15.000003-07:61"),
587564 false,
588565 nil,
589 "expecting a RFC3339MICRO timestamp or a nil value [col 39]",
590 &SyslogMessage{
591 priority: getUint8Address(101),
592 facility: getUint8Address(12),
593 severity: getUint8Address(5),
566 fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, 39),
567 &SyslogMessage{
568 priority: syslogtesting.Uint8Address(101),
569 facility: syslogtesting.Uint8Address(12),
570 severity: syslogtesting.Uint8Address(5),
594571 version: 132,
595572 },
596573 },
598575 []byte(`<29>1 2006-01-02T15:04:05Z+07:00 - - - - -`),
599576 false,
600577 nil,
601 "parsing error [col 26]", // after the Z (valid and complete timestamp) it searches for a whitespace
602 &SyslogMessage{
603 facility: getUint8Address(3),
604 severity: getUint8Address(5),
605 priority: getUint8Address(29),
578 fmt.Sprintf(ErrParse+ColumnPositionTemplate, 26), // after the Z (valid and complete timestamp) it searches for a whitespace
579 &SyslogMessage{
580 facility: syslogtesting.Uint8Address(3),
581 severity: syslogtesting.Uint8Address(5),
582 priority: syslogtesting.Uint8Address(29),
606583 version: 1,
607 timestamp: timeParse(RFC3339MICRO, "2006-01-02T15:04:05Z"),
584 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2006-01-02T15:04:05Z"),
608585 },
609586 },
610587 // Invalid, non existing dates
614591 nil,
615592 "parsing time \"2003-09-31T22:14:15.003Z\": day out of range [col 32]",
616593 &SyslogMessage{
617 priority: getUint8Address(101),
618 facility: getUint8Address(12),
619 severity: getUint8Address(5),
594 priority: syslogtesting.Uint8Address(101),
595 facility: syslogtesting.Uint8Address(12),
596 severity: syslogtesting.Uint8Address(5),
620597 version: 11,
621598 },
622599 },
626603 nil,
627604 "parsing time \"2003-09-31T22:14:16Z\": day out of range [col 28]",
628605 &SyslogMessage{
629 priority: getUint8Address(101),
630 facility: getUint8Address(12),
631 severity: getUint8Address(5),
606 priority: syslogtesting.Uint8Address(101),
607 facility: syslogtesting.Uint8Address(12),
608 severity: syslogtesting.Uint8Address(5),
632609 version: 12,
633610 },
634611 },
638615 nil,
639616 "parsing time \"2018-02-29T22:14:16+01:00\": day out of range [col 33]",
640617 &SyslogMessage{
641 priority: getUint8Address(101),
642 facility: getUint8Address(12),
643 severity: getUint8Address(5),
618 priority: syslogtesting.Uint8Address(101),
619 facility: syslogtesting.Uint8Address(12),
620 severity: syslogtesting.Uint8Address(5),
644621 version: 12,
645622 },
646623 },
649626 []byte("<1>1 - abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcX - - - -"),
650627 false,
651628 nil,
652 "expecting an hostname (from 1 to max 255 US-ASCII characters) or a nil value [col 262]",
653 &SyslogMessage{
654 priority: getUint8Address(1),
655 facility: getUint8Address(0),
656 severity: getUint8Address(1),
629 fmt.Sprintf(ErrHostname+ColumnPositionTemplate, 262),
630 &SyslogMessage{
631 priority: syslogtesting.Uint8Address(1),
632 facility: syslogtesting.Uint8Address(0),
633 severity: syslogtesting.Uint8Address(1),
657634 version: 1,
658635 },
659636 },
661638 []byte("<1>1 2003-09-29T22:14:16Z abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcX - - - -"),
662639 false,
663640 nil,
664 "expecting an hostname (from 1 to max 255 US-ASCII characters) or a nil value [col 281]",
665 &SyslogMessage{
666 priority: getUint8Address(1),
667 facility: getUint8Address(0),
668 severity: getUint8Address(1),
641 fmt.Sprintf(ErrHostname+ColumnPositionTemplate, 281),
642 &SyslogMessage{
643 priority: syslogtesting.Uint8Address(1),
644 facility: syslogtesting.Uint8Address(0),
645 severity: syslogtesting.Uint8Address(1),
669646 version: 1,
670 timestamp: timeParse(RFC3339MICRO, "2003-09-29T22:14:16Z"),
647 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-09-29T22:14:16Z"),
671648 },
672649 },
673650 // Invalid, appname too long
675652 []byte("<1>1 - - abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefX - - -"),
676653 false,
677654 nil,
678 "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value [col 57]",
679 &SyslogMessage{
680 priority: getUint8Address(1),
681 facility: getUint8Address(0),
682 severity: getUint8Address(1),
655 fmt.Sprintf(ErrAppname+ColumnPositionTemplate, 57),
656 &SyslogMessage{
657 priority: syslogtesting.Uint8Address(1),
658 facility: syslogtesting.Uint8Address(0),
659 severity: syslogtesting.Uint8Address(1),
683660 version: 1,
684661 },
685662 },
687664 []byte("<1>1 2003-09-29T22:14:16Z - abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefX - - -"),
688665 false,
689666 nil,
690 "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value [col 76]",
691 &SyslogMessage{
692 priority: getUint8Address(1),
693 facility: getUint8Address(0),
694 severity: getUint8Address(1),
667 fmt.Sprintf(ErrAppname+ColumnPositionTemplate, 76),
668 &SyslogMessage{
669 priority: syslogtesting.Uint8Address(1),
670 facility: syslogtesting.Uint8Address(0),
671 severity: syslogtesting.Uint8Address(1),
695672 version: 1,
696 timestamp: timeParse(RFC3339MICRO, "2003-09-29T22:14:16Z"),
673 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-09-29T22:14:16Z"),
697674 },
698675 },
699676 {
700677 []byte("<1>1 - host abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefX - - -"),
701678 false,
702679 nil,
703 "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value [col 60]",
704 &SyslogMessage{
705 priority: getUint8Address(1),
706 facility: getUint8Address(0),
707 severity: getUint8Address(1),
708 version: 1,
709 hostname: getStringAddress("host"),
680 fmt.Sprintf(ErrAppname+ColumnPositionTemplate, 60),
681 &SyslogMessage{
682 priority: syslogtesting.Uint8Address(1),
683 facility: syslogtesting.Uint8Address(0),
684 severity: syslogtesting.Uint8Address(1),
685 version: 1,
686 hostname: syslogtesting.StringAddress("host"),
710687 },
711688 },
712689 {
713690 []byte("<1>1 2003-09-29T22:14:16Z host abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefX - - -"),
714691 false,
715692 nil,
716 "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value [col 79]",
717 &SyslogMessage{
718 priority: getUint8Address(1),
719 facility: getUint8Address(0),
720 severity: getUint8Address(1),
693 fmt.Sprintf(ErrAppname+ColumnPositionTemplate, 79),
694 &SyslogMessage{
695 priority: syslogtesting.Uint8Address(1),
696 facility: syslogtesting.Uint8Address(0),
697 severity: syslogtesting.Uint8Address(1),
721698 version: 1,
722 timestamp: timeParse(RFC3339MICRO, "2003-09-29T22:14:16Z"),
723 hostname: getStringAddress("host"),
699 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-09-29T22:14:16Z"),
700 hostname: syslogtesting.StringAddress("host"),
724701 },
725702 },
726703 // Invalid, procid too long
728705 []byte("<1>1 - - - abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabX - -"),
729706 false,
730707 nil,
731 "expecting a procid (from 1 to max 128 US-ASCII characters) or a nil value [col 139]",
732 &SyslogMessage{
733 priority: getUint8Address(1),
734 facility: getUint8Address(0),
735 severity: getUint8Address(1),
708 fmt.Sprintf(ErrProcID+ColumnPositionTemplate, 139),
709 &SyslogMessage{
710 priority: syslogtesting.Uint8Address(1),
711 facility: syslogtesting.Uint8Address(0),
712 severity: syslogtesting.Uint8Address(1),
736713 version: 1,
737714 },
738715 },
741718 []byte("<1>1 - - - - abcdefghilmnopqrstuvzabcdefghilmX -"),
742719 false,
743720 nil,
744 "expecting a msgid (from 1 to max 32 US-ASCII characters) or a nil value [col 45]",
745 &SyslogMessage{
746 priority: getUint8Address(1),
747 facility: getUint8Address(0),
748 severity: getUint8Address(1),
721 fmt.Sprintf(ErrMsgID+ColumnPositionTemplate, 45),
722 &SyslogMessage{
723 priority: syslogtesting.Uint8Address(1),
724 facility: syslogtesting.Uint8Address(0),
725 severity: syslogtesting.Uint8Address(1),
749726 version: 1,
750727 },
751728 },
754731 []byte("<1>1 - - - - -"),
755732 false,
756733 nil,
757 "expecting an hostname (from 1 to max 255 US-ASCII characters) or a nil value [col 7]",
758 &SyslogMessage{
759 priority: getUint8Address(1),
760 facility: getUint8Address(0),
761 severity: getUint8Address(1),
734 fmt.Sprintf(ErrHostname+ColumnPositionTemplate, 7),
735 &SyslogMessage{
736 priority: syslogtesting.Uint8Address(1),
737 facility: syslogtesting.Uint8Address(0),
738 severity: syslogtesting.Uint8Address(1),
762739 version: 1,
763740 },
764741 },
766743 []byte("<1>1 - - - - -"),
767744 false,
768745 nil,
769 "expecting an app-name (from 1 to max 48 US-ASCII characters) or a nil value [col 9]",
770 &SyslogMessage{
771 priority: getUint8Address(1),
772 facility: getUint8Address(0),
773 severity: getUint8Address(1),
746 fmt.Sprintf(ErrAppname+ColumnPositionTemplate, 9),
747 &SyslogMessage{
748 priority: syslogtesting.Uint8Address(1),
749 facility: syslogtesting.Uint8Address(0),
750 severity: syslogtesting.Uint8Address(1),
774751 version: 1,
775752 },
776753 },
778755 []byte("<1>1 - - - - -"),
779756 false,
780757 nil,
781 "expecting a procid (from 1 to max 128 US-ASCII characters) or a nil value [col 11]",
782 &SyslogMessage{
783 priority: getUint8Address(1),
784 facility: getUint8Address(0),
785 severity: getUint8Address(1),
758 fmt.Sprintf(ErrProcID+ColumnPositionTemplate, 11),
759 &SyslogMessage{
760 priority: syslogtesting.Uint8Address(1),
761 facility: syslogtesting.Uint8Address(0),
762 severity: syslogtesting.Uint8Address(1),
786763 version: 1,
787764 },
788765 },
790767 []byte("<1>1 - - - - -"),
791768 false,
792769 nil,
793 "expecting a msgid (from 1 to max 32 US-ASCII characters) or a nil value [col 13]",
794 &SyslogMessage{
795 priority: getUint8Address(1),
796 facility: getUint8Address(0),
797 severity: getUint8Address(1),
770 fmt.Sprintf(ErrMsgID+ColumnPositionTemplate, 13),
771 &SyslogMessage{
772 priority: syslogtesting.Uint8Address(1),
773 facility: syslogtesting.Uint8Address(0),
774 severity: syslogtesting.Uint8Address(1),
798775 version: 1,
799776 },
800777 },
803780 []byte("<1>1 - - - - - X"),
804781 false,
805782 nil,
806 "expecting a structured data section containing one or more elements (`[id( key=\"value\")*]+`) or a nil value [col 15]",
807 &SyslogMessage{
808 priority: getUint8Address(1),
809 facility: getUint8Address(0),
810 severity: getUint8Address(1),
783 fmt.Sprintf(ErrStructuredData+ColumnPositionTemplate, 15),
784 &SyslogMessage{
785 priority: syslogtesting.Uint8Address(1),
786 facility: syslogtesting.Uint8Address(0),
787 severity: syslogtesting.Uint8Address(1),
811788 version: 1,
812789 },
813790 },
816793 []byte("<1>1 - - - - - []"),
817794 false,
818795 nil,
819 "expecting a structured data element id (from 1 to max 32 US-ASCII characters; except `=`, ` `, `]`, and `\"` [col 16]",
820 &SyslogMessage{
821 priority: getUint8Address(1),
822 facility: getUint8Address(0),
823 severity: getUint8Address(1),
796 fmt.Sprintf(ErrSdID+ColumnPositionTemplate, 16),
797 &SyslogMessage{
798 priority: syslogtesting.Uint8Address(1),
799 facility: syslogtesting.Uint8Address(0),
800 severity: syslogtesting.Uint8Address(1),
824801 version: 1,
825802 structuredData: nil,
826803 },
830807 []byte("<1>1 - - - - - [ ]"),
831808 false,
832809 nil,
833 "expecting a structured data element id (from 1 to max 32 US-ASCII characters; except `=`, ` `, `]`, and `\"` [col 16]",
834 &SyslogMessage{
835 priority: getUint8Address(1),
836 facility: getUint8Address(0),
837 severity: getUint8Address(1),
810 fmt.Sprintf(ErrSdID+ColumnPositionTemplate, 16),
811 &SyslogMessage{
812 priority: syslogtesting.Uint8Address(1),
813 facility: syslogtesting.Uint8Address(0),
814 severity: syslogtesting.Uint8Address(1),
838815 version: 1,
839816 structuredData: nil,
840817 },
844821 []byte("<1>1 - - - - - [=]"),
845822 false,
846823 nil,
847 "expecting a structured data element id (from 1 to max 32 US-ASCII characters; except `=`, ` `, `]`, and `\"` [col 16]",
848 &SyslogMessage{
849 priority: getUint8Address(1),
850 facility: getUint8Address(0),
851 severity: getUint8Address(1),
824 fmt.Sprintf(ErrSdID+ColumnPositionTemplate, 16),
825 &SyslogMessage{
826 priority: syslogtesting.Uint8Address(1),
827 facility: syslogtesting.Uint8Address(0),
828 severity: syslogtesting.Uint8Address(1),
852829 version: 1,
853830 structuredData: nil,
854831 },
858835 []byte("<1>1 - - - - - []]"),
859836 false,
860837 nil,
861 "expecting a structured data element id (from 1 to max 32 US-ASCII characters; except `=`, ` `, `]`, and `\"` [col 16]",
862 &SyslogMessage{
863 priority: getUint8Address(1),
864 facility: getUint8Address(0),
865 severity: getUint8Address(1),
838 fmt.Sprintf(ErrSdID+ColumnPositionTemplate, 16),
839 &SyslogMessage{
840 priority: syslogtesting.Uint8Address(1),
841 facility: syslogtesting.Uint8Address(0),
842 severity: syslogtesting.Uint8Address(1),
866843 version: 1,
867844 structuredData: nil,
868845 },
872849 []byte(`<1>1 - - - - - ["]`),
873850 false,
874851 nil,
875 "expecting a structured data element id (from 1 to max 32 US-ASCII characters; except `=`, ` `, `]`, and `\"` [col 16]",
876 &SyslogMessage{
877 priority: getUint8Address(1),
878 facility: getUint8Address(0),
879 severity: getUint8Address(1),
852 fmt.Sprintf(ErrSdID+ColumnPositionTemplate, 16),
853 &SyslogMessage{
854 priority: syslogtesting.Uint8Address(1),
855 facility: syslogtesting.Uint8Address(0),
856 severity: syslogtesting.Uint8Address(1),
880857 version: 1,
881858 structuredData: nil,
882859 },
886863 []byte(`<1>1 - - - - - [abcdefghilmnopqrstuvzabcdefghilmX]`),
887864 false,
888865 nil,
889 "expecting a structured data element id (from 1 to max 32 US-ASCII characters; except `=`, ` `, `]`, and `\"` [col 48]",
890 &SyslogMessage{
891 priority: getUint8Address(1),
892 facility: getUint8Address(0),
893 severity: getUint8Address(1),
866 fmt.Sprintf(ErrSdID+ColumnPositionTemplate, 48),
867 &SyslogMessage{
868 priority: syslogtesting.Uint8Address(1),
869 facility: syslogtesting.Uint8Address(0),
870 severity: syslogtesting.Uint8Address(1),
894871 version: 1,
895872 structuredData: nil,
896873 },
900877 []byte(`<1>1 - - - - - [id abcdefghilmnopqrstuvzabcdefghilmX="val"]`),
901878 false,
902879 nil,
903 "expecting a structured data parameter (`key=\"value\"`, both part from 1 to max 32 US-ASCII characters; key cannot contain `=`, ` `, `]`, and `\"`, while value cannot contain `]`, backslash, and `\"` unless escaped) [col 51]",
904 &SyslogMessage{
905 priority: getUint8Address(1),
906 facility: getUint8Address(0),
907 severity: getUint8Address(1),
880 fmt.Sprintf(ErrSdParam+ColumnPositionTemplate, 51),
881 &SyslogMessage{
882 priority: syslogtesting.Uint8Address(1),
883 facility: syslogtesting.Uint8Address(0),
884 severity: syslogtesting.Uint8Address(1),
908885 version: 1,
909886 structuredData: &map[string]map[string]string{
910887 "id": {},
916893 []byte("<1>1 - - - - - -"),
917894 true,
918895 &SyslogMessage{
919 facility: getUint8Address(0),
920 severity: getUint8Address(1),
921 priority: getUint8Address(1),
896 facility: syslogtesting.Uint8Address(0),
897 severity: syslogtesting.Uint8Address(1),
898 priority: syslogtesting.Uint8Address(1),
922899 version: 1,
923900 },
924901 "",
928905 []byte("<0>1 - - - - - -"),
929906 true,
930907 &SyslogMessage{
931 priority: getUint8Address(0),
932 facility: getUint8Address(0),
933 severity: getUint8Address(0),
908 priority: syslogtesting.Uint8Address(0),
909 facility: syslogtesting.Uint8Address(0),
910 severity: syslogtesting.Uint8Address(0),
934911 version: 1,
935912 },
936913 "",
941918 []byte(`<29>1 2016-02-21T04:32:57+00:00 web1 someservice - - [origin x-service="someservice"][meta sequenceId="14125553"] 127.0.0.1 - - 1456029177 "GET /v1/ok HTTP/1.1" 200 145 "-" "hacheck 0.9.0" 24306 127.0.0.1:40124 575`),
942919 true,
943920 &SyslogMessage{
944 facility: getUint8Address(3),
945 severity: getUint8Address(5),
946 priority: getUint8Address(29),
921 facility: syslogtesting.Uint8Address(3),
922 severity: syslogtesting.Uint8Address(5),
923 priority: syslogtesting.Uint8Address(29),
947924 version: 1,
948 timestamp: timeParse(RFC3339MICRO, "2016-02-21T04:32:57+00:00"),
949 hostname: getStringAddress("web1"),
950 appname: getStringAddress("someservice"),
925 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-02-21T04:32:57+00:00"),
926 hostname: syslogtesting.StringAddress("web1"),
927 appname: syslogtesting.StringAddress("someservice"),
951928 structuredData: &map[string]map[string]string{
952929 "origin": {
953930 "x-service": "someservice",
956933 "sequenceId": "14125553",
957934 },
958935 },
959 message: getStringAddress(`127.0.0.1 - - 1456029177 "GET /v1/ok HTTP/1.1" 200 145 "-" "hacheck 0.9.0" 24306 127.0.0.1:40124 575`),
936 message: syslogtesting.StringAddress(`127.0.0.1 - - 1456029177 "GET /v1/ok HTTP/1.1" 200 145 "-" "hacheck 0.9.0" 24306 127.0.0.1:40124 575`),
960937 },
961938 "",
962939 nil,
966943 []byte("<1>100 - host-name - - - -"),
967944 true,
968945 &SyslogMessage{
969 facility: getUint8Address(0),
970 severity: getUint8Address(1),
971 priority: getUint8Address(1),
946 facility: syslogtesting.Uint8Address(0),
947 severity: syslogtesting.Uint8Address(1),
948 priority: syslogtesting.Uint8Address(1),
972949 version: 100,
973 hostname: getStringAddress("host-name"),
950 hostname: syslogtesting.StringAddress("host-name"),
974951 },
975952 "",
976953 nil,
979956 []byte("<1>101 - host-name app-name - - -"),
980957 true,
981958 &SyslogMessage{
982 facility: getUint8Address(0),
983 severity: getUint8Address(1),
984 priority: getUint8Address(1),
959 facility: syslogtesting.Uint8Address(0),
960 severity: syslogtesting.Uint8Address(1),
961 priority: syslogtesting.Uint8Address(1),
985962 version: 101,
986 hostname: getStringAddress("host-name"),
987 appname: getStringAddress("app-name"),
963 hostname: syslogtesting.StringAddress("host-name"),
964 appname: syslogtesting.StringAddress("app-name"),
988965 },
989966 "",
990967 nil,
993970 []byte("<1>102 - host-name app-name proc-id - -"),
994971 true,
995972 &SyslogMessage{
996 facility: getUint8Address(0),
997 severity: getUint8Address(1),
998 priority: getUint8Address(1),
973 facility: syslogtesting.Uint8Address(0),
974 severity: syslogtesting.Uint8Address(1),
975 priority: syslogtesting.Uint8Address(1),
999976 version: 102,
1000 hostname: getStringAddress("host-name"),
1001 appname: getStringAddress("app-name"),
1002 procID: getStringAddress("proc-id"),
977 hostname: syslogtesting.StringAddress("host-name"),
978 appname: syslogtesting.StringAddress("app-name"),
979 procID: syslogtesting.StringAddress("proc-id"),
1003980 },
1004981 "",
1005982 nil,
1008985 []byte("<1>103 - host-name app-name proc-id msg-id -"),
1009986 true,
1010987 &SyslogMessage{
1011 facility: getUint8Address(0),
1012 severity: getUint8Address(1),
1013 priority: getUint8Address(1),
988 facility: syslogtesting.Uint8Address(0),
989 severity: syslogtesting.Uint8Address(1),
990 priority: syslogtesting.Uint8Address(1),
1014991 version: 103,
1015 hostname: getStringAddress("host-name"),
1016 appname: getStringAddress("app-name"),
1017 procID: getStringAddress("proc-id"),
1018 msgID: getStringAddress("msg-id"),
992 hostname: syslogtesting.StringAddress("host-name"),
993 appname: syslogtesting.StringAddress("app-name"),
994 procID: syslogtesting.StringAddress("proc-id"),
995 msgID: syslogtesting.StringAddress("msg-id"),
1019996 },
1020997 "",
1021998 nil,
10251002 []byte("<191>999 2018-12-31T23:59:59.999999-23:59 abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabc abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdef abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzab abcdefghilmnopqrstuvzabcdefghilm -"),
10261003 true,
10271004 &SyslogMessage{
1028 priority: getUint8Address(191),
1029 facility: getUint8Address(23),
1030 severity: getUint8Address(7),
1005 priority: syslogtesting.Uint8Address(191),
1006 facility: syslogtesting.Uint8Address(23),
1007 severity: syslogtesting.Uint8Address(7),
10311008 version: 999,
1032 timestamp: timeParse(RFC3339MICRO, "2018-12-31T23:59:59.999999-23:59"),
1033 hostname: getStringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabc"),
1034 appname: getStringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdef"),
1035 procID: getStringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzab"),
1036 msgID: getStringAddress("abcdefghilmnopqrstuvzabcdefghilm"),
1009 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2018-12-31T23:59:59.999999-23:59"),
1010 hostname: syslogtesting.StringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabc"),
1011 appname: syslogtesting.StringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdef"),
1012 procID: syslogtesting.StringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzab"),
1013 msgID: syslogtesting.StringAddress("abcdefghilmnopqrstuvzabcdefghilm"),
10371014 },
10381015 "",
10391016 nil,
10431020 []byte(`<191>999 2018-12-31T23:59:59.999999-23:59 abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabc abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdef abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzab abcdefghilmnopqrstuvzabcdefghilm [an@id key1="val1" key2="val2"][another@id key1="val1"] Some message "GET"`),
10441021 true,
10451022 &SyslogMessage{
1046 priority: getUint8Address(191),
1047 facility: getUint8Address(23),
1048 severity: getUint8Address(7),
1023 priority: syslogtesting.Uint8Address(191),
1024 facility: syslogtesting.Uint8Address(23),
1025 severity: syslogtesting.Uint8Address(7),
10491026 version: 999,
1050 timestamp: timeParse(RFC3339MICRO, "2018-12-31T23:59:59.999999-23:59"),
1051 hostname: getStringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabc"),
1052 appname: getStringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdef"),
1053 procID: getStringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzab"),
1054 msgID: getStringAddress("abcdefghilmnopqrstuvzabcdefghilm"),
1027 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2018-12-31T23:59:59.999999-23:59"),
1028 hostname: syslogtesting.StringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabc"),
1029 appname: syslogtesting.StringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdef"),
1030 procID: syslogtesting.StringAddress("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzab"),
1031 msgID: syslogtesting.StringAddress("abcdefghilmnopqrstuvzabcdefghilm"),
10551032 structuredData: &map[string]map[string]string{
10561033 "an@id": {
10571034 "key1": "val1",
10611038 "key1": "val1",
10621039 },
10631040 },
1064 message: getStringAddress(`Some message "GET"`),
1041 message: syslogtesting.StringAddress(`Some message "GET"`),
10651042 },
10661043 "",
10671044 nil,
10711048 []byte("<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - BOM'su root' failed for lonvick on /dev/pts/8"),
10721049 true,
10731050 &SyslogMessage{
1074 facility: getUint8Address(4),
1075 severity: getUint8Address(2),
1076 priority: getUint8Address(34),
1051 facility: syslogtesting.Uint8Address(4),
1052 severity: syslogtesting.Uint8Address(2),
1053 priority: syslogtesting.Uint8Address(34),
10771054 version: 1,
1078 timestamp: timeParse(RFC3339MICRO, "2003-10-11T22:14:15.003Z"),
1079 hostname: getStringAddress("mymachine.example.com"),
1080 appname: getStringAddress("su"),
1055 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-10-11T22:14:15.003Z"),
1056 hostname: syslogtesting.StringAddress("mymachine.example.com"),
1057 appname: syslogtesting.StringAddress("su"),
10811058 procID: nil,
1082 msgID: getStringAddress("ID47"),
1059 msgID: syslogtesting.StringAddress("ID47"),
10831060 structuredData: nil,
1084 message: getStringAddress("BOM'su root' failed for lonvick on /dev/pts/8"),
1061 message: syslogtesting.StringAddress("BOM'su root' failed for lonvick on /dev/pts/8"),
10851062 },
10861063 "",
10871064 nil,
10911068 []byte("<187>222 - mymachine.example.com su - ID47 - 'su root' failed for lonvick on /dev/pts/8"),
10921069 true,
10931070 &SyslogMessage{
1094 facility: getUint8Address(23),
1095 severity: getUint8Address(3),
1096 priority: getUint8Address(187),
1071 facility: syslogtesting.Uint8Address(23),
1072 severity: syslogtesting.Uint8Address(3),
1073 priority: syslogtesting.Uint8Address(187),
10971074 version: 222,
10981075 timestamp: nil,
1099 hostname: getStringAddress("mymachine.example.com"),
1100 appname: getStringAddress("su"),
1076 hostname: syslogtesting.StringAddress("mymachine.example.com"),
1077 appname: syslogtesting.StringAddress("su"),
11011078 procID: nil,
1102 msgID: getStringAddress("ID47"),
1079 msgID: syslogtesting.StringAddress("ID47"),
11031080 structuredData: nil,
1104 message: getStringAddress("'su root' failed for lonvick on /dev/pts/8"),
1081 message: syslogtesting.StringAddress("'su root' failed for lonvick on /dev/pts/8"),
11051082 },
11061083 "",
11071084 nil,
11111088 []byte("<165>1 2003-08-24T05:14:15.000003-07:00 192.0.2.1 myproc 8710 - - %% Time to make the do-nuts."),
11121089 true,
11131090 &SyslogMessage{
1114 facility: getUint8Address(20),
1115 severity: getUint8Address(5),
1116 priority: getUint8Address(165),
1091 facility: syslogtesting.Uint8Address(20),
1092 severity: syslogtesting.Uint8Address(5),
1093 priority: syslogtesting.Uint8Address(165),
11171094 version: 1,
1118 timestamp: timeParse(RFC3339MICRO, "2003-08-24T05:14:15.000003-07:00"),
1119 hostname: getStringAddress("192.0.2.1"),
1120 appname: getStringAddress("myproc"),
1121 procID: getStringAddress("8710"),
1095 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-08-24T05:14:15.000003-07:00"),
1096 hostname: syslogtesting.StringAddress("192.0.2.1"),
1097 appname: syslogtesting.StringAddress("myproc"),
1098 procID: syslogtesting.StringAddress("8710"),
11221099 msgID: nil,
11231100 structuredData: nil,
1124 message: getStringAddress("%% Time to make the do-nuts."),
1101 message: syslogtesting.StringAddress("%% Time to make the do-nuts."),
11251102 },
11261103 "",
11271104 nil,
11311108 []byte("<165>2 2003-08-24T05:14:15.000003-07:00 - - - - -"),
11321109 true,
11331110 &SyslogMessage{
1134 facility: getUint8Address(20),
1135 severity: getUint8Address(5),
1136 priority: getUint8Address(165),
1111 facility: syslogtesting.Uint8Address(20),
1112 severity: syslogtesting.Uint8Address(5),
1113 priority: syslogtesting.Uint8Address(165),
11371114 version: 2,
1138 timestamp: timeParse(RFC3339MICRO, "2003-08-24T05:14:15.000003-07:00"),
1115 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-08-24T05:14:15.000003-07:00"),
11391116 hostname: nil,
11401117 appname: nil,
11411118 procID: nil,
11511128 []byte("<165>222 2003-08-24T05:14:15.000003-07:00 - - - - - "),
11521129 true,
11531130 &SyslogMessage{
1154 facility: getUint8Address(20),
1155 severity: getUint8Address(5),
1156 priority: getUint8Address(165),
1131 facility: syslogtesting.Uint8Address(20),
1132 severity: syslogtesting.Uint8Address(5),
1133 priority: syslogtesting.Uint8Address(165),
11571134 version: 222,
1158 timestamp: timeParse(RFC3339MICRO, "2003-08-24T05:14:15.000003-07:00"),
1135 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-08-24T05:14:15.000003-07:00"),
11591136 hostname: nil,
11601137 appname: nil,
11611138 procID: nil,
11711148 []byte("<78>1 2016-01-15T00:04:01+00:00 host1 CROND 10391 - [sdid] some_message"),
11721149 true,
11731150 &SyslogMessage{
1174 facility: getUint8Address(9),
1175 severity: getUint8Address(6),
1176 priority: getUint8Address(78),
1151 facility: syslogtesting.Uint8Address(9),
1152 severity: syslogtesting.Uint8Address(6),
1153 priority: syslogtesting.Uint8Address(78),
11771154 version: 1,
1178 timestamp: timeParse(RFC3339MICRO, "2016-01-15T00:04:01+00:00"),
1179 hostname: getStringAddress("host1"),
1180 appname: getStringAddress("CROND"),
1181 procID: getStringAddress("10391"),
1155 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T00:04:01+00:00"),
1156 hostname: syslogtesting.StringAddress("host1"),
1157 appname: syslogtesting.StringAddress("CROND"),
1158 procID: syslogtesting.StringAddress("10391"),
11821159 msgID: nil,
11831160 structuredData: &map[string]map[string]string{
11841161 "sdid": {},
11851162 },
1186 message: getStringAddress("some_message"),
1163 message: syslogtesting.StringAddress("some_message"),
11871164 },
11881165 "",
11891166 nil,
11931170 []byte(`<78>1 2016-01-15T00:04:01+00:00 host1 CROND 10391 - [sdid x="⌘"] some_message`),
11941171 true,
11951172 &SyslogMessage{
1196 facility: getUint8Address(9),
1197 severity: getUint8Address(6),
1198 priority: getUint8Address(78),
1173 facility: syslogtesting.Uint8Address(9),
1174 severity: syslogtesting.Uint8Address(6),
1175 priority: syslogtesting.Uint8Address(78),
11991176 version: 1,
1200 timestamp: timeParse(RFC3339MICRO, "2016-01-15T00:04:01+00:00"),
1201 hostname: getStringAddress("host1"),
1202 appname: getStringAddress("CROND"),
1203 procID: getStringAddress("10391"),
1177 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T00:04:01+00:00"),
1178 hostname: syslogtesting.StringAddress("host1"),
1179 appname: syslogtesting.StringAddress("CROND"),
1180 procID: syslogtesting.StringAddress("10391"),
12041181 msgID: nil,
12051182 structuredData: &map[string]map[string]string{
12061183 "sdid": {
12071184 "x": "⌘",
12081185 },
12091186 },
1210 message: getStringAddress("some_message"),
1187 message: syslogtesting.StringAddress("some_message"),
12111188 },
12121189 "",
12131190 nil,
12171194 []byte(`<78>2 2016-01-15T00:04:01+00:00 host1 CROND 10391 - [sdid x="hey \\u2318 hey"] some_message`),
12181195 true,
12191196 &SyslogMessage{
1220 facility: getUint8Address(9),
1221 severity: getUint8Address(6),
1222 priority: getUint8Address(78),
1197 facility: syslogtesting.Uint8Address(9),
1198 severity: syslogtesting.Uint8Address(6),
1199 priority: syslogtesting.Uint8Address(78),
12231200 version: 2,
1224 timestamp: timeParse(RFC3339MICRO, "2016-01-15T00:04:01+00:00"),
1225 hostname: getStringAddress("host1"),
1226 appname: getStringAddress("CROND"),
1227 procID: getStringAddress("10391"),
1201 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T00:04:01+00:00"),
1202 hostname: syslogtesting.StringAddress("host1"),
1203 appname: syslogtesting.StringAddress("CROND"),
1204 procID: syslogtesting.StringAddress("10391"),
12281205 msgID: nil,
12291206 structuredData: &map[string]map[string]string{
12301207 "sdid": {
12311208 "x": `hey \u2318 hey`,
12321209 },
12331210 },
1234 message: getStringAddress("some_message"),
1211 message: syslogtesting.StringAddress("some_message"),
12351212 },
12361213 "",
12371214 nil,
12411218 []byte(`<29>50 2016-01-15T01:00:43Z hn S - - [meta es="\\valid"] 127.0.0.1 - - 1452819643 "GET"`),
12421219 true,
12431220 &SyslogMessage{
1244 priority: getUint8Address(29),
1245 facility: getUint8Address(3),
1246 severity: getUint8Address(5),
1221 priority: syslogtesting.Uint8Address(29),
1222 facility: syslogtesting.Uint8Address(3),
1223 severity: syslogtesting.Uint8Address(5),
12471224 version: 50,
1248 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1249 hostname: getStringAddress("hn"),
1250 appname: getStringAddress("S"),
1225 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1226 hostname: syslogtesting.StringAddress("hn"),
1227 appname: syslogtesting.StringAddress("S"),
12511228 structuredData: &map[string]map[string]string{
12521229 "meta": {
12531230 "es": `\valid`,
12541231 },
12551232 },
1256 message: getStringAddress(`127.0.0.1 - - 1452819643 "GET"`),
1233 message: syslogtesting.StringAddress(`127.0.0.1 - - 1452819643 "GET"`),
12571234 },
12581235 "",
12591236 nil,
12621239 []byte(`<29>52 2016-01-15T01:00:43Z hn S - - [meta one="\\one" two="\\two"] 127.0.0.1 - - 1452819643 "GET"`),
12631240 true,
12641241 &SyslogMessage{
1265 priority: getUint8Address(29),
1266 facility: getUint8Address(3),
1267 severity: getUint8Address(5),
1242 priority: syslogtesting.Uint8Address(29),
1243 facility: syslogtesting.Uint8Address(3),
1244 severity: syslogtesting.Uint8Address(5),
12681245 version: 52,
1269 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1270 hostname: getStringAddress("hn"),
1271 appname: getStringAddress("S"),
1246 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1247 hostname: syslogtesting.StringAddress("hn"),
1248 appname: syslogtesting.StringAddress("S"),
12721249 structuredData: &map[string]map[string]string{
12731250 "meta": {
12741251 "one": `\one`,
12751252 "two": `\two`,
12761253 },
12771254 },
1278 message: getStringAddress(`127.0.0.1 - - 1452819643 "GET"`),
1255 message: syslogtesting.StringAddress(`127.0.0.1 - - 1452819643 "GET"`),
12791256 },
12801257 "",
12811258 nil,
12841261 []byte(`<29>53 2016-01-15T01:00:43Z hn S - - [meta one="\\one"][other two="\\two" double="\\a\\b"] 127.0.0.1 - - 1452819643 "GET"`),
12851262 true,
12861263 &SyslogMessage{
1287 priority: getUint8Address(29),
1288 facility: getUint8Address(3),
1289 severity: getUint8Address(5),
1264 priority: syslogtesting.Uint8Address(29),
1265 facility: syslogtesting.Uint8Address(3),
1266 severity: syslogtesting.Uint8Address(5),
12901267 version: 53,
1291 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1292 hostname: getStringAddress("hn"),
1293 appname: getStringAddress("S"),
1268 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1269 hostname: syslogtesting.StringAddress("hn"),
1270 appname: syslogtesting.StringAddress("S"),
12941271 structuredData: &map[string]map[string]string{
12951272 "meta": {
12961273 "one": `\one`,
13001277 "double": `\a\b`,
13011278 },
13021279 },
1303 message: getStringAddress(`127.0.0.1 - - 1452819643 "GET"`),
1280 message: syslogtesting.StringAddress(`127.0.0.1 - - 1452819643 "GET"`),
13041281 },
13051282 "",
13061283 nil,
13091286 []byte(`<29>51 2016-01-15T01:00:43Z hn S - - [meta es="\\double\\slash"] 127.0.0.1 - - 1452819643 "GET"`),
13101287 true,
13111288 &SyslogMessage{
1312 priority: getUint8Address(29),
1313 facility: getUint8Address(3),
1314 severity: getUint8Address(5),
1289 priority: syslogtesting.Uint8Address(29),
1290 facility: syslogtesting.Uint8Address(3),
1291 severity: syslogtesting.Uint8Address(5),
13151292 version: 51,
1316 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1317 hostname: getStringAddress("hn"),
1318 appname: getStringAddress("S"),
1293 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1294 hostname: syslogtesting.StringAddress("hn"),
1295 appname: syslogtesting.StringAddress("S"),
13191296 structuredData: &map[string]map[string]string{
13201297 "meta": {
13211298 "es": `\double\slash`,
13221299 },
13231300 },
1324 message: getStringAddress(`127.0.0.1 - - 1452819643 "GET"`),
1301 message: syslogtesting.StringAddress(`127.0.0.1 - - 1452819643 "GET"`),
13251302 },
13261303 "",
13271304 nil,
13301307 []byte(`<29>54 2016-01-15T01:00:43Z hn S - - [meta es="in \\middle of the string"] 127.0.0.1 - - 1452819643 "GET"`),
13311308 true,
13321309 &SyslogMessage{
1333 priority: getUint8Address(29),
1334 facility: getUint8Address(3),
1335 severity: getUint8Address(5),
1310 priority: syslogtesting.Uint8Address(29),
1311 facility: syslogtesting.Uint8Address(3),
1312 severity: syslogtesting.Uint8Address(5),
13361313 version: 54,
1337 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1338 hostname: getStringAddress("hn"),
1339 appname: getStringAddress("S"),
1314 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1315 hostname: syslogtesting.StringAddress("hn"),
1316 appname: syslogtesting.StringAddress("S"),
13401317 structuredData: &map[string]map[string]string{
13411318 "meta": {
13421319 "es": `in \middle of the string`,
13431320 },
13441321 },
1345 message: getStringAddress(`127.0.0.1 - - 1452819643 "GET"`),
1322 message: syslogtesting.StringAddress(`127.0.0.1 - - 1452819643 "GET"`),
13461323 },
13471324 "",
13481325 nil,
13511328 []byte(`<29>55 2016-01-15T01:00:43Z hn S - - [meta es="at the \\end"] 127.0.0.1 - - 1452819643 "GET"`),
13521329 true,
13531330 &SyslogMessage{
1354 priority: getUint8Address(29),
1355 facility: getUint8Address(3),
1356 severity: getUint8Address(5),
1331 priority: syslogtesting.Uint8Address(29),
1332 facility: syslogtesting.Uint8Address(3),
1333 severity: syslogtesting.Uint8Address(5),
13571334 version: 55,
1358 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1359 hostname: getStringAddress("hn"),
1360 appname: getStringAddress("S"),
1335 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1336 hostname: syslogtesting.StringAddress("hn"),
1337 appname: syslogtesting.StringAddress("S"),
13611338 structuredData: &map[string]map[string]string{
13621339 "meta": {
13631340 "es": `at the \end`,
13641341 },
13651342 },
1366 message: getStringAddress(`127.0.0.1 - - 1452819643 "GET"`),
1343 message: syslogtesting.StringAddress(`127.0.0.1 - - 1452819643 "GET"`),
13671344 },
13681345 "",
13691346 nil,
13731350 []byte("<29>50 2016-01-15T01:00:43Z hn S - - [meta es=\"\t5Ὂg̀9!℃ᾭGa b\"] 127.0.0.1 - - 1452819643 \"GET\""),
13741351 true,
13751352 &SyslogMessage{
1376 priority: getUint8Address(29),
1377 facility: getUint8Address(3),
1378 severity: getUint8Address(5),
1353 priority: syslogtesting.Uint8Address(29),
1354 facility: syslogtesting.Uint8Address(3),
1355 severity: syslogtesting.Uint8Address(5),
13791356 version: 50,
1380 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1381 hostname: getStringAddress("hn"),
1382 appname: getStringAddress("S"),
1357 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1358 hostname: syslogtesting.StringAddress("hn"),
1359 appname: syslogtesting.StringAddress("S"),
13831360 structuredData: &map[string]map[string]string{
13841361 "meta": {
13851362 "es": "\t5Ὂg̀9!℃ᾭGa b",
13861363 },
13871364 },
1388 message: getStringAddress(`127.0.0.1 - - 1452819643 "GET"`),
1365 message: syslogtesting.StringAddress(`127.0.0.1 - - 1452819643 "GET"`),
13891366 },
13901367 "",
13911368 nil,
13951372 []byte(`<29>50 2016-01-15T01:00:43Z hn S - - [meta gr="κόσμε" es="ñ"][beta pr="₡"] 𐌼 "GET"`),
13961373 true,
13971374 &SyslogMessage{
1398 priority: getUint8Address(29),
1399 facility: getUint8Address(3),
1400 severity: getUint8Address(5),
1375 priority: syslogtesting.Uint8Address(29),
1376 facility: syslogtesting.Uint8Address(3),
1377 severity: syslogtesting.Uint8Address(5),
14011378 version: 50,
1402 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1403 hostname: getStringAddress("hn"),
1404 appname: getStringAddress("S"),
1379 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1380 hostname: syslogtesting.StringAddress("hn"),
1381 appname: syslogtesting.StringAddress("S"),
14051382 structuredData: &map[string]map[string]string{
14061383 "meta": {
14071384 "gr": "κόσμε",
14111388 "pr": "₡",
14121389 },
14131390 },
1414 message: getStringAddress(`𐌼 "GET"`),
1391 message: syslogtesting.StringAddress(`𐌼 "GET"`),
14151392 },
14161393 "",
14171394 nil,
14211398 []byte("<165>3 2003-10-11T22:14:15.003Z example.com evnts - ID27 [exampleSDID@32473 iut=\"3\" eventSource=\"Application\" eventID=\"1011\"][examplePriority@32473 class=\"high\"]"),
14221399 true,
14231400 &SyslogMessage{
1424 facility: getUint8Address(20),
1425 severity: getUint8Address(5),
1426 priority: getUint8Address(165),
1401 facility: syslogtesting.Uint8Address(20),
1402 severity: syslogtesting.Uint8Address(5),
1403 priority: syslogtesting.Uint8Address(165),
14271404 version: 3,
1428 timestamp: timeParse(RFC3339MICRO, "2003-10-11T22:14:15.003Z"),
1429 hostname: getStringAddress("example.com"),
1430 appname: getStringAddress("evnts"),
1405 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-10-11T22:14:15.003Z"),
1406 hostname: syslogtesting.StringAddress("example.com"),
1407 appname: syslogtesting.StringAddress("evnts"),
14311408 procID: nil,
1432 msgID: getStringAddress("ID27"),
1409 msgID: syslogtesting.StringAddress("ID27"),
14331410 structuredData: &map[string]map[string]string{
14341411 "exampleSDID@32473": {
14351412 "iut": "3",
14521429 nil,
14531430 "duplicate structured data element id [col 66]",
14541431 &SyslogMessage{
1455 priority: getUint8Address(165),
1456 facility: getUint8Address(20),
1457 severity: getUint8Address(5),
1432 priority: syslogtesting.Uint8Address(165),
1433 facility: syslogtesting.Uint8Address(20),
1434 severity: syslogtesting.Uint8Address(5),
14581435 version: 3,
1459 timestamp: timeParse(RFC3339MICRO, "2003-10-11T22:14:15.003Z"),
1460 hostname: getStringAddress("example.com"),
1461 appname: getStringAddress("evnts"),
1462 msgID: getStringAddress("ID27"),
1436 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-10-11T22:14:15.003Z"),
1437 hostname: syslogtesting.StringAddress("example.com"),
1438 appname: syslogtesting.StringAddress("evnts"),
1439 msgID: syslogtesting.StringAddress("ID27"),
14631440 structuredData: &map[string]map[string]string{
14641441 "id1": {},
14651442 },
14721449 nil,
14731450 "duplicate structured data element id [col 79]",
14741451 &SyslogMessage{
1475 priority: getUint8Address(165),
1476 facility: getUint8Address(20),
1477 severity: getUint8Address(5),
1452 priority: syslogtesting.Uint8Address(165),
1453 facility: syslogtesting.Uint8Address(20),
1454 severity: syslogtesting.Uint8Address(5),
14781455 version: 3,
1479 timestamp: timeParse(RFC3339MICRO, "2003-10-11T22:14:15.003Z"),
1480 hostname: getStringAddress("example.com"),
1481 appname: getStringAddress("evnts"),
1482 msgID: getStringAddress("ID27"),
1456 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-10-11T22:14:15.003Z"),
1457 hostname: syslogtesting.StringAddress("example.com"),
1458 appname: syslogtesting.StringAddress("evnts"),
1459 msgID: syslogtesting.StringAddress("ID27"),
14831460 structuredData: &map[string]map[string]string{
14841461 "id1": {},
14851462 "dupe": {
14931470 []byte(`<165>4 2003-10-11T22:14:15.003Z mymachine.it e - 1 [ex@32473 iut="3" eventSource="A"] An application event log entry...`),
14941471 true,
14951472 &SyslogMessage{
1496 facility: getUint8Address(20),
1497 severity: getUint8Address(5),
1498 priority: getUint8Address(165),
1473 facility: syslogtesting.Uint8Address(20),
1474 severity: syslogtesting.Uint8Address(5),
1475 priority: syslogtesting.Uint8Address(165),
14991476 version: 4,
1500 timestamp: timeParse(RFC3339MICRO, "2003-10-11T22:14:15.003Z"),
1501 hostname: getStringAddress("mymachine.it"),
1502 appname: getStringAddress("e"),
1477 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2003-10-11T22:14:15.003Z"),
1478 hostname: syslogtesting.StringAddress("mymachine.it"),
1479 appname: syslogtesting.StringAddress("e"),
15031480 procID: nil,
1504 msgID: getStringAddress("1"),
1481 msgID: syslogtesting.StringAddress("1"),
15051482 structuredData: &map[string]map[string]string{
15061483 "ex@32473": {
15071484 "iut": "3",
15081485 "eventSource": "A",
15091486 },
15101487 },
1511 message: getStringAddress("An application event log entry..."),
1488 message: syslogtesting.StringAddress("An application event log entry..."),
15121489 },
15131490 "",
15141491 nil,
15181495 []byte(`<29>1 2016-01-15T01:00:43Z some-host-name SEKRETPROGRAM prg - [origin x-service="svcname"][meta sequenceId="1"] 127.0.0.1 - - 1452819643 "GET"`),
15191496 true,
15201497 &SyslogMessage{
1521 facility: getUint8Address(3),
1522 severity: getUint8Address(5),
1523 priority: getUint8Address(29),
1498 facility: syslogtesting.Uint8Address(3),
1499 severity: syslogtesting.Uint8Address(5),
1500 priority: syslogtesting.Uint8Address(29),
15241501 version: 1,
1525 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1526 hostname: getStringAddress("some-host-name"),
1527 appname: getStringAddress("SEKRETPROGRAM"),
1528 procID: getStringAddress("prg"),
1502 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1503 hostname: syslogtesting.StringAddress("some-host-name"),
1504 appname: syslogtesting.StringAddress("SEKRETPROGRAM"),
1505 procID: syslogtesting.StringAddress("prg"),
15291506 msgID: nil,
15301507 structuredData: &map[string]map[string]string{
15311508 "origin": {
15351512 "sequenceId": "1",
15361513 },
15371514 },
1538 message: getStringAddress("127.0.0.1 - - 1452819643 \"GET\""),
1515 message: syslogtesting.StringAddress("127.0.0.1 - - 1452819643 \"GET\""),
15391516 },
15401517 "",
15411518 nil,
15451522 []byte(`<1>1 - - - - - [id pk=""]`),
15461523 true,
15471524 &SyslogMessage{
1548 priority: getUint8Address(1),
1549 facility: getUint8Address(0),
1550 severity: getUint8Address(1),
1525 priority: syslogtesting.Uint8Address(1),
1526 facility: syslogtesting.Uint8Address(0),
1527 severity: syslogtesting.Uint8Address(1),
15511528 version: 1,
15521529 structuredData: &map[string]map[string]string{
15531530 "id": {
15631540 []byte(`<29>2 2016-01-15T01:00:43Z some-host-name SEKRETPROGRAM prg - [meta escape="\]"] some "mex"`),
15641541 true,
15651542 &SyslogMessage{
1566 facility: getUint8Address(3),
1567 severity: getUint8Address(5),
1568 priority: getUint8Address(29),
1543 facility: syslogtesting.Uint8Address(3),
1544 severity: syslogtesting.Uint8Address(5),
1545 priority: syslogtesting.Uint8Address(29),
15691546 version: 2,
1570 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1571 hostname: getStringAddress("some-host-name"),
1572 appname: getStringAddress("SEKRETPROGRAM"),
1573 procID: getStringAddress("prg"),
1547 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1548 hostname: syslogtesting.StringAddress("some-host-name"),
1549 appname: syslogtesting.StringAddress("SEKRETPROGRAM"),
1550 procID: syslogtesting.StringAddress("prg"),
15741551 msgID: nil,
15751552 structuredData: &map[string]map[string]string{
15761553 "meta": {
15771554 "escape": "]",
15781555 },
15791556 },
1580 message: getStringAddress(`some "mex"`),
1557 message: syslogtesting.StringAddress(`some "mex"`),
15811558 },
15821559 "",
15831560 nil,
15861563 []byte(`<29>2 2016-01-15T01:00:43Z some-host-name SEKRETPROGRAM prg - [meta escape="\\"]`),
15871564 true,
15881565 &SyslogMessage{
1589 facility: getUint8Address(3),
1590 severity: getUint8Address(5),
1591 priority: getUint8Address(29),
1566 facility: syslogtesting.Uint8Address(3),
1567 severity: syslogtesting.Uint8Address(5),
1568 priority: syslogtesting.Uint8Address(29),
15921569 version: 2,
1593 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1594 hostname: getStringAddress("some-host-name"),
1595 appname: getStringAddress("SEKRETPROGRAM"),
1596 procID: getStringAddress("prg"),
1570 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1571 hostname: syslogtesting.StringAddress("some-host-name"),
1572 appname: syslogtesting.StringAddress("SEKRETPROGRAM"),
1573 procID: syslogtesting.StringAddress("prg"),
15971574 msgID: nil,
15981575 structuredData: &map[string]map[string]string{
15991576 "meta": {
16081585 []byte(`<29>2 2016-01-15T01:00:43Z some-host-name SEKRETPROGRAM prg - [meta escape="\""]`),
16091586 true,
16101587 &SyslogMessage{
1611 facility: getUint8Address(3),
1612 severity: getUint8Address(5),
1613 priority: getUint8Address(29),
1588 facility: syslogtesting.Uint8Address(3),
1589 severity: syslogtesting.Uint8Address(5),
1590 priority: syslogtesting.Uint8Address(29),
16141591 version: 2,
1615 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1616 hostname: getStringAddress("some-host-name"),
1617 appname: getStringAddress("SEKRETPROGRAM"),
1618 procID: getStringAddress("prg"),
1592 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1593 hostname: syslogtesting.StringAddress("some-host-name"),
1594 appname: syslogtesting.StringAddress("SEKRETPROGRAM"),
1595 procID: syslogtesting.StringAddress("prg"),
16191596 msgID: nil,
16201597 structuredData: &map[string]map[string]string{
16211598 "meta": {
16301607 []byte(`<29>2 2016-01-15T01:00:43Z some-host-name SEKRETPROGRAM prg - [meta escape="\]\"\\\\\]\""]`),
16311608 true,
16321609 &SyslogMessage{
1633 facility: getUint8Address(3),
1634 severity: getUint8Address(5),
1635 priority: getUint8Address(29),
1610 facility: syslogtesting.Uint8Address(3),
1611 severity: syslogtesting.Uint8Address(5),
1612 priority: syslogtesting.Uint8Address(29),
16361613 version: 2,
1637 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1638 hostname: getStringAddress("some-host-name"),
1639 appname: getStringAddress("SEKRETPROGRAM"),
1640 procID: getStringAddress("prg"),
1614 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1615 hostname: syslogtesting.StringAddress("some-host-name"),
1616 appname: syslogtesting.StringAddress("SEKRETPROGRAM"),
1617 procID: syslogtesting.StringAddress("prg"),
16411618 msgID: nil,
16421619 structuredData: &map[string]map[string]string{
16431620 "meta": {
16531630 []byte(`<29>3 2016-01-15T01:00:43Z hn S - - [meta escape="]"] 127.0.0.1 - - 1452819643 "GET"`),
16541631 false,
16551632 nil,
1656 "expecting chars `]`, `\"`, and `\\` to be escaped within param value [col 50]",
1657 &SyslogMessage{
1658 facility: getUint8Address(3),
1659 severity: getUint8Address(5),
1660 priority: getUint8Address(29),
1633 fmt.Sprintf(ErrEscape+ColumnPositionTemplate, 50),
1634 &SyslogMessage{
1635 facility: syslogtesting.Uint8Address(3),
1636 severity: syslogtesting.Uint8Address(5),
1637 priority: syslogtesting.Uint8Address(29),
16611638 version: 3,
1662 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1663 hostname: getStringAddress("hn"),
1664 appname: getStringAddress("S"),
1639 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1640 hostname: syslogtesting.StringAddress("hn"),
1641 appname: syslogtesting.StringAddress("S"),
16651642 structuredData: &map[string]map[string]string{
16661643 "meta": {},
16671644 },
16711648 []byte(`<29>5 2016-01-15T01:00:43Z hn S - - [meta escape="]q"] 127.0.0.1 - - 1452819643 "GET"`),
16721649 false,
16731650 nil,
1674 "expecting chars `]`, `\"`, and `\\` to be escaped within param value [col 50]",
1675 &SyslogMessage{
1676 facility: getUint8Address(3),
1677 severity: getUint8Address(5),
1678 priority: getUint8Address(29),
1651 fmt.Sprintf(ErrEscape+ColumnPositionTemplate, 50),
1652 &SyslogMessage{
1653 facility: syslogtesting.Uint8Address(3),
1654 severity: syslogtesting.Uint8Address(5),
1655 priority: syslogtesting.Uint8Address(29),
16791656 version: 5,
1680 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1681 hostname: getStringAddress("hn"),
1682 appname: getStringAddress("S"),
1657 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1658 hostname: syslogtesting.StringAddress("hn"),
1659 appname: syslogtesting.StringAddress("S"),
16831660 structuredData: &map[string]map[string]string{
16841661 "meta": {},
16851662 },
16891666 []byte(`<29>4 2016-01-15T01:00:43Z hn S - - [meta escape="p]"] 127.0.0.1 - - 1452819643 "GET"`),
16901667 false,
16911668 nil,
1692 "expecting chars `]`, `\"`, and `\\` to be escaped within param value [col 51]",
1693 &SyslogMessage{
1694 facility: getUint8Address(3),
1695 severity: getUint8Address(5),
1696 priority: getUint8Address(29),
1669 fmt.Sprintf(ErrEscape+ColumnPositionTemplate, 51),
1670 &SyslogMessage{
1671 facility: syslogtesting.Uint8Address(3),
1672 severity: syslogtesting.Uint8Address(5),
1673 priority: syslogtesting.Uint8Address(29),
16971674 version: 4,
1698 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1699 hostname: getStringAddress("hn"),
1700 appname: getStringAddress("S"),
1675 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1676 hostname: syslogtesting.StringAddress("hn"),
1677 appname: syslogtesting.StringAddress("S"),
17011678 structuredData: &map[string]map[string]string{
17021679 "meta": {},
17031680 },
17081685 []byte(`<29>4 2017-01-15T01:00:43Z hn S - - [meta escape="""] 127.0.0.1 - - 1452819643 "GET"`),
17091686 false,
17101687 nil,
1711 "expecting a structured data parameter (`key=\"value\"`, both part from 1 to max 32 US-ASCII characters; key cannot contain `=`, ` `, `]`, and `\"`, while value cannot contain `]`, backslash, and `\"` unless escaped) [col 51]",
1712 &SyslogMessage{
1713 facility: getUint8Address(3),
1714 severity: getUint8Address(5),
1715 priority: getUint8Address(29),
1688 fmt.Sprintf(ErrSdParam+ColumnPositionTemplate, 51),
1689 &SyslogMessage{
1690 facility: syslogtesting.Uint8Address(3),
1691 severity: syslogtesting.Uint8Address(5),
1692 priority: syslogtesting.Uint8Address(29),
17161693 version: 4,
1717 timestamp: timeParse(RFC3339MICRO, "2017-01-15T01:00:43Z"),
1718 hostname: getStringAddress("hn"),
1719 appname: getStringAddress("S"),
1694 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2017-01-15T01:00:43Z"),
1695 hostname: syslogtesting.StringAddress("hn"),
1696 appname: syslogtesting.StringAddress("S"),
17201697 structuredData: &map[string]map[string]string{
17211698 "meta": {},
17221699 },
17261703 []byte(`<29>6 2016-01-15T01:00:43Z hn S - - [meta escape="a""] 127.0.0.1 - - 1452819643 "GET"`),
17271704 false,
17281705 nil,
1729 "expecting a structured data parameter (`key=\"value\"`, both part from 1 to max 32 US-ASCII characters; key cannot contain `=`, ` `, `]`, and `\"`, while value cannot contain `]`, backslash, and `\"` unless escaped) [col 52]",
1730 &SyslogMessage{
1731 facility: getUint8Address(3),
1732 severity: getUint8Address(5),
1733 priority: getUint8Address(29),
1706 fmt.Sprintf(ErrSdParam+ColumnPositionTemplate, 52),
1707 &SyslogMessage{
1708 facility: syslogtesting.Uint8Address(3),
1709 severity: syslogtesting.Uint8Address(5),
1710 priority: syslogtesting.Uint8Address(29),
17341711 version: 6,
1735 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1736 hostname: getStringAddress("hn"),
1737 appname: getStringAddress("S"),
1712 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1713 hostname: syslogtesting.StringAddress("hn"),
1714 appname: syslogtesting.StringAddress("S"),
17381715 structuredData: &map[string]map[string]string{
17391716 "meta": {},
17401717 },
17441721 []byte(`<29>4 2018-01-15T01:00:43Z hn S - - [meta escape=""b"] 127.0.0.1 - - 1452819643 "GET"`),
17451722 false,
17461723 nil,
1747 "expecting a structured data parameter (`key=\"value\"`, both part from 1 to max 32 US-ASCII characters; key cannot contain `=`, ` `, `]`, and `\"`, while value cannot contain `]`, backslash, and `\"` unless escaped) [col 51]",
1748 &SyslogMessage{
1749 facility: getUint8Address(3),
1750 severity: getUint8Address(5),
1751 priority: getUint8Address(29),
1724 fmt.Sprintf(ErrSdParam+ColumnPositionTemplate, 51),
1725 &SyslogMessage{
1726 facility: syslogtesting.Uint8Address(3),
1727 severity: syslogtesting.Uint8Address(5),
1728 priority: syslogtesting.Uint8Address(29),
17521729 version: 4,
1753 timestamp: timeParse(RFC3339MICRO, "2018-01-15T01:00:43Z"),
1754 hostname: getStringAddress("hn"),
1755 appname: getStringAddress("S"),
1730 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2018-01-15T01:00:43Z"),
1731 hostname: syslogtesting.StringAddress("hn"),
1732 appname: syslogtesting.StringAddress("S"),
17561733 structuredData: &map[string]map[string]string{
17571734 "meta": {},
17581735 },
17631740 []byte(`<29>5 2019-01-15T01:00:43Z hn S - - [meta escape="\"] 127.0.0.1 - - 1452819643 "GET"`),
17641741 false,
17651742 nil,
1766 "expecting chars `]`, `\"`, and `\\` to be escaped within param value [col 52]",
1767 &SyslogMessage{
1768 facility: getUint8Address(3),
1769 severity: getUint8Address(5),
1770 priority: getUint8Address(29),
1743 fmt.Sprintf(ErrEscape+ColumnPositionTemplate, 52),
1744 &SyslogMessage{
1745 facility: syslogtesting.Uint8Address(3),
1746 severity: syslogtesting.Uint8Address(5),
1747 priority: syslogtesting.Uint8Address(29),
17711748 version: 5,
1772 timestamp: timeParse(RFC3339MICRO, "2019-01-15T01:00:43Z"),
1773 hostname: getStringAddress("hn"),
1774 appname: getStringAddress("S"),
1749 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2019-01-15T01:00:43Z"),
1750 hostname: syslogtesting.StringAddress("hn"),
1751 appname: syslogtesting.StringAddress("S"),
17751752 structuredData: &map[string]map[string]string{
17761753 "meta": {},
17771754 },
17811758 []byte(`<29>7 2019-01-15T01:00:43Z hn S - - [meta escape="a\"] 127.0.0.1 - - 1452819643 "GET"`),
17821759 false,
17831760 nil,
1784 "expecting chars `]`, `\"`, and `\\` to be escaped within param value [col 53]",
1785 &SyslogMessage{
1786 facility: getUint8Address(3),
1787 severity: getUint8Address(5),
1788 priority: getUint8Address(29),
1761 fmt.Sprintf(ErrEscape+ColumnPositionTemplate, 53),
1762 &SyslogMessage{
1763 facility: syslogtesting.Uint8Address(3),
1764 severity: syslogtesting.Uint8Address(5),
1765 priority: syslogtesting.Uint8Address(29),
17891766 version: 7,
1790 timestamp: timeParse(RFC3339MICRO, "2019-01-15T01:00:43Z"),
1791 hostname: getStringAddress("hn"),
1792 appname: getStringAddress("S"),
1767 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2019-01-15T01:00:43Z"),
1768 hostname: syslogtesting.StringAddress("hn"),
1769 appname: syslogtesting.StringAddress("S"),
17931770 structuredData: &map[string]map[string]string{
17941771 "meta": {},
17951772 },
17991776 []byte(`<29>8 2016-01-15T01:00:43Z hn S - - [meta escape="\n"] 127.0.0.1 - - 1452819643 "GET"`),
18001777 false,
18011778 nil,
1802 "expecting chars `]`, `\"`, and `\\` to be escaped within param value [col 51]",
1803 &SyslogMessage{
1804 facility: getUint8Address(3),
1805 severity: getUint8Address(5),
1806 priority: getUint8Address(29),
1779 fmt.Sprintf(ErrEscape+ColumnPositionTemplate, 51),
1780 &SyslogMessage{
1781 facility: syslogtesting.Uint8Address(3),
1782 severity: syslogtesting.Uint8Address(5),
1783 priority: syslogtesting.Uint8Address(29),
18071784 version: 8,
1808 timestamp: timeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1809 hostname: getStringAddress("hn"),
1810 appname: getStringAddress("S"),
1785 timestamp: syslogtesting.TimeParse(RFC3339MICRO, "2016-01-15T01:00:43Z"),
1786 hostname: syslogtesting.StringAddress("hn"),
1787 appname: syslogtesting.StringAddress("S"),
18111788 structuredData: &map[string]map[string]string{
18121789 "meta": {},
18131790 },
18181795 []byte("<1>1 - - - - - - \xEF\xBB\xBF"),
18191796 true,
18201797 &SyslogMessage{
1821 priority: getUint8Address(1),
1822 facility: getUint8Address(0),
1823 severity: getUint8Address(1),
1824 version: 1,
1825 message: getStringAddress("\ufeff"),
1798 priority: syslogtesting.Uint8Address(1),
1799 facility: syslogtesting.Uint8Address(0),
1800 severity: syslogtesting.Uint8Address(1),
1801 version: 1,
1802 message: syslogtesting.StringAddress("\ufeff"),
18261803 },
18271804 "",
18281805 nil,
18321809 []byte("<1>1 - - - - - - κόσμε"),
18331810 true,
18341811 &SyslogMessage{
1835 priority: getUint8Address(1),
1836 facility: getUint8Address(0),
1837 severity: getUint8Address(1),
1838 version: 1,
1839 message: getStringAddress("κόσμε"),
1812 priority: syslogtesting.Uint8Address(1),
1813 facility: syslogtesting.Uint8Address(0),
1814 severity: syslogtesting.Uint8Address(1),
1815 version: 1,
1816 message: syslogtesting.StringAddress("κόσμε"),
18401817 },
18411818 "",
18421819 nil,
18461823 []byte("<1>1 - - - - - - €"),
18471824 true,
18481825 &SyslogMessage{
1849 priority: getUint8Address(1),
1850 facility: getUint8Address(0),
1851 severity: getUint8Address(1),
1852 version: 1,
1853 message: getStringAddress("€"),
1826 priority: syslogtesting.Uint8Address(1),
1827 facility: syslogtesting.Uint8Address(0),
1828 severity: syslogtesting.Uint8Address(1),
1829 version: 1,
1830 message: syslogtesting.StringAddress("€"),
18541831 },
18551832 "",
18561833 nil,
18601837 []byte("<1>1 - - - - - - \xc3\xb1"),
18611838 true,
18621839 &SyslogMessage{
1863 priority: getUint8Address(1),
1864 facility: getUint8Address(0),
1865 severity: getUint8Address(1),
1866 version: 1,
1867 message: getStringAddress("ñ"),
1840 priority: syslogtesting.Uint8Address(1),
1841 facility: syslogtesting.Uint8Address(0),
1842 severity: syslogtesting.Uint8Address(1),
1843 version: 1,
1844 message: syslogtesting.StringAddress("ñ"),
18681845 },
18691846 "",
18701847 nil,
18741851 []byte("<1>1 - - - - - - \xe2\x82\xa1"),
18751852 true,
18761853 &SyslogMessage{
1877 priority: getUint8Address(1),
1878 facility: getUint8Address(0),
1879 severity: getUint8Address(1),
1880 version: 1,
1881 message: getStringAddress("₡"),
1854 priority: syslogtesting.Uint8Address(1),
1855 facility: syslogtesting.Uint8Address(0),
1856 severity: syslogtesting.Uint8Address(1),
1857 version: 1,
1858 message: syslogtesting.StringAddress("₡"),
18821859 },
18831860 "",
18841861 nil,
18881865 []byte("<1>1 - - - - - - \xEF\xBB\xBF \xf0\x90\x8c\xbc"),
18891866 true,
18901867 &SyslogMessage{
1891 priority: getUint8Address(1),
1892 facility: getUint8Address(0),
1893 severity: getUint8Address(1),
1894 version: 1,
1895 message: getStringAddress("\ufeff 𐌼"),
1868 priority: syslogtesting.Uint8Address(1),
1869 facility: syslogtesting.Uint8Address(0),
1870 severity: syslogtesting.Uint8Address(1),
1871 version: 1,
1872 message: syslogtesting.StringAddress("\ufeff 𐌼"),
18961873 },
18971874 "",
18981875 nil,
19021879 []byte("<1>1 - - - - - - \xC8\x80\x30\x30\x30"),
19031880 true,
19041881 &SyslogMessage{
1905 priority: getUint8Address(1),
1906 facility: getUint8Address(0),
1907 severity: getUint8Address(1),
1908 version: 1,
1909 message: getStringAddress("Ȁ000"),
1882 priority: syslogtesting.Uint8Address(1),
1883 facility: syslogtesting.Uint8Address(0),
1884 severity: syslogtesting.Uint8Address(1),
1885 version: 1,
1886 message: syslogtesting.StringAddress("Ȁ000"),
19101887 },
19111888 "",
19121889 nil,
19161893 []byte("<1>1 - - - - - - \xE4\x80\x80\x30\x30\x30"),
19171894 true,
19181895 &SyslogMessage{
1919 priority: getUint8Address(1),
1920 facility: getUint8Address(0),
1921 severity: getUint8Address(1),
1922 version: 1,
1923 message: getStringAddress("䀀000"),
1896 priority: syslogtesting.Uint8Address(1),
1897 facility: syslogtesting.Uint8Address(0),
1898 severity: syslogtesting.Uint8Address(1),
1899 version: 1,
1900 message: syslogtesting.StringAddress("䀀000"),
19241901 },
19251902 "",
19261903 nil,
19301907 []byte("<1>1 - - - - - - \xC4\x90\x30\x30\x30"),
19311908 true,
19321909 &SyslogMessage{
1933 priority: getUint8Address(1),
1934 facility: getUint8Address(0),
1935 severity: getUint8Address(1),
1936 version: 1,
1937 message: getStringAddress("Đ000"),
1910 priority: syslogtesting.Uint8Address(1),
1911 facility: syslogtesting.Uint8Address(0),
1912 severity: syslogtesting.Uint8Address(1),
1913 version: 1,
1914 message: syslogtesting.StringAddress("Đ000"),
19381915 },
19391916 "",
19401917 nil,
19431920 []byte("<1>1 - - - - - - \x0D\x37\x46\x46"),
19441921 true,
19451922 &SyslogMessage{
1946 priority: getUint8Address(1),
1947 facility: getUint8Address(0),
1948 severity: getUint8Address(1),
1949 version: 1,
1950 message: getStringAddress("\r7FF"),
1923 priority: syslogtesting.Uint8Address(1),
1924 facility: syslogtesting.Uint8Address(0),
1925 severity: syslogtesting.Uint8Address(1),
1926 version: 1,
1927 message: syslogtesting.StringAddress("\r7FF"),
19511928 },
19521929 "",
19531930 nil,
19571934 []byte("<1>1 - - - - - - யாமறிந்த மொழிகளிலே தமிழ்மொழி போல் இனிதாவது எங்கும் காணோம், பாமரராய் விலங்குகளாய், உலகனைத்தும் இகழ்ச்சிசொலப் பான்மை கெட்டு, நாமமது தமிழரெனக் கொண்டு இங்கு வாழ்ந்திடுதல் நன்றோ? சொல்லீர்! தேமதுரத் தமிழோசை உலகமெலாம் பரவும்வகை செய்தல் வேண்டும்."),
19581935 true,
19591936 &SyslogMessage{
1960 priority: getUint8Address(1),
1961 facility: getUint8Address(0),
1962 severity: getUint8Address(1),
1963 version: 1,
1964 message: getStringAddress("யாமறிந்த மொழிகளிலே தமிழ்மொழி போல் இனிதாவது எங்கும் காணோம், பாமரராய் விலங்குகளாய், உலகனைத்தும் இகழ்ச்சிசொலப் பான்மை கெட்டு, நாமமது தமிழரெனக் கொண்டு இங்கு வாழ்ந்திடுதல் நன்றோ? சொல்லீர்! தேமதுரத் தமிழோசை உலகமெலாம் பரவும்வகை செய்தல் வேண்டும்."),
1937 priority: syslogtesting.Uint8Address(1),
1938 facility: syslogtesting.Uint8Address(0),
1939 severity: syslogtesting.Uint8Address(1),
1940 version: 1,
1941 message: syslogtesting.StringAddress("யாமறிந்த மொழிகளிலே தமிழ்மொழி போல் இனிதாவது எங்கும் காணோம், பாமரராய் விலங்குகளாய், உலகனைத்தும் இகழ்ச்சிசொலப் பான்மை கெட்டு, நாமமது தமிழரெனக் கொண்டு இங்கு வாழ்ந்திடுதல் நன்றோ? சொல்லீர்! தேமதுரத் தமிழோசை உலகமெலாம் பரவும்வகை செய்தல் வேண்டும்."),
19651942 },
19661943 "",
19671944 nil,
19711948 []byte("<1>1 - - - - - - Sôn bôn de magnà el véder, el me fa minga mal."),
19721949 true,
19731950 &SyslogMessage{
1974 priority: getUint8Address(1),
1975 facility: getUint8Address(0),
1976 severity: getUint8Address(1),
1977 version: 1,
1978 message: getStringAddress("Sôn bôn de magnà el véder, el me fa minga mal."),
1951 priority: syslogtesting.Uint8Address(1),
1952 facility: syslogtesting.Uint8Address(0),
1953 severity: syslogtesting.Uint8Address(1),
1954 version: 1,
1955 message: syslogtesting.StringAddress("Sôn bôn de magnà el véder, el me fa minga mal."),
19791956 },
19801957 "",
19811958 nil,
19851962 []byte("<1>1 - - - - - - Me posso magna' er vetro, e nun me fa male."),
19861963 true,
19871964 &SyslogMessage{
1988 priority: getUint8Address(1),
1989 facility: getUint8Address(0),
1990 severity: getUint8Address(1),
1991 version: 1,
1992 message: getStringAddress("Me posso magna' er vetro, e nun me fa male."),
1965 priority: syslogtesting.Uint8Address(1),
1966 facility: syslogtesting.Uint8Address(0),
1967 severity: syslogtesting.Uint8Address(1),
1968 version: 1,
1969 message: syslogtesting.StringAddress("Me posso magna' er vetro, e nun me fa male."),
19931970 },
19941971 "",
19951972 nil,
19991976 []byte("<1>1 - - - - - - ⠊⠀⠉⠁⠝⠀⠑⠁⠞⠀⠛⠇⠁⠎⠎⠀⠁⠝⠙⠀⠊⠞⠀⠙⠕⠑⠎⠝⠞⠀⠓⠥⠗⠞⠀⠍⠑"),
20001977 true,
20011978 &SyslogMessage{
2002 priority: getUint8Address(1),
2003 facility: getUint8Address(0),
2004 severity: getUint8Address(1),
2005 version: 1,
2006 message: getStringAddress("⠊⠀⠉⠁⠝⠀⠑⠁⠞⠀⠛⠇⠁⠎⠎⠀⠁⠝⠙⠀⠊⠞⠀⠙⠕⠑⠎⠝⠞⠀⠓⠥⠗⠞⠀⠍⠑"),
1979 priority: syslogtesting.Uint8Address(1),
1980 facility: syslogtesting.Uint8Address(0),
1981 severity: syslogtesting.Uint8Address(1),
1982 version: 1,
1983 message: syslogtesting.StringAddress("⠊⠀⠉⠁⠝⠀⠑⠁⠞⠀⠛⠇⠁⠎⠎⠀⠁⠝⠙⠀⠊⠞⠀⠙⠕⠑⠎⠝⠞⠀⠓⠥⠗⠞⠀⠍⠑"),
20071984 },
20081985 "",
20091986 nil,
20131990 []byte("<1>1 - - - - - - काचं शक्नोम्यत्तुम् । नोपहिनस्ति माम् ॥"),
20141991 true,
20151992 &SyslogMessage{
2016 priority: getUint8Address(1),
2017 facility: getUint8Address(0),
2018 severity: getUint8Address(1),
2019 version: 1,
2020 message: getStringAddress("काचं शक्नोम्यत्तुम् । नोपहिनस्ति माम् ॥"),
1993 priority: syslogtesting.Uint8Address(1),
1994 facility: syslogtesting.Uint8Address(0),
1995 severity: syslogtesting.Uint8Address(1),
1996 version: 1,
1997 message: syslogtesting.StringAddress("काचं शक्नोम्यत्तुम् । नोपहिनस्ति माम् ॥"),
20211998 },
20221999 "",
20232000 nil,
20272004 []byte("<1>1 - - - - - - میں کانچ کھا سکتا ہوں اور مجھے تکلیف نہیں ہوتی ۔"),
20282005 true,
20292006 &SyslogMessage{
2030 priority: getUint8Address(1),
2031 facility: getUint8Address(0),
2032 severity: getUint8Address(1),
2033 version: 1,
2034 message: getStringAddress("میں کانچ کھا سکتا ہوں اور مجھے تکلیف نہیں ہوتی ۔"),
2007 priority: syslogtesting.Uint8Address(1),
2008 facility: syslogtesting.Uint8Address(0),
2009 severity: syslogtesting.Uint8Address(1),
2010 version: 1,
2011 message: syslogtesting.StringAddress("میں کانچ کھا سکتا ہوں اور مجھے تکلیف نہیں ہوتی ۔"),
20352012 },
20362013 "",
20372014 nil,
20412018 []byte("<1>1 - - - - - - איך קען עסן גלאָז און עס טוט מיר נישט װײ."),
20422019 true,
20432020 &SyslogMessage{
2044 priority: getUint8Address(1),
2045 facility: getUint8Address(0),
2046 severity: getUint8Address(1),
2047 version: 1,
2048 message: getStringAddress("איך קען עסן גלאָז און עס טוט מיר נישט װײ."),
2021 priority: syslogtesting.Uint8Address(1),
2022 facility: syslogtesting.Uint8Address(0),
2023 severity: syslogtesting.Uint8Address(1),
2024 version: 1,
2025 message: syslogtesting.StringAddress("איך קען עסן גלאָז און עס טוט מיר נישט װײ."),
20492026 },
20502027 "",
20512028 nil,
20552032 []byte("<1>1 - - - - - - Mogę jeść szkło, i mi nie szkodzi."),
20562033 true,
20572034 &SyslogMessage{
2058 priority: getUint8Address(1),
2059 facility: getUint8Address(0),
2060 severity: getUint8Address(1),
2061 version: 1,
2062 message: getStringAddress("Mogę jeść szkło, i mi nie szkodzi."),
2035 priority: syslogtesting.Uint8Address(1),
2036 facility: syslogtesting.Uint8Address(0),
2037 severity: syslogtesting.Uint8Address(1),
2038 version: 1,
2039 message: syslogtesting.StringAddress("Mogę jeść szkło, i mi nie szkodzi."),
20632040 },
20642041 "",
20652042 nil,
20692046 []byte("<1>1 - - - - - - 私はガラスを食べられます。それは私を傷つけません。"),
20702047 true,
20712048 &SyslogMessage{
2072 priority: getUint8Address(1),
2073 facility: getUint8Address(0),
2074 severity: getUint8Address(1),
2075 version: 1,
2076 message: getStringAddress("私はガラスを食べられます。それは私を傷つけません。"),
2049 priority: syslogtesting.Uint8Address(1),
2050 facility: syslogtesting.Uint8Address(0),
2051 severity: syslogtesting.Uint8Address(1),
2052 version: 1,
2053 message: syslogtesting.StringAddress("私はガラスを食べられます。それは私を傷つけません。"),
20772054 },
20782055 "",
20792056 nil,
20832060 []byte("<1>1 - - - - - - أنا قادر على أكل الزجاج و هذا لا يؤلمني."),
20842061 true,
20852062 &SyslogMessage{
2086 priority: getUint8Address(1),
2087 facility: getUint8Address(0),
2088 severity: getUint8Address(1),
2089 version: 1,
2090 message: getStringAddress("أنا قادر على أكل الزجاج و هذا لا يؤلمني."),
2063 priority: syslogtesting.Uint8Address(1),
2064 facility: syslogtesting.Uint8Address(0),
2065 severity: syslogtesting.Uint8Address(1),
2066 version: 1,
2067 message: syslogtesting.StringAddress("أنا قادر على أكل الزجاج و هذا لا يؤلمني."),
20912068 },
20922069 "",
20932070 nil,
20972074 []byte("<1>1 - - - - - - абвгдеёжзийклмнопрстуфхцчшщъыьэюя"),
20982075 true,
20992076 &SyslogMessage{
2100 priority: getUint8Address(1),
2101 facility: getUint8Address(0),
2102 severity: getUint8Address(1),
2103 version: 1,
2104 message: getStringAddress("абвгдеёжзийклмнопрстуфхцчшщъыьэюя"),
2077 priority: syslogtesting.Uint8Address(1),
2078 facility: syslogtesting.Uint8Address(0),
2079 severity: syslogtesting.Uint8Address(1),
2080 version: 1,
2081 message: syslogtesting.StringAddress("абвгдеёжзийклмнопрстуфхцчшщъыьэюя"),
21052082 },
21062083 "",
21072084 nil,
21112088 []byte("<1>1 - - - - - - ԰ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖ՗՘ՙ՚՛՜՝՞՟աբգդեզէըթիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևֈ։֊֋֌֍֎֏"),
21122089 true,
21132090 &SyslogMessage{
2114 priority: getUint8Address(1),
2115 facility: getUint8Address(0),
2116 severity: getUint8Address(1),
2117 version: 1,
2118 message: getStringAddress("\u0530ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖ\u0557\u0558ՙ՚՛՜՝՞՟աբգդեզէըթիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև\u0588։֊\u058b\u058c֍֎֏"),
2091 priority: syslogtesting.Uint8Address(1),
2092 facility: syslogtesting.Uint8Address(0),
2093 severity: syslogtesting.Uint8Address(1),
2094 version: 1,
2095 message: syslogtesting.StringAddress("\u0530ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖ\u0557\u0558ՙ՚՛՜՝՞՟աբգդեզէըթիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև\u0588։֊\u058b\u058c֍֎֏"),
21192096 },
21202097 "",
21212098 nil,
21252102 []byte("<1>1 - - - - - - x\x0Ay"),
21262103 true,
21272104 &SyslogMessage{
2128 facility: getUint8Address(0),
2129 severity: getUint8Address(1),
2130 priority: getUint8Address(1),
2131 version: 1,
2132 message: getStringAddress("x\ny"),
2105 facility: syslogtesting.Uint8Address(0),
2106 severity: syslogtesting.Uint8Address(1),
2107 priority: syslogtesting.Uint8Address(1),
2108 version: 1,
2109 message: syslogtesting.StringAddress("x\ny"),
21332110 },
21342111 "",
21352112 nil,
21392116 y`),
21402117 true,
21412118 &SyslogMessage{
2142 facility: getUint8Address(0),
2143 severity: getUint8Address(1),
2144 priority: getUint8Address(1),
2119 facility: syslogtesting.Uint8Address(0),
2120 severity: syslogtesting.Uint8Address(1),
2121 priority: syslogtesting.Uint8Address(1),
21452122 version: 2,
2146 message: getStringAddress("x\ny"),
2123 message: syslogtesting.StringAddress("x\ny"),
21472124 },
21482125 "",
21492126 nil,
21532130 []byte("<1>1 - - - - - - \xEF\xBB\xBF\xC1"),
21542131 false,
21552132 nil,
2156 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 20]",
2157 &SyslogMessage{
2158 priority: getUint8Address(1),
2159 facility: getUint8Address(0),
2160 severity: getUint8Address(1),
2161 version: 1,
2162 message: getStringAddress("\xEF\xBB\xBF"),
2133 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 20),
2134 &SyslogMessage{
2135 priority: syslogtesting.Uint8Address(1),
2136 facility: syslogtesting.Uint8Address(0),
2137 severity: syslogtesting.Uint8Address(1),
2138 version: 1,
2139 message: syslogtesting.StringAddress("\xEF\xBB\xBF"),
21632140 },
21642141 },
21652142 {
21662143 []byte("<1>2 - - - - - - \xC1"),
21672144 false,
21682145 nil,
2169 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2170 &SyslogMessage{
2171 priority: getUint8Address(1),
2172 facility: getUint8Address(0),
2173 severity: getUint8Address(1),
2146 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2147 &SyslogMessage{
2148 priority: syslogtesting.Uint8Address(1),
2149 facility: syslogtesting.Uint8Address(0),
2150 severity: syslogtesting.Uint8Address(1),
21742151 version: 2,
21752152 },
21762153 },
21782155 []byte("<1>1 - - - - - - \xEF\xBB\xBF\xc3\x28"), // invalid 2 octet sequence
21792156 false,
21802157 nil,
2181 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 21]",
2182 &SyslogMessage{
2183 priority: getUint8Address(1),
2184 facility: getUint8Address(0),
2185 severity: getUint8Address(1),
2186 version: 1,
2187 message: getStringAddress("\xEF\xBB\xBF\xc3"),
2158 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 21),
2159 &SyslogMessage{
2160 priority: syslogtesting.Uint8Address(1),
2161 facility: syslogtesting.Uint8Address(0),
2162 severity: syslogtesting.Uint8Address(1),
2163 version: 1,
2164 message: syslogtesting.StringAddress("\xEF\xBB\xBF\xc3"),
21882165 },
21892166 },
21902167 {
21912168 []byte("<1>1 - - - - - - \xc3\x28"), // invalid 2 octet sequence
21922169 false,
21932170 nil,
2194 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2195 &SyslogMessage{
2196 priority: getUint8Address(1),
2197 facility: getUint8Address(0),
2198 severity: getUint8Address(1),
2199 version: 1,
2200 message: getStringAddress("\xc3"),
2171 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2172 &SyslogMessage{
2173 priority: syslogtesting.Uint8Address(1),
2174 facility: syslogtesting.Uint8Address(0),
2175 severity: syslogtesting.Uint8Address(1),
2176 version: 1,
2177 message: syslogtesting.StringAddress("\xc3"),
22012178 },
22022179 },
22032180 {
22042181 []byte("<1>1 - - - - - - \xEF\xBB\xBF\xa0\xa1"), // invalid sequence identifier
22052182 false,
22062183 nil,
2207 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 20]",
2208 &SyslogMessage{
2209 priority: getUint8Address(1),
2210 facility: getUint8Address(0),
2211 severity: getUint8Address(1),
2212 version: 1,
2213 message: getStringAddress("\xEF\xBB\xBF"),
2184 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 20),
2185 &SyslogMessage{
2186 priority: syslogtesting.Uint8Address(1),
2187 facility: syslogtesting.Uint8Address(0),
2188 severity: syslogtesting.Uint8Address(1),
2189 version: 1,
2190 message: syslogtesting.StringAddress("\xEF\xBB\xBF"),
22142191 },
22152192 },
22162193 {
22172194 []byte("<1>1 - - - - - - \xa0\xa1"), // invalid sequence identifier
22182195 false,
22192196 nil,
2220 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2221 &SyslogMessage{
2222 priority: getUint8Address(1),
2223 facility: getUint8Address(0),
2224 severity: getUint8Address(1),
2197 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2198 &SyslogMessage{
2199 priority: syslogtesting.Uint8Address(1),
2200 facility: syslogtesting.Uint8Address(0),
2201 severity: syslogtesting.Uint8Address(1),
22252202 version: 1,
22262203 },
22272204 },
22292206 []byte("<1>1 - - - - - - \xEF\xBB\xBF\xe2\x28\xa1"), // invalid 3 octet sequence (2nd octet)
22302207 false,
22312208 nil,
2232 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 21]",
2233 &SyslogMessage{
2234 priority: getUint8Address(1),
2235 facility: getUint8Address(0),
2236 severity: getUint8Address(1),
2237 version: 1,
2238 message: getStringAddress("\xEF\xBB\xBF\xe2"),
2209 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 21),
2210 &SyslogMessage{
2211 priority: syslogtesting.Uint8Address(1),
2212 facility: syslogtesting.Uint8Address(0),
2213 severity: syslogtesting.Uint8Address(1),
2214 version: 1,
2215 message: syslogtesting.StringAddress("\xEF\xBB\xBF\xe2"),
22392216 },
22402217 },
22412218 {
22422219 []byte("<1>1 - - - - - - \xe2\x28\xa1"), // invalid 3 octet sequence (2nd octet)
22432220 false,
22442221 nil,
2245 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2246 &SyslogMessage{
2247 priority: getUint8Address(1),
2248 facility: getUint8Address(0),
2249 severity: getUint8Address(1),
2250 version: 1,
2251 message: getStringAddress("\xe2"),
2222 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2223 &SyslogMessage{
2224 priority: syslogtesting.Uint8Address(1),
2225 facility: syslogtesting.Uint8Address(0),
2226 severity: syslogtesting.Uint8Address(1),
2227 version: 1,
2228 message: syslogtesting.StringAddress("\xe2"),
22522229 },
22532230 },
22542231 {
22552232 []byte("<1>1 - - - - - - \xEF\xBB\xBF\xe2\x82\x28"), // invalid 3 octet sequence (3nd octet)
22562233 false,
22572234 nil,
2258 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 22]",
2259 &SyslogMessage{
2260 priority: getUint8Address(1),
2261 facility: getUint8Address(0),
2262 severity: getUint8Address(1),
2263 version: 1,
2264 message: getStringAddress("\xEF\xBB\xBF\xe2\x82"),
2235 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 22),
2236 &SyslogMessage{
2237 priority: syslogtesting.Uint8Address(1),
2238 facility: syslogtesting.Uint8Address(0),
2239 severity: syslogtesting.Uint8Address(1),
2240 version: 1,
2241 message: syslogtesting.StringAddress("\xEF\xBB\xBF\xe2\x82"),
22652242 },
22662243 },
22672244 {
22682245 []byte("<1>1 - - - - - - \xe2\x82\x28"), // invalid 3 octet sequence (3nd octet)
22692246 false,
22702247 nil,
2271 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 19]",
2272 &SyslogMessage{
2273 priority: getUint8Address(1),
2274 facility: getUint8Address(0),
2275 severity: getUint8Address(1),
2276 version: 1,
2277 message: getStringAddress("\xe2\x82"),
2248 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 19),
2249 &SyslogMessage{
2250 priority: syslogtesting.Uint8Address(1),
2251 facility: syslogtesting.Uint8Address(0),
2252 severity: syslogtesting.Uint8Address(1),
2253 version: 1,
2254 message: syslogtesting.StringAddress("\xe2\x82"),
22782255 },
22792256 },
22802257 {
22812258 []byte("<1>1 - - - - - - \xEF\xBB\xBF\xf0\x28\x8c\xbc"), // invalid 4 octet sequence (2nd octet)
22822259 false,
22832260 nil,
2284 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 21]",
2285 &SyslogMessage{
2286 priority: getUint8Address(1),
2287 facility: getUint8Address(0),
2288 severity: getUint8Address(1),
2289 version: 1,
2290 message: getStringAddress("\xEF\xBB\xBF\xf0"),
2261 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 21),
2262 &SyslogMessage{
2263 priority: syslogtesting.Uint8Address(1),
2264 facility: syslogtesting.Uint8Address(0),
2265 severity: syslogtesting.Uint8Address(1),
2266 version: 1,
2267 message: syslogtesting.StringAddress("\xEF\xBB\xBF\xf0"),
22912268 },
22922269 },
22932270 {
22942271 []byte("<1>1 - - - - - - \xf0\x28\x8c\xbc"), // invalid 4 octet sequence (2nd octet)
22952272 false,
22962273 nil,
2297 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2298 &SyslogMessage{
2299 priority: getUint8Address(1),
2300 facility: getUint8Address(0),
2301 severity: getUint8Address(1),
2302 version: 1,
2303 message: getStringAddress("\xf0"),
2274 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2275 &SyslogMessage{
2276 priority: syslogtesting.Uint8Address(1),
2277 facility: syslogtesting.Uint8Address(0),
2278 severity: syslogtesting.Uint8Address(1),
2279 version: 1,
2280 message: syslogtesting.StringAddress("\xf0"),
23042281 },
23052282 },
23062283 {
23072284 []byte("<1>1 - - - - - - \xEF\xBB\xBF\xf0\x90\x28\xbc"), // invalid 4 octet sequence (3nd octet)
23082285 false,
23092286 nil,
2310 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 22]",
2311 &SyslogMessage{
2312 priority: getUint8Address(1),
2313 facility: getUint8Address(0),
2314 severity: getUint8Address(1),
2315 version: 1,
2316 message: getStringAddress("\xEF\xBB\xBF\xf0\x90"),
2287 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 22),
2288 &SyslogMessage{
2289 priority: syslogtesting.Uint8Address(1),
2290 facility: syslogtesting.Uint8Address(0),
2291 severity: syslogtesting.Uint8Address(1),
2292 version: 1,
2293 message: syslogtesting.StringAddress("\xEF\xBB\xBF\xf0\x90"),
23172294 },
23182295 },
23192296 {
23202297 []byte("<1>1 - - - - - - \xf0\x90\x28\xbc"), // invalid 4 octet sequence (3nd octet)
23212298 false,
23222299 nil,
2323 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 19]",
2324 &SyslogMessage{
2325 priority: getUint8Address(1),
2326 facility: getUint8Address(0),
2327 severity: getUint8Address(1),
2328 version: 1,
2329 message: getStringAddress("\xf0\x90"),
2300 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 19),
2301 &SyslogMessage{
2302 priority: syslogtesting.Uint8Address(1),
2303 facility: syslogtesting.Uint8Address(0),
2304 severity: syslogtesting.Uint8Address(1),
2305 version: 1,
2306 message: syslogtesting.StringAddress("\xf0\x90"),
23302307 },
23312308 },
23322309 {
23332310 []byte("<1>1 - - - - - - \xEF\xBB\xBF\xf0\x28\x8c\x28"), // invalid 4 octet sequence (4nd octet)
23342311 false,
23352312 nil,
2336 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 21]",
2337 &SyslogMessage{
2338 priority: getUint8Address(1),
2339 facility: getUint8Address(0),
2340 severity: getUint8Address(1),
2341 version: 1,
2342 message: getStringAddress("\xEF\xBB\xBF\xf0"),
2313 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 21),
2314 &SyslogMessage{
2315 priority: syslogtesting.Uint8Address(1),
2316 facility: syslogtesting.Uint8Address(0),
2317 severity: syslogtesting.Uint8Address(1),
2318 version: 1,
2319 message: syslogtesting.StringAddress("\xEF\xBB\xBF\xf0"),
23432320 },
23442321 },
23452322 {
23462323 []byte("<1>1 - - - - - - \xf0\x28\x8c\x28"), // invalid 4 octet sequence (4nd octet)
23472324 false,
23482325 nil,
2349 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2350 &SyslogMessage{
2351 priority: getUint8Address(1),
2352 facility: getUint8Address(0),
2353 severity: getUint8Address(1),
2354 version: 1,
2355 message: getStringAddress("\xf0"),
2326 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2327 &SyslogMessage{
2328 priority: syslogtesting.Uint8Address(1),
2329 facility: syslogtesting.Uint8Address(0),
2330 severity: syslogtesting.Uint8Address(1),
2331 version: 1,
2332 message: syslogtesting.StringAddress("\xf0"),
23562333 },
23572334 },
23582335 // Invalid, impossible bytes
23602337 []byte("<1>1 - - - - - - \xfe\xfe\xff\xff"),
23612338 false,
23622339 nil,
2363 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2364 &SyslogMessage{
2365 priority: getUint8Address(1),
2366 facility: getUint8Address(0),
2367 severity: getUint8Address(1),
2340 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2341 &SyslogMessage{
2342 priority: syslogtesting.Uint8Address(1),
2343 facility: syslogtesting.Uint8Address(0),
2344 severity: syslogtesting.Uint8Address(1),
23682345 version: 1,
23692346 },
23702347 },
23722349 []byte("<1>1 - - - - - - \xfe"),
23732350 false,
23742351 nil,
2375 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2376 &SyslogMessage{
2377 priority: getUint8Address(1),
2378 facility: getUint8Address(0),
2379 severity: getUint8Address(1),
2352 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2353 &SyslogMessage{
2354 priority: syslogtesting.Uint8Address(1),
2355 facility: syslogtesting.Uint8Address(0),
2356 severity: syslogtesting.Uint8Address(1),
23802357 version: 1,
23812358 },
23822359 },
23842361 []byte("<1>1 - - - - - - \xff"),
23852362 false,
23862363 nil,
2387 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2388 &SyslogMessage{
2389 priority: getUint8Address(1),
2390 facility: getUint8Address(0),
2391 severity: getUint8Address(1),
2364 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2365 &SyslogMessage{
2366 priority: syslogtesting.Uint8Address(1),
2367 facility: syslogtesting.Uint8Address(0),
2368 severity: syslogtesting.Uint8Address(1),
23922369 version: 1,
23932370 },
23942371 },
23972374 []byte("<1>1 - - - - - - \xfc\x80\x80\x80\x80\xaf"),
23982375 false,
23992376 nil,
2400 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2401 &SyslogMessage{
2402 priority: getUint8Address(1),
2403 facility: getUint8Address(0),
2404 severity: getUint8Address(1),
2377 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2378 &SyslogMessage{
2379 priority: syslogtesting.Uint8Address(1),
2380 facility: syslogtesting.Uint8Address(0),
2381 severity: syslogtesting.Uint8Address(1),
24052382 version: 1,
24062383 },
24072384 },
24092386 []byte("<1>1 - - - - - - \xf8\x80\x80\x80\xaf"),
24102387 false,
24112388 nil,
2412 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2413 &SyslogMessage{
2414 priority: getUint8Address(1),
2415 facility: getUint8Address(0),
2416 severity: getUint8Address(1),
2389 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2390 &SyslogMessage{
2391 priority: syslogtesting.Uint8Address(1),
2392 facility: syslogtesting.Uint8Address(0),
2393 severity: syslogtesting.Uint8Address(1),
24172394 version: 1,
24182395 },
24192396 },
24212398 []byte("<1>1 - - - - - - \xf0\x80\x80\xaf"),
24222399 false,
24232400 nil,
2424 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2425 &SyslogMessage{
2426 priority: getUint8Address(1),
2427 facility: getUint8Address(0),
2428 severity: getUint8Address(1),
2429 version: 1,
2430 message: getStringAddress("\xf0"),
2401 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2402 &SyslogMessage{
2403 priority: syslogtesting.Uint8Address(1),
2404 facility: syslogtesting.Uint8Address(0),
2405 severity: syslogtesting.Uint8Address(1),
2406 version: 1,
2407 message: syslogtesting.StringAddress("\xf0"),
24312408 },
24322409 },
24332410 {
24342411 []byte("<1>1 - - - - - - \xe0\x80\xaf"),
24352412 false,
24362413 nil,
2437 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2438 &SyslogMessage{
2439 priority: getUint8Address(1),
2440 facility: getUint8Address(0),
2441 severity: getUint8Address(1),
2442 version: 1,
2443 message: getStringAddress("\xe0"),
2414 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2415 &SyslogMessage{
2416 priority: syslogtesting.Uint8Address(1),
2417 facility: syslogtesting.Uint8Address(0),
2418 severity: syslogtesting.Uint8Address(1),
2419 version: 1,
2420 message: syslogtesting.StringAddress("\xe0"),
24442421 },
24452422 },
24462423 {
24472424 []byte("<1>1 - - - - - - \xc0\xaf"),
24482425 false,
24492426 nil,
2450 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2451 &SyslogMessage{
2452 priority: getUint8Address(1),
2453 facility: getUint8Address(0),
2454 severity: getUint8Address(1),
2427 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2428 &SyslogMessage{
2429 priority: syslogtesting.Uint8Address(1),
2430 facility: syslogtesting.Uint8Address(0),
2431 severity: syslogtesting.Uint8Address(1),
24552432 version: 1,
24562433 },
24572434 },
24602437 []byte("<1>1 - - - - - - \xfc\x83\xbf\xbf\xbf\xbf"),
24612438 false,
24622439 nil,
2463 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2464 &SyslogMessage{
2465 priority: getUint8Address(1),
2466 facility: getUint8Address(0),
2467 severity: getUint8Address(1),
2440 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2441 &SyslogMessage{
2442 priority: syslogtesting.Uint8Address(1),
2443 facility: syslogtesting.Uint8Address(0),
2444 severity: syslogtesting.Uint8Address(1),
24682445 version: 1,
24692446 },
24702447 },
24722449 []byte("<1>1 - - - - - - \xf8\x87\xbf\xbf\xbf"),
24732450 false,
24742451 nil,
2475 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2476 &SyslogMessage{
2477 priority: getUint8Address(1),
2478 facility: getUint8Address(0),
2479 severity: getUint8Address(1),
2452 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2453 &SyslogMessage{
2454 priority: syslogtesting.Uint8Address(1),
2455 facility: syslogtesting.Uint8Address(0),
2456 severity: syslogtesting.Uint8Address(1),
24802457 version: 1,
24812458 },
24822459 },
24842461 []byte("<1>1 - - - - - - \xf0\x8f\xbf\xbf"),
24852462 false,
24862463 nil,
2487 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2488 &SyslogMessage{
2489 priority: getUint8Address(1),
2490 facility: getUint8Address(0),
2491 severity: getUint8Address(1),
2492 version: 1,
2493 message: getStringAddress("\xf0"),
2464 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2465 &SyslogMessage{
2466 priority: syslogtesting.Uint8Address(1),
2467 facility: syslogtesting.Uint8Address(0),
2468 severity: syslogtesting.Uint8Address(1),
2469 version: 1,
2470 message: syslogtesting.StringAddress("\xf0"),
24942471 },
24952472 },
24962473 {
24972474 []byte("<1>1 - - - - - - \xe0\x9f\xbf"),
24982475 false,
24992476 nil,
2500 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2501 &SyslogMessage{
2502 priority: getUint8Address(1),
2503 facility: getUint8Address(0),
2504 severity: getUint8Address(1),
2505 version: 1,
2506 message: getStringAddress("\xe0"),
2477 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2478 &SyslogMessage{
2479 priority: syslogtesting.Uint8Address(1),
2480 facility: syslogtesting.Uint8Address(0),
2481 severity: syslogtesting.Uint8Address(1),
2482 version: 1,
2483 message: syslogtesting.StringAddress("\xe0"),
25072484 },
25082485 },
25092486 {
25102487 []byte("<1>1 - - - - - - \xc1\xbf"),
25112488 false,
25122489 nil,
2513 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 17]",
2514 &SyslogMessage{
2515 priority: getUint8Address(1),
2516 facility: getUint8Address(0),
2517 severity: getUint8Address(1),
2490 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 17),
2491 &SyslogMessage{
2492 priority: syslogtesting.Uint8Address(1),
2493 facility: syslogtesting.Uint8Address(0),
2494 severity: syslogtesting.Uint8Address(1),
25182495 version: 1,
25192496 message: nil,
25202497 },
25242501 []byte("<1>1 - - - - - - \xed\xa0\x80"),
25252502 false,
25262503 nil,
2527 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2528 &SyslogMessage{
2529 priority: getUint8Address(1),
2530 facility: getUint8Address(0),
2531 severity: getUint8Address(1),
2532 version: 1,
2533 message: getStringAddress("\xed"),
2504 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2505 &SyslogMessage{
2506 priority: syslogtesting.Uint8Address(1),
2507 facility: syslogtesting.Uint8Address(0),
2508 severity: syslogtesting.Uint8Address(1),
2509 version: 1,
2510 message: syslogtesting.StringAddress("\xed"),
25342511 },
25352512 },
25362513 {
25372514 []byte("<1>1 - - - - - - \xed\xa0\x80"),
25382515 false,
25392516 nil,
2540 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2541 &SyslogMessage{
2542 priority: getUint8Address(1),
2543 facility: getUint8Address(0),
2544 severity: getUint8Address(1),
2545 version: 1,
2546 message: getStringAddress("\xed"),
2517 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2518 &SyslogMessage{
2519 priority: syslogtesting.Uint8Address(1),
2520 facility: syslogtesting.Uint8Address(0),
2521 severity: syslogtesting.Uint8Address(1),
2522 version: 1,
2523 message: syslogtesting.StringAddress("\xed"),
25472524 },
25482525 },
25492526 {
25502527 []byte("<1>1 - - - - - - \xed\xad\xbf"),
25512528 false,
25522529 nil,
2553 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2554 &SyslogMessage{
2555 priority: getUint8Address(1),
2556 facility: getUint8Address(0),
2557 severity: getUint8Address(1),
2558 version: 1,
2559 message: getStringAddress("\xed"),
2530 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2531 &SyslogMessage{
2532 priority: syslogtesting.Uint8Address(1),
2533 facility: syslogtesting.Uint8Address(0),
2534 severity: syslogtesting.Uint8Address(1),
2535 version: 1,
2536 message: syslogtesting.StringAddress("\xed"),
25602537 },
25612538 },
25622539 {
25632540 []byte("<1>1 - - - - - - \xed\xae\x80"),
25642541 false,
25652542 nil,
2566 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2567 &SyslogMessage{
2568 priority: getUint8Address(1),
2569 facility: getUint8Address(0),
2570 severity: getUint8Address(1),
2571 version: 1,
2572 message: getStringAddress("\xed"),
2543 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2544 &SyslogMessage{
2545 priority: syslogtesting.Uint8Address(1),
2546 facility: syslogtesting.Uint8Address(0),
2547 severity: syslogtesting.Uint8Address(1),
2548 version: 1,
2549 message: syslogtesting.StringAddress("\xed"),
25732550 },
25742551 },
25752552 {
25762553 []byte("<1>1 - - - - - - \xed\xaf\xbf"),
25772554 false,
25782555 nil,
2579 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2580 &SyslogMessage{
2581 priority: getUint8Address(1),
2582 facility: getUint8Address(0),
2583 severity: getUint8Address(1),
2584 version: 1,
2585 message: getStringAddress("\xed"),
2556 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2557 &SyslogMessage{
2558 priority: syslogtesting.Uint8Address(1),
2559 facility: syslogtesting.Uint8Address(0),
2560 severity: syslogtesting.Uint8Address(1),
2561 version: 1,
2562 message: syslogtesting.StringAddress("\xed"),
25862563 },
25872564 },
25882565 {
25892566 []byte("<1>1 - - - - - - \xed\xb0\x80"),
25902567 false,
25912568 nil,
2592 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2593 &SyslogMessage{
2594 priority: getUint8Address(1),
2595 facility: getUint8Address(0),
2596 severity: getUint8Address(1),
2597 version: 1,
2598 message: getStringAddress("\xed"),
2569 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2570 &SyslogMessage{
2571 priority: syslogtesting.Uint8Address(1),
2572 facility: syslogtesting.Uint8Address(0),
2573 severity: syslogtesting.Uint8Address(1),
2574 version: 1,
2575 message: syslogtesting.StringAddress("\xed"),
25992576 },
26002577 },
26012578 {
26022579 []byte("<1>1 - - - - - - \xed\xbe\x80"),
26032580 false,
26042581 nil,
2605 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2606 &SyslogMessage{
2607 priority: getUint8Address(1),
2608 facility: getUint8Address(0),
2609 severity: getUint8Address(1),
2610 version: 1,
2611 message: getStringAddress("\xed"),
2582 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2583 &SyslogMessage{
2584 priority: syslogtesting.Uint8Address(1),
2585 facility: syslogtesting.Uint8Address(0),
2586 severity: syslogtesting.Uint8Address(1),
2587 version: 1,
2588 message: syslogtesting.StringAddress("\xed"),
26122589 },
26132590 },
26142591 {
26152592 []byte("<1>1 - - - - - - \xed\xbf\xbf"),
26162593 false,
26172594 nil,
2618 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2619 &SyslogMessage{
2620 priority: getUint8Address(1),
2621 facility: getUint8Address(0),
2622 severity: getUint8Address(1),
2623 version: 1,
2624 message: getStringAddress("\xed"),
2595 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2596 &SyslogMessage{
2597 priority: syslogtesting.Uint8Address(1),
2598 facility: syslogtesting.Uint8Address(0),
2599 severity: syslogtesting.Uint8Address(1),
2600 version: 1,
2601 message: syslogtesting.StringAddress("\xed"),
26252602 },
26262603 },
26272604 // Invalid, illegal code positions, paired utf-16 surrogates
26292606 []byte("<1>1 - - - - - - \xed\xa0\x80\xed\xb0\x80"),
26302607 false,
26312608 nil,
2632 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 18]",
2633 &SyslogMessage{
2634 priority: getUint8Address(1),
2635 facility: getUint8Address(0),
2636 severity: getUint8Address(1),
2637 version: 1,
2638 message: getStringAddress("\xed"),
2609 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 18),
2610 &SyslogMessage{
2611 priority: syslogtesting.Uint8Address(1),
2612 facility: syslogtesting.Uint8Address(0),
2613 severity: syslogtesting.Uint8Address(1),
2614 version: 1,
2615 message: syslogtesting.StringAddress("\xed"),
26392616 },
26402617 },
26412618 // Invalid, out of range code within message after valid string
26432620 []byte("<1>1 - - - - - - valid\xEF\xBB\xBF\xC1"),
26442621 false,
26452622 nil,
2646 "expecting a free-form optional message in UTF-8 (starting with or without BOM) [col 25]",
2647 &SyslogMessage{
2648 priority: getUint8Address(1),
2649 facility: getUint8Address(0),
2650 severity: getUint8Address(1),
2651 version: 1,
2652 message: getStringAddress("valid\ufeff"),
2623 fmt.Sprintf(ErrMsg+ColumnPositionTemplate, 25),
2624 &SyslogMessage{
2625 priority: syslogtesting.Uint8Address(1),
2626 facility: syslogtesting.Uint8Address(0),
2627 severity: syslogtesting.Uint8Address(1),
2628 version: 1,
2629 message: syslogtesting.StringAddress("valid\ufeff"),
26532630 },
26542631 },
26552632 // Invalid, missing whitespace after nil timestamp
26572634 []byte("<1>10 -- - - - -"),
26582635 false,
26592636 nil,
2660 "parsing error [col 7]",
2661 &SyslogMessage{
2662 priority: getUint8Address(1),
2663 facility: getUint8Address(0),
2664 severity: getUint8Address(1),
2637 fmt.Sprintf(ErrParse+ColumnPositionTemplate, 7),
2638 &SyslogMessage{
2639 priority: syslogtesting.Uint8Address(1),
2640 facility: syslogtesting.Uint8Address(0),
2641 severity: syslogtesting.Uint8Address(1),
26652642 version: 10,
26662643 },
26672644 },
26692646 // (fixme) > evaluate non characters for UTF-8 security concerns, eg. \xef\xbf\xbe
26702647 }
26712648
2672 func generateIncompleteTimestampTestCases() []testCase {
2649 // genIncompleteTimestampTestCases generates test cases with incomplete timestamp part.
2650 func genIncompleteTimestampTestCases() []testCase {
26732651 incompleteTimestamp := []byte("2003-11-02T23:12:46.012345")
26742652 prefix := []byte("<1>1 ")
26752653 mex := &SyslogMessage{
2676 priority: getUint8Address(1),
2677 severity: getUint8Address(1),
2678 facility: getUint8Address(0),
2654 priority: syslogtesting.Uint8Address(1),
2655 severity: syslogtesting.Uint8Address(1),
2656 facility: syslogtesting.Uint8Address(0),
26792657 version: 1,
26802658 }
26812659 tCases := make([]testCase, 0, len(incompleteTimestamp))
26862664 input: append(prefix, prev...),
26872665 valid: false,
26882666 value: nil,
2689 errorString: fmt.Sprintf("expecting a RFC3339MICRO timestamp or a nil value [col %d]", len(prefix)+i+1),
2667 errorString: fmt.Sprintf(ErrTimestamp+ColumnPositionTemplate, len(prefix)+i+1),
26902668 partialValue: mex,
26912669 }
26922670 tCases = append(tCases, tc)
26942672 return tCases
26952673 }
26962674
2697 func generateUntilMaxLengthStringTestCases(max []byte, pos int) []testCase {
2698 if pos < 0 || pos > 3 {
2699 panic("position not available")
2675 // genPartialMessagesTestCases generates valid test cases
2676 // iterating on the given data that will be put into the given part.
2677 // It supports 4 parts - ie. hostname (0), appname (1), proc id (2), msg id (3).
2678 func genPartialMessagesTestCases(data []byte, part int) []testCase {
2679 if part < 0 || part > 3 {
2680 panic("part not available")
27002681 }
27012682 templ := "<%d>%d - - - - - -"
2702 where := 9 + (pos * 2)
2683 where := 9 + (part * 2)
27032684 templ = templ[:where] + "%s" + templ[where+1:]
27042685
27052686 tCases := []testCase{}
27062687 prev := ""
2707 for _, c := range max {
2688 for _, c := range data {
27082689 prev += string(c)
2709 randp := random(0, 9)
2710 randv := random(1, 9)
2690 randp := rand.Intn(9)
2691 randv := rand.Intn(9-1) + 1
27112692
27122693 input := []byte(fmt.Sprintf(templ, randp, randv, prev))
27132694
27142695 mex := &SyslogMessage{
2715 priority: getUint8Address(uint8(randp)),
2716 severity: getUint8Address(uint8(randp % 8)),
2717 facility: getUint8Address(uint8(randp / 8)),
2696 priority: syslogtesting.Uint8Address(uint8(randp)),
2697 severity: syslogtesting.Uint8Address(uint8(randp % 8)),
2698 facility: syslogtesting.Uint8Address(uint8(randp / 8)),
27182699 version: uint16(randv),
27192700 }
2720 switch pos {
2701 switch part {
27212702 case 0:
2722 mex.hostname = getStringAddress(string(prev))
2703 mex.hostname = syslogtesting.StringAddress(string(prev))
27232704 case 1:
2724 mex.appname = getStringAddress(string(prev))
2705 mex.appname = syslogtesting.StringAddress(string(prev))
27252706 case 2:
2726 mex.procID = getStringAddress(string(prev))
2707 mex.procID = syslogtesting.StringAddress(string(prev))
27272708 case 3:
2728 mex.msgID = getStringAddress(string(prev))
2709 mex.msgID = syslogtesting.StringAddress(string(prev))
27292710 }
27302711
27312712 t := testCase{
27422723 }
27432724
27442725 func init() {
2745 rand.Seed(time.Now().Unix())
2746
2747 testCases = append(testCases, generateIncompleteTimestampTestCases()...)
2748
2749 hostnameMaxStr := []byte("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabc")
2750 testCases = append(testCases, generateUntilMaxLengthStringTestCases(hostnameMaxStr, 0)...)
2751
2752 appnameMaxStr := []byte("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdef")
2753 testCases = append(testCases, generateUntilMaxLengthStringTestCases(appnameMaxStr, 1)...)
2754
2755 procidMaxStr := []byte("abcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzabcdefghilmnopqrstuvzab")
2756 testCases = append(testCases, generateUntilMaxLengthStringTestCases(procidMaxStr, 2)...)
2757
2758 msgidMaxStr := []byte("abcdefghilmnopqrstuvzabcdefghilm")
2759 testCases = append(testCases, generateUntilMaxLengthStringTestCases(msgidMaxStr, 3)...)
2726 testCases = append(testCases, genIncompleteTimestampTestCases()...)
2727 testCases = append(testCases, genPartialMessagesTestCases(syslogtesting.MaxHostname, 0)...)
2728 testCases = append(testCases, genPartialMessagesTestCases(syslogtesting.MaxAppname, 1)...)
2729 testCases = append(testCases, genPartialMessagesTestCases(syslogtesting.MaxProcID, 2)...)
2730 testCases = append(testCases, genPartialMessagesTestCases(syslogtesting.MaxMsgID, 3)...)
27602731 }
27612732
27622733 func TestMachineBestEffortOption(t *testing.T) {
27702741 func TestMachineParse(t *testing.T) {
27712742 for _, tc := range testCases {
27722743 tc := tc
2773 t.Run(rxpad(string(tc.input), 50), func(t *testing.T) {
2744 t.Run(syslogtesting.RightPad(string(tc.input), 50), func(t *testing.T) {
27742745 t.Parallel()
27752746
27762747 message, merr := NewMachine().Parse(tc.input)
00 package rfc5424
11
22 import (
3 "github.com/influxdata/go-syslog"
3 syslog "github.com/influxdata/go-syslog/v2"
44 )
55
66 // WithBestEffort enables the best effort mode.
00 package rfc5424
11
22 import (
3 "github.com/influxdata/go-syslog"
43 "sync"
4
5 syslog "github.com/influxdata/go-syslog/v2"
56 )
67
78 // parser represent a RFC5424 parser with mutex capabilities.
22 import (
33 "testing"
44
5 "github.com/influxdata/go-syslog"
5 "github.com/influxdata/go-syslog/v2"
6 syslogtesting "github.com/influxdata/go-syslog/v2/testing"
67 "github.com/stretchr/testify/assert"
78 )
89
1920 pBest := NewParser(WithBestEffort())
2021 for _, tc := range testCases {
2122 tc := tc
22 t.Run(rxpad(string(tc.input), 50), func(t *testing.T) {
23 t.Run(syslogtesting.RightPad(string(tc.input), 50), func(t *testing.T) {
2324 t.Parallel()
2425
2526 message, merr := p.Parse(tc.input)
00 package rfc5424
11
22 import (
3 "github.com/influxdata/go-syslog"
43 "testing"
4
5 "github.com/influxdata/go-syslog/v2"
6 syslogtesting "github.com/influxdata/go-syslog/v2/testing"
57 )
68
79 // This is here to avoid compiler optimizations that
9294 func BenchmarkParse(b *testing.B) {
9395 for _, tc := range benchCases {
9496 tc := tc
95 b.Run(rxpad(tc.label, 50), func(b *testing.B) {
97 b.Run(syslogtesting.RightPad(tc.label, 50), func(b *testing.B) {
9698 for i := 0; i < b.N; i++ {
9799 benchParseResult, _ = NewMachine(WithBestEffort()).Parse(tc.input)
98100 }
+0
-81
rfc5424/rfc5424.rl less more
0 %%{
1 machine rfc5424;
2
3 # whitespace
4 sp = ' ';
5
6 # closing square bracket
7 csb = ']';
8
9 # double quote
10 dq = '"';
11
12 # backslash
13 bs = 0x5C;
14
15 # ", ], \
16 toescape = (dq | csb | bs);
17
18 # 0..59
19 sexagesimal = '0'..'5' . '0'..'9';
20
21 # 01..31
22 datemday = ('0' . '1'..'9' | '1'..'2' . '0'..'9' | '3' . '0'..'1');
23
24 # 01..12
25 datemonth = ('0' . '1'..'9' | '1' . '0'..'2');
26
27 datefullyear = digit{4};
28
29 fulldate = datefullyear '-' datemonth '-' datemday;
30
31 # 01..23
32 timehour = ('0'..'1' . '0'..'9' | '2' . '0'..'3');
33
34 timeminute = sexagesimal;
35
36 timesecond = sexagesimal;
37
38 timesecfrac = '.' digit{1,6};
39
40 timenumoffset = ('+' | '-') timehour ':' timeminute;
41
42 timeoffset = 'Z' | timenumoffset;
43
44 partialtime = timehour ':' timeminute ':' timesecond . timesecfrac?;
45
46 fulltime = partialtime . timeoffset;
47
48 printusascii = '!'..'~';
49
50 hostnamerange = printusascii{1,255};
51
52 appnamerange = printusascii{1,48};
53
54 procidrange = printusascii{1,128};
55
56 msgidrange = printusascii{1,32};
57
58 sdname = (printusascii - ('=' | sp | csb | dq)){1,32};
59
60 # rfc 3629
61 utf8tail = 0x80..0xBF;
62
63 utf81 = 0x00..0x7F;
64
65 utf82 = 0xC2..0xDF utf8tail;
66
67 utf83 = 0xE0 0xA0..0xBF utf8tail | 0xE1..0xEC utf8tail{2} | 0xED 0x80..0x9F utf8tail | 0xEE..0xEF utf8tail{2};
68
69 utf84 = 0xF0 0x90..0xBF utf8tail{2} | 0xF1..0xF3 utf8tail{3} | 0xF4 0x80..0x8F utf8tail{2};
70
71 utf8char = utf81 | utf82 | utf83 | utf84;
72
73 utf8octets = utf8char*;
74
75 bom = 0xEF 0xBB 0xBF;
76
77 # utf8char except ", ], \
78 utf8charwodelims = utf8char - toescape;
79
80 }%%
0 package testing
1
2 import (
3 "math/rand"
4 "strings"
5 "time"
6 )
7
8 func init() {
9 rand.Seed(time.Now().Unix())
10 }
11
12 const (
13 letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
14 letterIdxBits = 6 // 6 bits to represent a letter index
15 letterIdxMask = 1<<letterIdxBits - 1 // All 1-bits, as many as letterIdxBits
16 letterIdxMax = 63 / letterIdxBits // Number of letter indices fitting in 63 bits
17 )
18
19 // RandomBytes returns a random byte slice with length n.
20 func RandomBytes(n int) []byte {
21 src := rand.NewSource(time.Now().UnixNano())
22 b := make([]byte, n)
23 // A src.Int63() generates 63 random bits, enough for letterIdxMax characters
24 for i, cache, remain := n-1, src.Int63(), letterIdxMax; i >= 0; {
25 if remain == 0 {
26 cache, remain = src.Int63(), letterIdxMax
27 }
28 if idx := int(cache & letterIdxMask); idx < len(letterBytes) {
29 b[i] = letterBytes[idx]
30 i--
31 }
32 cache >>= letterIdxBits
33 remain--
34 }
35
36 return b
37 }
38
39 const (
40 // MaxPriority contains the maximum priority value that a RFC5424 syslog message can have.
41 MaxPriority = uint8(191)
42 // MaxVersion contains the maximum version value that a RFC5424 syslog message can have.
43 MaxVersion = uint16(999)
44 // MaxRFC3339MicroTimestamp contains the maximum length RFC3339MICRO timestamp that a RFC5424 syslog message can have.
45 MaxRFC3339MicroTimestamp = "2018-12-31T23:59:59.999999-23:59"
46 )
47
48 var (
49 // MaxHostname is a maximum length hostname that a RFC5424 syslog message can have.
50 MaxHostname = RandomBytes(255)
51 // MaxAppname is a maximum length app-name that a RFC5424 syslog message can have.
52 MaxAppname = RandomBytes(48)
53 // MaxProcID is a maximum length app-name that a RFC5424 syslog message can have.
54 MaxProcID = RandomBytes(128)
55 // MaxMsgID is a maximum length app-name that a RFC5424 syslog message can have.
56 MaxMsgID = RandomBytes(32)
57 // MaxMessage is a maximum length message that a RFC5424 syslog message can contain when all other fields are at their maximum length.
58 MaxMessage = RandomBytes(7681)
59 )
60
61 // RightPad pads a string with spaces until the given limit, or it cuts the string to the given limit.
62 func RightPad(str string, limit int) string {
63 str = str + strings.Repeat(" ", limit)
64 return str[:limit]
65 }
66
67 // StringAddress returns the address of the input string.
68 func StringAddress(str string) *string {
69 return &str
70 }
71
72 // Uint8Address returns the address of the input uint8.
73 func Uint8Address(x uint8) *uint8 {
74 return &x
75 }
76
77 // TimeParse parses a time string, for the given layout, into a pointer to a time.Time instance.
78 func TimeParse(layout, value string) *time.Time {
79 t, _ := time.Parse(layout, value)
80 return &t
81 }
82
83 // YearTime returns a time.Time of the given month, day, hour, minutes, and seconds for the current year (in UTC).
84 func YearTime(mm, dd, hh, min, ss int) time.Time {
85 return time.Date(time.Now().Year(), time.Month(mm), dd, hh, min, ss, 0, time.UTC)
86 }