regexp_parser 1.5.1 → 1.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 43db9cc4386341a5cf035787960682043390ae0d4c19c7e2a165a6e3a1f58a3e
4
- data.tar.gz: c501318f87c285e73ae5374cc7accc9b1822d9c08ac4a6db7e95aa7a031d69bd
3
+ metadata.gz: 047ef5746234f1e25d914d669596a9811f6c5871e3f8c2516434470d561a7c92
4
+ data.tar.gz: b3ec51e10f4331a7c0563ad7ab6f78ead20482baa1eb3c32a0de0d1f769bdcc0
5
5
  SHA512:
6
- metadata.gz: 85e8424ad11e4cb8d50d8900be3bd5fc79755a49561d5ae64e4d0913dccd0473254d2ad78e77a2695013b81dcc70c78c7209049b291d7cab5784c9cc4e6c8043
7
- data.tar.gz: de283a627fc5caed42da0c01cab7f9680136c2438536d443c2c3a62d7f8fb1fda86d2a5f7daf2f3d5d3f111d5e23abf3beff55586d7560f76f23b03aa926bbd9
6
+ metadata.gz: e06fee359a02e12a0c142ea1175b96de4d7bbc2af2d9ec83255fa2849e8922bfdf04ad3f26e2b10a1d2f57e87830e864feaa9b444c714de54799b97bda62ce4b
7
+ data.tar.gz: 8de81ed00adc5f760d3770ddf40c200b20d3671b4ee3832d43dcdd0956d7cfe4557bf30a8f7e994bbe82436ab3f8c62038c3088214ddf0907af0c301e2ffd58c
@@ -1,5 +1,60 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ### [1.8.1] - 2020-09-28 - [Janosch Müller](mailto:janosch84@gmail.com)
4
+
5
+ ### Fixed
6
+
7
+ - fixed scanning of comment-like text in normal mode
8
+ * this was an old bug, but had become more prevalent in v1.8.0
9
+ * thanks to [Tietew](https://github.com/Tietew) for the report
10
+ - specified correct minimum Ruby version in gemspec
11
+ * it said 1.9 but really required 2.0 as of v1.8.0
12
+
13
+ ### [1.8.0] - 2020-09-20 - [Janosch Müller](mailto:janosch84@gmail.com)
14
+
15
+ ### Changed
16
+
17
+ - dropped support for running on Ruby 1.9.x
18
+
19
+ ### Added
20
+
21
+ - regexp flags can now be passed when parsing a `String` as regexp body
22
+ * see the [README](/README.md#usage) for details
23
+ * thanks to [Owen Stephens](https://github.com/owst)
24
+ - bare occurrences of `\g` and `\k` are now allowed and scanned as literal escapes
25
+ * matches Onigmo behavior
26
+ * thanks for the report to [Marc-André Lafortune](https://github.com/marcandre)
27
+
28
+ ### Fixed
29
+
30
+ - fixed parsing comments without preceding space or trailing newline in x-mode
31
+ * thanks to [Owen Stephens](https://github.com/owst)
32
+
33
+ ### [1.7.1] - 2020-06-07 - [Ammar Ali](mailto:ammarabuali@gmail.com)
34
+
35
+ ### Fixed
36
+
37
+ - Support for literals that include the unescaped delimiters `{`, `}`, and `]`. These
38
+ delimiters are informally supported by various regexp engines.
39
+
40
+ ### [1.7.0] - 2020-02-23 - [Janosch Müller](mailto:janosch84@gmail.com)
41
+
42
+ ### Added
43
+
44
+ - `Expression#each_expression` and `#traverse` can now be called without a block
45
+ * this returns an `Enumerator` and allows chaining, e.g. `each_expression.select`
46
+ * thanks to [Masataka Kuwabara](https://github.com/pocke)
47
+
48
+ ### Fixed
49
+
50
+ - `MatchLength#each` no longer ignores the given `limit:` when called without a block
51
+
52
+ ### [1.6.0] - 2019-06-16 - [Janosch Müller](mailto:janosch84@gmail.com)
53
+
54
+ ### Added
55
+
56
+ - Added support for 16 new unicode properties introduced in Ruby 2.6.2 and 2.6.3
57
+
3
58
  ### [1.5.1] - 2019-05-23 - [Janosch Müller](mailto:janosch84@gmail.com)
4
59
 
5
60
  ### Fixed
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  group :development, :test do
6
- gem 'rake'
7
- gem 'regexp_property_values'
8
- gem 'rspec'
6
+ gem 'rake', '~> 13.0'
7
+ gem 'regexp_property_values', '~> 1.0'
8
+ gem 'rspec', '~> 3.8'
9
9
  end
data/README.md CHANGED
@@ -8,7 +8,7 @@ A Ruby gem for tokenizing, parsing, and transforming regular expressions.
8
8
  * A scanner/tokenizer based on [Ragel](http://www.colm.net/open-source/ragel/)
9
9
  * A lexer that produces a "stream" of token objects.
10
10
  * A parser that produces a "tree" of Expression objects (OO API)
11
- * Runs on Ruby 1.9, 2.x, and JRuby (1.9 mode) runtimes.
11
+ * Runs on Ruby 2.x and JRuby runtimes
12
12
  * Recognizes Ruby 1.8, 1.9, and 2.x regular expressions [See Supported Syntax](#supported-syntax)
13
13
 
14
14
 
@@ -72,6 +72,17 @@ called with the results as follows:
72
72
  * **Parser**: after completion, the block gets passed the root expression.
73
73
  _The result of the block is returned._
74
74
 
75
+ All three methods accept either a `Regexp` or `String` (containing the pattern)
76
+ - if a String is passed, `options` can be supplied:
77
+
78
+ ```ruby
79
+ require 'regexp_parser'
80
+
81
+ Regexp::Parser.parse(
82
+ "a+ # Recognises a and A...",
83
+ options: ::Regexp::EXTENDED | ::Regexp::IGNORECASE
84
+ )
85
+ ```
75
86
 
76
87
  ---
77
88
  ## Components
@@ -136,11 +147,8 @@ Regexp::Scanner.scan( /(cat?([bhm]at)){3,5}/ ).map {|token| token[2]}
136
147
  to the lexer.
137
148
 
138
149
  * The MRI implementation may accept expressions that either conflict with
139
- the documentation or are undocumented. The scanner does not support such
140
- implementation quirks.
141
- _(See issues [#3](https://github.com/ammar/regexp_parser/issues/3) and
142
- [#15](https://github.com/ammar/regexp_parser/issues/15) for examples)_
143
-
150
+ the documentation or are undocumented, like `{}` and `]` _(unescaped)_.
151
+ The scanner will try to support as many of these cases as possible.
144
152
 
145
153
  ---
146
154
  ### Syntax
data/Rakefile CHANGED
@@ -74,14 +74,13 @@ namespace :props do
74
74
  puts "Wrote #{hash.count} aliases to `#{path}`"
75
75
  end
76
76
 
77
- _, long_names = RegexpPropertyValues.short_and_long_names
78
- long_names_to_tokens = long_names.map do |name|
79
- [name.downcase.gsub(/[^0-9a-z=.]/, ''), name.downcase]
77
+ long_names_to_tokens = RegexpPropertyValues.all.map do |val|
78
+ [val.identifier, val.full_name.downcase]
80
79
  end
81
80
  write_hash_to_file.call(long_names_to_tokens, "#{dir}/long.yml")
82
81
 
83
82
  short_names_to_tokens = RegexpPropertyValues.alias_hash.map do |k, v|
84
- [k.downcase.gsub(/[^0-9a-z=.]/, ''), v.downcase]
83
+ [k.identifier, v.full_name.downcase]
85
84
  end
86
85
  write_hash_to_file.call(short_names_to_tokens, "#{dir}/short.yml")
87
86
  end
@@ -22,7 +22,7 @@ class Regexp::MatchLength
22
22
  end
23
23
 
24
24
  def each(opts = {})
25
- return enum_for(__method__) unless block_given?
25
+ return enum_for(__method__, opts) unless block_given?
26
26
  limit = opts[:limit] || 1000
27
27
  yielded = 0
28
28
  (min..max).each do |num|
@@ -14,7 +14,7 @@ module Regexp::Expression
14
14
  #
15
15
  # Returns self.
16
16
  def traverse(include_self = false, &block)
17
- raise 'traverse requires a block' unless block_given?
17
+ return enum_for(__method__, include_self) unless block_given?
18
18
 
19
19
  block.call(:enter, self, 0) if include_self
20
20
 
@@ -37,6 +37,8 @@ module Regexp::Expression
37
37
  # Iterates over the expressions of this expression as an array, passing
38
38
  # the expression and its index within its parent to the given block.
39
39
  def each_expression(include_self = false, &block)
40
+ return enum_for(__method__, include_self) unless block_given?
41
+
40
42
  traverse(include_self) do |event, exp, index|
41
43
  yield(exp, index) unless event == :exit
42
44
  end
@@ -11,11 +11,11 @@ class Regexp::Lexer
11
11
 
12
12
  CLOSING_TOKENS = [:close].freeze
13
13
 
14
- def self.lex(input, syntax = "ruby/#{RUBY_VERSION}", &block)
15
- new.lex(input, syntax, &block)
14
+ def self.lex(input, syntax = "ruby/#{RUBY_VERSION}", options: nil, &block)
15
+ new.lex(input, syntax, options: options, &block)
16
16
  end
17
17
 
18
- def lex(input, syntax = "ruby/#{RUBY_VERSION}", &block)
18
+ def lex(input, syntax = "ruby/#{RUBY_VERSION}", options: nil, &block)
19
19
  syntax = Regexp::Syntax.new(syntax)
20
20
 
21
21
  self.tokens = []
@@ -25,7 +25,7 @@ class Regexp::Lexer
25
25
  self.shift = 0
26
26
 
27
27
  last = nil
28
- Regexp::Scanner.scan(input) do |type, token, text, ts, te|
28
+ Regexp::Scanner.scan(input, options: options) do |type, token, text, ts, te|
29
29
  type, token = *syntax.normalize(type, token)
30
30
  syntax.check! type, token
31
31
 
@@ -18,12 +18,12 @@ class Regexp::Parser
18
18
  end
19
19
  end
20
20
 
21
- def self.parse(input, syntax = "ruby/#{RUBY_VERSION}", &block)
22
- new.parse(input, syntax, &block)
21
+ def self.parse(input, syntax = "ruby/#{RUBY_VERSION}", options: nil, &block)
22
+ new.parse(input, syntax, options: options, &block)
23
23
  end
24
24
 
25
- def parse(input, syntax = "ruby/#{RUBY_VERSION}", &block)
26
- root = Root.build(options_from_input(input))
25
+ def parse(input, syntax = "ruby/#{RUBY_VERSION}", options: nil, &block)
26
+ root = Root.build(extract_options(input, options))
27
27
 
28
28
  self.root = root
29
29
  self.node = root
@@ -35,7 +35,7 @@ class Regexp::Parser
35
35
 
36
36
  self.captured_group_counts = Hash.new(0)
37
37
 
38
- Regexp::Lexer.scan(input, syntax) do |token|
38
+ Regexp::Lexer.scan(input, syntax, options: options) do |token|
39
39
  parse_token(token)
40
40
  end
41
41
 
@@ -54,14 +54,20 @@ class Regexp::Parser
54
54
  :options_stack, :switching_options, :conditional_nesting,
55
55
  :captured_group_counts
56
56
 
57
- def options_from_input(input)
58
- return {} unless input.is_a?(::Regexp)
57
+ def extract_options(input, options)
58
+ if options && !input.is_a?(String)
59
+ raise ArgumentError, 'options cannot be supplied unless parsing a String'
60
+ end
61
+
62
+ options = input.options if input.is_a?(::Regexp)
63
+
64
+ return {} unless options
59
65
 
60
- options = {}
61
- options[:i] = true if input.options & ::Regexp::IGNORECASE != 0
62
- options[:m] = true if input.options & ::Regexp::MULTILINE != 0
63
- options[:x] = true if input.options & ::Regexp::EXTENDED != 0
64
- options
66
+ enabled_options = {}
67
+ enabled_options[:i] = true if options & ::Regexp::IGNORECASE != 0
68
+ enabled_options[:m] = true if options & ::Regexp::MULTILINE != 0
69
+ enabled_options[:x] = true if options & ::Regexp::EXTENDED != 0
70
+ enabled_options
65
71
  end
66
72
 
67
73
  def nest(exp)
@@ -2,7 +2,7 @@
2
2
 
3
3
  # line 1 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4
4
 
5
- # line 661 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
5
+ # line 678 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
6
6
 
7
7
 
8
8
  # THIS IS A GENERATED FILE, DO NOT EDIT DIRECTLY
@@ -67,21 +67,16 @@ class Regexp::Scanner
67
67
  #
68
68
  # This method may raise errors if a syntax error is encountered.
69
69
  # --------------------------------------------------------------------------
70
- def self.scan(input_object, &block)
71
- new.scan(input_object, &block)
70
+ def self.scan(input_object, options: nil, &block)
71
+ new.scan(input_object, options: options, &block)
72
72
  end
73
73
 
74
- def scan(input_object, &block)
74
+ def scan(input_object, options: nil, &block)
75
75
  self.literal = nil
76
76
  stack = []
77
77
 
78
- if input_object.is_a?(Regexp)
79
- input = input_object.source
80
- self.free_spacing = (input_object.options & Regexp::EXTENDED != 0)
81
- else
82
- input = input_object
83
- self.free_spacing = false
84
- end
78
+ input = input_object.is_a?(Regexp) ? input_object.source : input_object
79
+ self.free_spacing = free_spacing?(input_object, options)
85
80
  self.spacing_stack = [{:free_spacing => free_spacing, :depth => 0}]
86
81
 
87
82
  data = input.unpack("c*") if input.is_a?(String)
@@ -95,7 +90,7 @@ class Regexp::Scanner
95
90
  self.conditional_stack = []
96
91
 
97
92
 
98
- # line 98 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
93
+ # line 93 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
99
94
  class << self
100
95
  attr_accessor :_re_scanner_trans_keys
101
96
  private :_re_scanner_trans_keys, :_re_scanner_trans_keys=
@@ -103,14 +98,14 @@ end
103
98
  self._re_scanner_trans_keys = [
104
99
  0, 0, -128, -65, -128, -65,
105
100
  -128, -65, -128, -65, -128,
106
- -65, -128, -65, 10, 10,
107
- 41, 41, 39, 122, 33, 122,
108
- 48, 122, 39, 60, 39,
109
- 122, 48, 57, 39, 57,
110
- 48, 57, 39, 57, 39, 122,
111
- 43, 122, 48, 57, 48,
112
- 62, 48, 57, 43, 62,
113
- 43, 122, 44, 125, 48, 125,
101
+ -65, -128, -65, 41, 41,
102
+ 39, 122, 33, 122, 48, 122,
103
+ 39, 60, 39, 122, 48,
104
+ 57, 39, 57, 48, 57,
105
+ 39, 57, 39, 122, 43, 122,
106
+ 48, 57, 48, 62, 48,
107
+ 57, 43, 62, 43, 122,
108
+ 48, 57, 48, 125, 44, 125,
114
109
  123, 123, 9, 122, 9,
115
110
  125, 9, 122, -128, -65,
116
111
  -128, -65, 38, 38, 45, 122,
@@ -142,23 +137,23 @@ self._re_scanner_trans_keys = [
142
137
  125, 9, 125, 9, 125,
143
138
  9, 125, 48, 123, 41, 41,
144
139
  39, 122, 41, 57, 48,
145
- 122, -62, 127, -62, -33,
140
+ 122, -128, 127, -62, -33,
146
141
  -32, -17, -16, -12, 1, 127,
147
142
  1, 127, 9, 32, 33,
148
- 126, 10, 126, 63, 63,
143
+ 126, 10, 10, 63, 63,
149
144
  33, 126, 33, 126, 43, 63,
150
145
  43, 63, 43, 63, 65,
151
- 122, 43, 63, 68, 119,
152
- 80, 112, -62, 125, -128, -65,
153
- -128, -65, -128, -65, 38,
154
- 38, 38, 93, 46, 61,
155
- 48, 122, 36, 125, 48, 55,
156
- 48, 55, 77, 77, 45,
157
- 45, 0, 0, 67, 99,
158
- 45, 45, 0, 0, 92, 92,
159
- 48, 102, 39, 60, 39,
160
- 122, 49, 57, 41, 57,
161
- 48, 122, 0
146
+ 122, 44, 57, 43, 63,
147
+ 68, 119, 80, 112, -62, 125,
148
+ -128, -65, -128, -65, -128,
149
+ -65, 38, 38, 38, 93,
150
+ 46, 61, 48, 122, 36, 125,
151
+ 48, 55, 48, 55, 77,
152
+ 77, 45, 45, 0, 0,
153
+ 67, 99, 45, 45, 0, 0,
154
+ 92, 92, 48, 102, 39,
155
+ 60, 39, 122, 49, 57,
156
+ 41, 57, 48, 122, 0
162
157
  ]
163
158
 
164
159
  class << self
@@ -167,9 +162,9 @@ class << self
167
162
  end
168
163
  self._re_scanner_key_spans = [
169
164
  0, 64, 64, 64, 64, 64, 64, 1,
170
- 1, 84, 90, 75, 22, 84, 10, 19,
171
- 10, 19, 84, 80, 10, 15, 10, 20,
172
- 80, 82, 78, 1, 114, 117, 114, 64,
165
+ 84, 90, 75, 22, 84, 10, 19, 10,
166
+ 19, 84, 80, 10, 15, 10, 20, 80,
167
+ 10, 78, 82, 1, 114, 117, 114, 64,
173
168
  64, 1, 78, 78, 1, 27, 24, 8,
174
169
  3, 1, 1, 1, 1, 1, 1, 1,
175
170
  1, 1, 1, 1, 1, 1, 1, 1,
@@ -179,13 +174,13 @@ self._re_scanner_key_spans = [
179
174
  1, 1, 1, 1, 1, 58, 1, 1,
180
175
  1, 1, 1, 1, 1, 1, 76, 55,
181
176
  55, 55, 55, 117, 117, 117, 117, 117,
182
- 117, 76, 1, 84, 17, 75, 190, 30,
183
- 16, 5, 127, 127, 24, 94, 117, 1,
184
- 94, 94, 21, 21, 21, 58, 21, 52,
185
- 33, 188, 64, 64, 64, 1, 56, 16,
186
- 75, 90, 8, 8, 1, 1, 0, 33,
187
- 1, 0, 1, 55, 22, 84, 9, 17,
188
- 75
177
+ 117, 76, 1, 84, 17, 75, 256, 30,
178
+ 16, 5, 127, 127, 24, 94, 1, 1,
179
+ 94, 94, 21, 21, 21, 58, 14, 21,
180
+ 52, 33, 188, 64, 64, 64, 1, 56,
181
+ 16, 75, 90, 8, 8, 1, 1, 0,
182
+ 33, 1, 0, 1, 55, 22, 84, 9,
183
+ 17, 75
189
184
  ]
190
185
 
191
186
  class << self
@@ -194,25 +189,25 @@ class << self
194
189
  end
195
190
  self._re_scanner_index_offsets = [
196
191
  0, 0, 65, 130, 195, 260, 325, 390,
197
- 392, 394, 479, 570, 646, 669, 754, 765,
198
- 785, 796, 816, 901, 982, 993, 1009, 1020,
199
- 1041, 1122, 1205, 1284, 1286, 1401, 1519, 1634,
200
- 1699, 1764, 1766, 1845, 1924, 1926, 1954, 1979,
201
- 1988, 1992, 1994, 1996, 1998, 2000, 2002, 2004,
202
- 2006, 2008, 2010, 2012, 2014, 2016, 2018, 2020,
203
- 2022, 2024, 2026, 2028, 2030, 2032, 2034, 2036,
204
- 2038, 2040, 2042, 2044, 2046, 2048, 2050, 2055,
205
- 2057, 2059, 2061, 2063, 2065, 2067, 2069, 2071,
206
- 2073, 2075, 2077, 2079, 2081, 2083, 2142, 2144,
207
- 2146, 2148, 2150, 2152, 2154, 2156, 2158, 2235,
208
- 2291, 2347, 2403, 2459, 2577, 2695, 2813, 2931,
209
- 3049, 3167, 3244, 3246, 3331, 3349, 3425, 3616,
210
- 3647, 3664, 3670, 3798, 3926, 3951, 4046, 4164,
211
- 4166, 4261, 4356, 4378, 4400, 4422, 4481, 4503,
212
- 4556, 4590, 4779, 4844, 4909, 4974, 4976, 5033,
213
- 5050, 5126, 5217, 5226, 5235, 5237, 5239, 5240,
214
- 5274, 5276, 5277, 5279, 5335, 5358, 5443, 5453,
215
- 5471
192
+ 392, 477, 568, 644, 667, 752, 763, 783,
193
+ 794, 814, 899, 980, 991, 1007, 1018, 1039,
194
+ 1120, 1131, 1210, 1293, 1295, 1410, 1528, 1643,
195
+ 1708, 1773, 1775, 1854, 1933, 1935, 1963, 1988,
196
+ 1997, 2001, 2003, 2005, 2007, 2009, 2011, 2013,
197
+ 2015, 2017, 2019, 2021, 2023, 2025, 2027, 2029,
198
+ 2031, 2033, 2035, 2037, 2039, 2041, 2043, 2045,
199
+ 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2064,
200
+ 2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080,
201
+ 2082, 2084, 2086, 2088, 2090, 2092, 2151, 2153,
202
+ 2155, 2157, 2159, 2161, 2163, 2165, 2167, 2244,
203
+ 2300, 2356, 2412, 2468, 2586, 2704, 2822, 2940,
204
+ 3058, 3176, 3253, 3255, 3340, 3358, 3434, 3691,
205
+ 3722, 3739, 3745, 3873, 4001, 4026, 4121, 4123,
206
+ 4125, 4220, 4315, 4337, 4359, 4381, 4440, 4455,
207
+ 4477, 4530, 4564, 4753, 4818, 4883, 4948, 4950,
208
+ 5007, 5024, 5100, 5191, 5200, 5209, 5211, 5213,
209
+ 5214, 5248, 5250, 5251, 5253, 5309, 5332, 5417,
210
+ 5427, 5445
216
211
  ]
217
212
 
218
213
  class << self
@@ -269,420 +264,447 @@ self._re_scanner_indicies = [
269
264
  6, 6, 6, 6, 6, 6, 6, 6,
270
265
  6, 6, 6, 6, 6, 6, 6, 6,
271
266
  6, 6, 6, 6, 6, 0, 9, 8,
272
- 12, 11, 13, 10, 10, 10, 10, 10,
273
- 10, 10, 10, 14, 14, 14, 14, 14,
274
- 14, 14, 14, 14, 14, 10, 10, 10,
275
- 10, 10, 10, 10, 14, 14, 14, 14,
267
+ 10, 7, 7, 7, 7, 7, 7, 7,
268
+ 7, 11, 11, 11, 11, 11, 11, 11,
269
+ 11, 11, 11, 7, 7, 7, 7, 7,
270
+ 7, 7, 11, 11, 11, 11, 11, 11,
271
+ 11, 11, 11, 11, 11, 11, 11, 11,
272
+ 11, 11, 11, 11, 11, 11, 11, 11,
273
+ 11, 11, 11, 11, 7, 7, 7, 7,
274
+ 11, 7, 11, 11, 11, 11, 11, 11,
275
+ 11, 11, 11, 11, 11, 11, 11, 11,
276
+ 11, 11, 11, 11, 11, 11, 11, 11,
277
+ 11, 11, 11, 11, 7, 12, 7, 7,
278
+ 7, 7, 7, 7, 7, 7, 7, 7,
279
+ 7, 7, 7, 7, 13, 13, 13, 13,
280
+ 13, 13, 13, 13, 13, 13, 7, 7,
281
+ 7, 12, 10, 7, 7, 13, 13, 13,
282
+ 13, 13, 13, 13, 13, 13, 13, 13,
283
+ 13, 13, 13, 13, 13, 13, 13, 13,
284
+ 13, 13, 13, 13, 13, 13, 13, 7,
285
+ 7, 7, 7, 13, 7, 13, 13, 13,
286
+ 13, 13, 13, 13, 13, 13, 13, 13,
287
+ 13, 13, 13, 13, 13, 13, 13, 13,
288
+ 13, 13, 13, 13, 13, 13, 13, 7,
289
+ 13, 13, 13, 13, 13, 13, 13, 13,
290
+ 13, 13, 7, 7, 7, 7, 10, 7,
291
+ 7, 13, 13, 13, 13, 13, 13, 13,
292
+ 13, 13, 13, 13, 13, 13, 13, 13,
293
+ 13, 13, 13, 13, 13, 13, 13, 13,
294
+ 13, 13, 13, 7, 7, 7, 7, 13,
295
+ 7, 13, 13, 13, 13, 13, 13, 13,
296
+ 13, 13, 13, 13, 13, 13, 13, 13,
297
+ 13, 13, 13, 13, 13, 13, 13, 13,
298
+ 13, 13, 13, 7, 15, 14, 14, 14,
276
299
  14, 14, 14, 14, 14, 14, 14, 14,
277
300
  14, 14, 14, 14, 14, 14, 14, 14,
278
- 14, 14, 14, 14, 14, 14, 10, 10,
279
- 10, 10, 14, 10, 14, 14, 14, 14,
280
- 14, 14, 14, 14, 14, 14, 14, 14,
281
- 14, 14, 14, 14, 14, 14, 14, 14,
282
- 14, 14, 14, 14, 14, 14, 10, 15,
283
- 10, 10, 10, 10, 10, 10, 10, 10,
284
- 10, 10, 10, 10, 10, 10, 16, 16,
285
- 16, 16, 16, 16, 16, 16, 16, 16,
286
- 10, 10, 10, 15, 13, 10, 10, 16,
287
- 16, 16, 16, 16, 16, 16, 16, 16,
288
- 16, 16, 16, 16, 16, 16, 16, 16,
289
- 16, 16, 16, 16, 16, 16, 16, 16,
290
- 16, 10, 10, 10, 10, 16, 10, 16,
291
- 16, 16, 16, 16, 16, 16, 16, 16,
292
- 16, 16, 16, 16, 16, 16, 16, 16,
293
- 16, 16, 16, 16, 16, 16, 16, 16,
294
- 16, 10, 16, 16, 16, 16, 16, 16,
295
- 16, 16, 16, 16, 10, 10, 10, 10,
296
- 13, 10, 10, 16, 16, 16, 16, 16,
297
- 16, 16, 16, 16, 16, 16, 16, 16,
298
- 16, 16, 16, 16, 16, 16, 16, 16,
299
- 16, 16, 16, 16, 16, 10, 10, 10,
300
- 10, 16, 10, 16, 16, 16, 16, 16,
301
- 16, 16, 16, 16, 16, 16, 16, 16,
302
- 16, 16, 16, 16, 16, 16, 16, 16,
303
- 16, 16, 16, 16, 16, 10, 18, 17,
304
- 17, 17, 17, 17, 17, 17, 17, 17,
305
- 17, 17, 17, 17, 17, 17, 17, 17,
306
- 17, 17, 17, 19, 17, 20, 17, 17,
307
- 17, 21, 17, 22, 17, 17, 23, 23,
308
- 23, 23, 23, 23, 23, 23, 23, 23,
309
- 17, 17, 17, 17, 17, 17, 17, 23,
310
- 23, 23, 23, 23, 23, 23, 23, 23,
311
- 23, 23, 23, 23, 23, 23, 23, 23,
312
- 23, 23, 23, 23, 23, 23, 23, 23,
313
- 23, 17, 17, 17, 17, 23, 17, 23,
314
- 23, 23, 23, 23, 23, 23, 23, 23,
315
- 23, 23, 23, 23, 23, 23, 23, 23,
316
- 23, 23, 23, 23, 23, 23, 23, 23,
317
- 23, 17, 24, 24, 24, 24, 24, 24,
318
- 24, 24, 24, 24, 17, 20, 17, 17,
319
- 17, 17, 17, 17, 17, 17, 24, 24,
320
- 24, 24, 24, 24, 24, 24, 24, 24,
321
- 17, 24, 25, 25, 25, 25, 25, 25,
322
- 25, 25, 25, 17, 20, 17, 17, 17,
323
- 21, 17, 21, 17, 17, 25, 25, 25,
324
- 25, 25, 25, 25, 25, 25, 25, 17,
325
- 20, 17, 17, 17, 21, 17, 21, 17,
326
- 17, 23, 23, 23, 23, 23, 23, 23,
327
- 23, 23, 23, 17, 17, 17, 17, 17,
328
- 17, 17, 23, 23, 23, 23, 23, 23,
329
- 23, 23, 23, 23, 23, 23, 23, 23,
330
- 23, 23, 23, 23, 23, 23, 23, 23,
331
- 23, 23, 23, 23, 17, 17, 17, 17,
332
- 23, 17, 23, 23, 23, 23, 23, 23,
333
- 23, 23, 23, 23, 23, 23, 23, 23,
334
- 23, 23, 23, 23, 23, 23, 23, 23,
335
- 23, 23, 23, 23, 17, 26, 17, 27,
336
- 17, 17, 28, 28, 28, 28, 28, 28,
337
- 28, 28, 28, 28, 17, 17, 17, 17,
338
- 20, 17, 17, 28, 28, 28, 28, 28,
301
+ 14, 16, 14, 17, 14, 14, 14, 18,
302
+ 14, 19, 14, 14, 20, 20, 20, 20,
303
+ 20, 20, 20, 20, 20, 20, 14, 14,
304
+ 14, 14, 14, 14, 14, 20, 20, 20,
305
+ 20, 20, 20, 20, 20, 20, 20, 20,
306
+ 20, 20, 20, 20, 20, 20, 20, 20,
307
+ 20, 20, 20, 20, 20, 20, 20, 14,
308
+ 14, 14, 14, 20, 14, 20, 20, 20,
309
+ 20, 20, 20, 20, 20, 20, 20, 20,
310
+ 20, 20, 20, 20, 20, 20, 20, 20,
311
+ 20, 20, 20, 20, 20, 20, 20, 14,
312
+ 21, 21, 21, 21, 21, 21, 21, 21,
313
+ 21, 21, 14, 17, 14, 14, 14, 14,
314
+ 14, 14, 14, 14, 21, 21, 21, 21,
315
+ 21, 21, 21, 21, 21, 21, 14, 21,
316
+ 22, 22, 22, 22, 22, 22, 22, 22,
317
+ 22, 14, 17, 14, 14, 14, 18, 14,
318
+ 18, 14, 14, 22, 22, 22, 22, 22,
319
+ 22, 22, 22, 22, 22, 14, 17, 14,
320
+ 14, 14, 18, 14, 18, 14, 14, 20,
321
+ 20, 20, 20, 20, 20, 20, 20, 20,
322
+ 20, 14, 14, 14, 14, 14, 14, 14,
323
+ 20, 20, 20, 20, 20, 20, 20, 20,
324
+ 20, 20, 20, 20, 20, 20, 20, 20,
325
+ 20, 20, 20, 20, 20, 20, 20, 20,
326
+ 20, 20, 14, 14, 14, 14, 20, 14,
327
+ 20, 20, 20, 20, 20, 20, 20, 20,
328
+ 20, 20, 20, 20, 20, 20, 20, 20,
329
+ 20, 20, 20, 20, 20, 20, 20, 20,
330
+ 20, 20, 14, 23, 14, 24, 14, 14,
331
+ 25, 25, 25, 25, 25, 25, 25, 25,
332
+ 25, 25, 14, 14, 14, 14, 17, 14,
333
+ 14, 25, 25, 25, 25, 25, 25, 25,
334
+ 25, 25, 25, 25, 25, 25, 25, 25,
335
+ 25, 25, 25, 25, 25, 25, 25, 25,
336
+ 25, 25, 25, 14, 14, 14, 14, 25,
337
+ 14, 25, 25, 25, 25, 25, 25, 25,
338
+ 25, 25, 25, 25, 25, 25, 25, 25,
339
+ 25, 25, 25, 25, 25, 25, 25, 25,
340
+ 25, 25, 25, 14, 26, 26, 26, 26,
341
+ 26, 26, 26, 26, 26, 26, 14, 26,
342
+ 26, 26, 26, 26, 26, 26, 26, 26,
343
+ 26, 14, 14, 14, 14, 17, 14, 26,
344
+ 27, 27, 27, 27, 27, 27, 27, 27,
345
+ 27, 14, 23, 14, 23, 14, 14, 27,
346
+ 27, 27, 27, 27, 27, 27, 27, 27,
347
+ 27, 14, 14, 14, 14, 17, 14, 23,
348
+ 14, 23, 14, 14, 25, 25, 25, 25,
349
+ 25, 25, 25, 25, 25, 25, 14, 14,
350
+ 14, 14, 17, 14, 14, 25, 25, 25,
351
+ 25, 25, 25, 25, 25, 25, 25, 25,
352
+ 25, 25, 25, 25, 25, 25, 25, 25,
353
+ 25, 25, 25, 25, 25, 25, 25, 14,
354
+ 14, 14, 14, 25, 14, 25, 25, 25,
355
+ 25, 25, 25, 25, 25, 25, 25, 25,
356
+ 25, 25, 25, 25, 25, 25, 25, 25,
357
+ 25, 25, 25, 25, 25, 25, 25, 14,
358
+ 29, 29, 29, 29, 29, 29, 29, 29,
359
+ 29, 29, 28, 29, 29, 29, 29, 29,
360
+ 29, 29, 29, 29, 29, 28, 28, 28,
339
361
  28, 28, 28, 28, 28, 28, 28, 28,
340
362
  28, 28, 28, 28, 28, 28, 28, 28,
341
- 28, 28, 28, 28, 28, 17, 17, 17,
342
- 17, 28, 17, 28, 28, 28, 28, 28,
343
363
  28, 28, 28, 28, 28, 28, 28, 28,
344
364
  28, 28, 28, 28, 28, 28, 28, 28,
345
- 28, 28, 28, 28, 28, 17, 29, 29,
346
- 29, 29, 29, 29, 29, 29, 29, 29,
347
- 17, 29, 29, 29, 29, 29, 29, 29,
348
- 29, 29, 29, 17, 17, 17, 17, 20,
349
- 17, 29, 30, 30, 30, 30, 30, 30,
350
- 30, 30, 30, 17, 26, 17, 26, 17,
351
- 17, 30, 30, 30, 30, 30, 30, 30,
352
- 30, 30, 30, 17, 17, 17, 17, 20,
353
- 17, 26, 17, 26, 17, 17, 28, 28,
354
365
  28, 28, 28, 28, 28, 28, 28, 28,
355
- 17, 17, 17, 17, 20, 17, 17, 28,
356
366
  28, 28, 28, 28, 28, 28, 28, 28,
357
367
  28, 28, 28, 28, 28, 28, 28, 28,
358
368
  28, 28, 28, 28, 28, 28, 28, 28,
359
- 28, 17, 17, 17, 17, 28, 17, 28,
369
+ 30, 28, 29, 28, 28, 28, 31, 31,
370
+ 31, 31, 31, 31, 31, 31, 31, 31,
371
+ 28, 28, 28, 28, 28, 28, 28, 28,
372
+ 28, 28, 28, 28, 28, 28, 28, 28,
373
+ 28, 28, 28, 28, 28, 28, 28, 28,
374
+ 28, 28, 28, 28, 28, 28, 28, 28,
360
375
  28, 28, 28, 28, 28, 28, 28, 28,
361
376
  28, 28, 28, 28, 28, 28, 28, 28,
362
377
  28, 28, 28, 28, 28, 28, 28, 28,
363
- 28, 17, 32, 31, 31, 31, 33, 33,
378
+ 28, 28, 28, 28, 28, 28, 28, 28,
379
+ 28, 28, 28, 30, 28, 32, 33, 34,
380
+ 34, 34, 34, 34, 33, 33, 33, 33,
364
381
  33, 33, 33, 33, 33, 33, 33, 33,
365
- 31, 31, 31, 31, 31, 31, 31, 31,
366
- 31, 31, 31, 31, 31, 31, 31, 31,
367
- 31, 31, 31, 31, 31, 31, 31, 31,
368
- 31, 31, 31, 31, 31, 31, 31, 31,
369
- 31, 31, 31, 31, 31, 31, 31, 31,
370
- 31, 31, 31, 31, 31, 31, 31, 31,
371
- 31, 31, 31, 31, 31, 31, 31, 31,
372
- 31, 31, 31, 31, 31, 31, 31, 31,
373
- 31, 31, 31, 34, 31, 32, 32, 32,
374
- 32, 32, 32, 32, 32, 32, 32, 31,
375
- 31, 31, 31, 31, 31, 31, 31, 31,
376
- 31, 31, 31, 31, 31, 31, 31, 31,
377
- 31, 31, 31, 31, 31, 31, 31, 31,
378
- 31, 31, 31, 31, 31, 31, 31, 31,
379
- 31, 31, 31, 31, 31, 31, 31, 31,
380
- 31, 31, 31, 31, 31, 31, 31, 31,
381
- 31, 31, 31, 31, 31, 31, 31, 31,
382
- 31, 31, 31, 31, 31, 31, 31, 31,
383
- 31, 31, 34, 31, 35, 36, 37, 37,
384
- 37, 37, 37, 36, 36, 36, 36, 36,
385
- 36, 36, 36, 36, 36, 36, 36, 36,
386
- 36, 36, 36, 36, 36, 37, 36, 36,
387
- 36, 36, 36, 36, 36, 36, 36, 36,
388
- 36, 36, 37, 37, 36, 37, 37, 37,
389
- 37, 37, 37, 37, 37, 37, 37, 36,
390
- 36, 36, 37, 36, 36, 36, 37, 37,
391
- 37, 37, 37, 37, 37, 37, 37, 37,
392
- 37, 37, 37, 37, 37, 37, 37, 37,
393
- 37, 37, 37, 37, 37, 37, 37, 37,
394
- 36, 36, 36, 38, 37, 36, 37, 37,
395
- 37, 37, 37, 37, 37, 37, 37, 37,
396
- 37, 37, 37, 37, 37, 37, 37, 37,
397
- 37, 37, 37, 37, 37, 37, 37, 37,
398
- 36, 37, 37, 37, 37, 37, 36, 36,
399
- 36, 36, 36, 36, 36, 36, 36, 36,
400
- 36, 36, 36, 36, 36, 36, 36, 36,
401
- 37, 36, 36, 36, 36, 36, 36, 36,
402
- 36, 36, 36, 36, 36, 37, 37, 36,
403
- 37, 37, 37, 37, 37, 37, 37, 37,
404
- 37, 37, 36, 36, 36, 37, 36, 36,
405
- 36, 37, 37, 37, 37, 37, 37, 37,
406
- 37, 37, 37, 37, 37, 37, 37, 37,
407
- 37, 37, 37, 37, 37, 37, 37, 37,
408
- 37, 37, 37, 36, 36, 36, 36, 37,
409
- 36, 37, 37, 37, 37, 37, 37, 37,
410
- 37, 37, 37, 37, 37, 37, 37, 37,
411
- 37, 37, 37, 37, 37, 37, 37, 37,
412
- 37, 37, 37, 36, 36, 39, 36, 37,
413
- 37, 37, 37, 37, 36, 36, 36, 36,
414
- 36, 36, 36, 36, 36, 36, 36, 36,
415
- 36, 36, 36, 36, 36, 36, 37, 36,
416
- 36, 36, 36, 36, 36, 36, 36, 36,
417
- 36, 36, 36, 37, 37, 36, 37, 37,
418
- 37, 37, 37, 37, 37, 37, 37, 37,
419
- 36, 36, 36, 37, 36, 36, 36, 37,
420
- 37, 37, 37, 37, 37, 37, 37, 37,
421
- 37, 37, 37, 37, 37, 37, 37, 37,
422
- 37, 37, 37, 37, 37, 37, 37, 37,
423
- 37, 36, 36, 36, 36, 37, 36, 37,
424
- 37, 37, 37, 37, 37, 37, 37, 37,
425
- 37, 37, 37, 37, 37, 37, 37, 37,
426
- 37, 37, 37, 37, 37, 37, 37, 37,
427
- 37, 36, 41, 41, 41, 41, 41, 41,
428
- 41, 41, 41, 41, 41, 41, 41, 41,
429
- 41, 41, 41, 41, 41, 41, 41, 41,
430
- 41, 41, 41, 41, 41, 41, 41, 41,
431
- 41, 41, 41, 41, 41, 41, 41, 41,
432
- 41, 41, 41, 41, 41, 41, 41, 41,
433
- 41, 41, 41, 41, 41, 41, 41, 41,
434
- 41, 41, 41, 41, 41, 41, 41, 41,
435
- 41, 41, 40, 42, 42, 42, 42, 42,
436
- 42, 42, 42, 42, 42, 42, 42, 42,
437
- 42, 42, 42, 42, 42, 42, 42, 42,
438
- 42, 42, 42, 42, 42, 42, 42, 42,
439
- 42, 42, 42, 42, 42, 42, 42, 42,
440
- 42, 42, 42, 42, 42, 42, 42, 42,
441
- 42, 42, 42, 42, 42, 42, 42, 42,
442
- 42, 42, 42, 42, 42, 42, 42, 42,
443
- 42, 42, 42, 40, 44, 43, 47, 46,
444
- 46, 46, 46, 46, 46, 46, 46, 46,
445
- 46, 46, 46, 46, 46, 46, 46, 46,
446
- 46, 46, 47, 47, 47, 47, 47, 47,
447
- 47, 47, 47, 47, 47, 47, 47, 47,
448
- 47, 47, 47, 47, 47, 47, 47, 47,
449
- 47, 47, 47, 47, 46, 46, 46, 46,
450
- 46, 46, 47, 47, 47, 47, 47, 47,
451
- 47, 47, 47, 47, 47, 47, 47, 47,
452
- 47, 47, 47, 47, 47, 47, 47, 47,
453
- 47, 47, 47, 47, 46, 47, 48, 46,
454
- 46, 46, 46, 46, 46, 46, 46, 46,
455
- 46, 46, 46, 46, 46, 46, 46, 46,
456
- 46, 47, 47, 47, 47, 47, 47, 47,
457
- 47, 47, 47, 47, 47, 47, 47, 47,
458
- 47, 47, 47, 47, 47, 47, 47, 47,
459
- 47, 47, 47, 46, 46, 46, 46, 46,
460
- 46, 47, 47, 47, 47, 47, 47, 47,
461
- 47, 47, 47, 47, 47, 47, 47, 47,
462
- 47, 47, 47, 47, 47, 47, 47, 47,
463
- 47, 47, 47, 46, 49, 46, 50, 46,
464
- 46, 51, 52, 53, 54, 46, 46, 55,
465
- 46, 46, 46, 46, 56, 46, 46, 46,
466
- 57, 46, 46, 58, 46, 59, 46, 60,
467
- 61, 46, 51, 52, 53, 54, 46, 46,
468
- 55, 46, 46, 46, 46, 56, 46, 46,
469
- 46, 57, 46, 46, 58, 46, 59, 46,
470
- 60, 61, 46, 62, 46, 46, 46, 46,
471
- 46, 46, 63, 46, 64, 46, 65, 46,
472
- 66, 46, 67, 46, 68, 46, 69, 46,
473
- 70, 46, 67, 46, 71, 46, 72, 46,
474
- 67, 46, 73, 46, 74, 46, 75, 46,
475
- 67, 46, 76, 46, 77, 46, 78, 46,
476
- 67, 46, 79, 46, 80, 46, 81, 46,
477
- 67, 46, 82, 46, 83, 46, 84, 46,
478
- 67, 46, 85, 46, 86, 46, 87, 46,
479
- 67, 46, 88, 46, 46, 89, 46, 90,
480
- 46, 81, 46, 91, 46, 81, 46, 92,
481
- 46, 93, 46, 94, 46, 67, 46, 95,
482
- 46, 86, 46, 96, 46, 97, 46, 67,
483
- 46, 54, 46, 98, 98, 98, 98, 98,
484
- 98, 98, 98, 98, 98, 98, 98, 98,
485
- 98, 98, 98, 98, 98, 98, 98, 98,
486
- 98, 98, 98, 98, 98, 46, 46, 46,
487
- 46, 46, 46, 98, 98, 98, 98, 98,
488
- 98, 98, 98, 98, 98, 98, 98, 98,
489
- 98, 98, 98, 98, 98, 98, 98, 98,
490
- 98, 98, 98, 98, 98, 46, 99, 46,
491
- 100, 46, 101, 36, 103, 102, 105, 102,
492
- 106, 36, 108, 107, 110, 107, 111, 111,
493
- 111, 111, 111, 111, 111, 111, 111, 111,
494
- 36, 36, 36, 36, 36, 36, 36, 111,
495
- 111, 111, 111, 111, 111, 36, 36, 36,
496
- 36, 36, 36, 36, 36, 36, 36, 36,
497
- 36, 36, 36, 36, 36, 36, 36, 36,
498
- 36, 36, 36, 36, 36, 36, 36, 111,
499
- 111, 111, 111, 111, 111, 36, 36, 36,
500
- 36, 36, 36, 36, 36, 36, 36, 36,
501
- 36, 36, 36, 36, 36, 36, 36, 36,
502
- 36, 112, 36, 113, 113, 113, 113, 113,
503
- 113, 113, 113, 113, 113, 36, 36, 36,
504
- 36, 36, 36, 36, 113, 113, 113, 113,
505
- 113, 113, 36, 36, 36, 36, 36, 36,
506
- 36, 36, 36, 36, 36, 36, 36, 36,
507
- 36, 36, 36, 36, 36, 36, 36, 36,
508
- 36, 36, 36, 36, 113, 113, 113, 113,
509
- 113, 113, 36, 114, 114, 114, 114, 114,
510
- 114, 114, 114, 114, 114, 36, 36, 36,
511
- 36, 36, 36, 36, 114, 114, 114, 114,
512
- 114, 114, 36, 36, 36, 36, 36, 36,
513
- 36, 36, 36, 36, 36, 36, 36, 36,
514
- 36, 36, 36, 36, 36, 36, 36, 36,
515
- 36, 36, 36, 36, 114, 114, 114, 114,
516
- 114, 114, 36, 115, 115, 115, 115, 115,
517
- 115, 115, 115, 115, 115, 36, 36, 36,
518
- 36, 36, 36, 36, 115, 115, 115, 115,
519
- 115, 115, 36, 36, 36, 36, 36, 36,
520
- 36, 36, 36, 36, 36, 36, 36, 36,
521
- 36, 36, 36, 36, 36, 36, 36, 36,
522
- 36, 36, 36, 36, 115, 115, 115, 115,
523
- 115, 115, 36, 116, 116, 116, 116, 116,
524
- 116, 116, 116, 116, 116, 36, 36, 36,
525
- 36, 36, 36, 36, 116, 116, 116, 116,
526
- 116, 116, 36, 36, 36, 36, 36, 36,
527
- 36, 36, 36, 36, 36, 36, 36, 36,
528
- 36, 36, 36, 36, 36, 36, 36, 36,
529
- 36, 36, 36, 36, 116, 116, 116, 116,
530
- 116, 116, 36, 112, 112, 112, 112, 112,
531
- 36, 36, 36, 36, 36, 36, 36, 36,
532
- 36, 36, 36, 36, 36, 36, 36, 36,
533
- 36, 36, 112, 36, 36, 36, 36, 36,
534
- 36, 36, 36, 36, 36, 36, 36, 36,
535
- 36, 36, 117, 117, 117, 117, 117, 117,
536
- 117, 117, 117, 117, 36, 36, 36, 36,
537
- 36, 36, 36, 117, 117, 117, 117, 117,
538
- 117, 36, 36, 36, 36, 36, 36, 36,
539
- 36, 36, 36, 36, 36, 36, 36, 36,
540
- 36, 36, 36, 36, 36, 36, 36, 36,
541
- 36, 36, 36, 117, 117, 117, 117, 117,
542
- 117, 36, 36, 36, 36, 36, 36, 36,
543
- 36, 36, 36, 36, 36, 36, 36, 36,
544
- 36, 36, 36, 36, 36, 36, 36, 115,
545
- 36, 112, 112, 112, 112, 112, 36, 36,
546
- 36, 36, 36, 36, 36, 36, 36, 36,
547
- 36, 36, 36, 36, 36, 36, 36, 36,
548
- 112, 36, 36, 36, 36, 36, 36, 36,
549
- 36, 36, 36, 36, 36, 36, 36, 36,
550
- 118, 118, 118, 118, 118, 118, 118, 118,
551
- 118, 118, 36, 36, 36, 36, 36, 36,
552
- 36, 118, 118, 118, 118, 118, 118, 36,
553
- 36, 36, 36, 36, 36, 36, 36, 36,
554
- 36, 36, 36, 36, 36, 36, 36, 36,
555
- 36, 36, 36, 36, 36, 36, 36, 36,
556
- 36, 118, 118, 118, 118, 118, 118, 36,
557
- 36, 36, 36, 36, 36, 36, 36, 36,
558
- 36, 36, 36, 36, 36, 36, 36, 36,
559
- 36, 36, 36, 36, 36, 115, 36, 112,
560
- 112, 112, 112, 112, 36, 36, 36, 36,
561
- 36, 36, 36, 36, 36, 36, 36, 36,
562
- 36, 36, 36, 36, 36, 36, 112, 36,
563
- 36, 36, 36, 36, 36, 36, 36, 36,
564
- 36, 36, 36, 36, 36, 36, 119, 119,
382
+ 33, 33, 33, 33, 33, 33, 34, 33,
383
+ 33, 33, 33, 33, 33, 33, 33, 33,
384
+ 33, 33, 33, 34, 34, 33, 34, 34,
385
+ 34, 34, 34, 34, 34, 34, 34, 34,
386
+ 33, 33, 33, 34, 33, 33, 33, 34,
387
+ 34, 34, 34, 34, 34, 34, 34, 34,
388
+ 34, 34, 34, 34, 34, 34, 34, 34,
389
+ 34, 34, 34, 34, 34, 34, 34, 34,
390
+ 34, 33, 33, 33, 35, 34, 33, 34,
391
+ 34, 34, 34, 34, 34, 34, 34, 34,
392
+ 34, 34, 34, 34, 34, 34, 34, 34,
393
+ 34, 34, 34, 34, 34, 34, 34, 34,
394
+ 34, 33, 34, 34, 34, 34, 34, 33,
395
+ 33, 33, 33, 33, 33, 33, 33, 33,
396
+ 33, 33, 33, 33, 33, 33, 33, 33,
397
+ 33, 34, 33, 33, 33, 33, 33, 33,
398
+ 33, 33, 33, 33, 33, 33, 34, 34,
399
+ 33, 34, 34, 34, 34, 34, 34, 34,
400
+ 34, 34, 34, 33, 33, 33, 34, 33,
401
+ 33, 33, 34, 34, 34, 34, 34, 34,
402
+ 34, 34, 34, 34, 34, 34, 34, 34,
403
+ 34, 34, 34, 34, 34, 34, 34, 34,
404
+ 34, 34, 34, 34, 33, 33, 33, 33,
405
+ 34, 33, 34, 34, 34, 34, 34, 34,
406
+ 34, 34, 34, 34, 34, 34, 34, 34,
407
+ 34, 34, 34, 34, 34, 34, 34, 34,
408
+ 34, 34, 34, 34, 33, 33, 36, 33,
409
+ 34, 34, 34, 34, 34, 33, 33, 33,
410
+ 33, 33, 33, 33, 33, 33, 33, 33,
411
+ 33, 33, 33, 33, 33, 33, 33, 34,
412
+ 33, 33, 33, 33, 33, 33, 33, 33,
413
+ 33, 33, 33, 33, 34, 34, 33, 34,
414
+ 34, 34, 34, 34, 34, 34, 34, 34,
415
+ 34, 33, 33, 33, 34, 33, 33, 33,
416
+ 34, 34, 34, 34, 34, 34, 34, 34,
417
+ 34, 34, 34, 34, 34, 34, 34, 34,
418
+ 34, 34, 34, 34, 34, 34, 34, 34,
419
+ 34, 34, 33, 33, 33, 33, 34, 33,
420
+ 34, 34, 34, 34, 34, 34, 34, 34,
421
+ 34, 34, 34, 34, 34, 34, 34, 34,
422
+ 34, 34, 34, 34, 34, 34, 34, 34,
423
+ 34, 34, 33, 38, 38, 38, 38, 38,
424
+ 38, 38, 38, 38, 38, 38, 38, 38,
425
+ 38, 38, 38, 38, 38, 38, 38, 38,
426
+ 38, 38, 38, 38, 38, 38, 38, 38,
427
+ 38, 38, 38, 38, 38, 38, 38, 38,
428
+ 38, 38, 38, 38, 38, 38, 38, 38,
429
+ 38, 38, 38, 38, 38, 38, 38, 38,
430
+ 38, 38, 38, 38, 38, 38, 38, 38,
431
+ 38, 38, 38, 37, 39, 39, 39, 39,
432
+ 39, 39, 39, 39, 39, 39, 39, 39,
433
+ 39, 39, 39, 39, 39, 39, 39, 39,
434
+ 39, 39, 39, 39, 39, 39, 39, 39,
435
+ 39, 39, 39, 39, 39, 39, 39, 39,
436
+ 39, 39, 39, 39, 39, 39, 39, 39,
437
+ 39, 39, 39, 39, 39, 39, 39, 39,
438
+ 39, 39, 39, 39, 39, 39, 39, 39,
439
+ 39, 39, 39, 39, 37, 41, 40, 44,
440
+ 43, 43, 43, 43, 43, 43, 43, 43,
441
+ 43, 43, 43, 43, 43, 43, 43, 43,
442
+ 43, 43, 43, 44, 44, 44, 44, 44,
443
+ 44, 44, 44, 44, 44, 44, 44, 44,
444
+ 44, 44, 44, 44, 44, 44, 44, 44,
445
+ 44, 44, 44, 44, 44, 43, 43, 43,
446
+ 43, 43, 43, 44, 44, 44, 44, 44,
447
+ 44, 44, 44, 44, 44, 44, 44, 44,
448
+ 44, 44, 44, 44, 44, 44, 44, 44,
449
+ 44, 44, 44, 44, 44, 43, 44, 45,
450
+ 43, 43, 43, 43, 43, 43, 43, 43,
451
+ 43, 43, 43, 43, 43, 43, 43, 43,
452
+ 43, 43, 44, 44, 44, 44, 44, 44,
453
+ 44, 44, 44, 44, 44, 44, 44, 44,
454
+ 44, 44, 44, 44, 44, 44, 44, 44,
455
+ 44, 44, 44, 44, 43, 43, 43, 43,
456
+ 43, 43, 44, 44, 44, 44, 44, 44,
457
+ 44, 44, 44, 44, 44, 44, 44, 44,
458
+ 44, 44, 44, 44, 44, 44, 44, 44,
459
+ 44, 44, 44, 44, 43, 46, 43, 47,
460
+ 43, 43, 48, 49, 50, 51, 43, 43,
461
+ 52, 43, 43, 43, 43, 53, 43, 43,
462
+ 43, 54, 43, 43, 55, 43, 56, 43,
463
+ 57, 58, 43, 48, 49, 50, 51, 43,
464
+ 43, 52, 43, 43, 43, 43, 53, 43,
465
+ 43, 43, 54, 43, 43, 55, 43, 56,
466
+ 43, 57, 58, 43, 59, 43, 43, 43,
467
+ 43, 43, 43, 60, 43, 61, 43, 62,
468
+ 43, 63, 43, 64, 43, 65, 43, 66,
469
+ 43, 67, 43, 64, 43, 68, 43, 69,
470
+ 43, 64, 43, 70, 43, 71, 43, 72,
471
+ 43, 64, 43, 73, 43, 74, 43, 75,
472
+ 43, 64, 43, 76, 43, 77, 43, 78,
473
+ 43, 64, 43, 79, 43, 80, 43, 81,
474
+ 43, 64, 43, 82, 43, 83, 43, 84,
475
+ 43, 64, 43, 85, 43, 43, 86, 43,
476
+ 87, 43, 78, 43, 88, 43, 78, 43,
477
+ 89, 43, 90, 43, 91, 43, 64, 43,
478
+ 92, 43, 83, 43, 93, 43, 94, 43,
479
+ 64, 43, 51, 43, 95, 95, 95, 95,
480
+ 95, 95, 95, 95, 95, 95, 95, 95,
481
+ 95, 95, 95, 95, 95, 95, 95, 95,
482
+ 95, 95, 95, 95, 95, 95, 43, 43,
483
+ 43, 43, 43, 43, 95, 95, 95, 95,
484
+ 95, 95, 95, 95, 95, 95, 95, 95,
485
+ 95, 95, 95, 95, 95, 95, 95, 95,
486
+ 95, 95, 95, 95, 95, 95, 43, 96,
487
+ 43, 97, 43, 98, 33, 100, 99, 102,
488
+ 99, 103, 33, 105, 104, 107, 104, 108,
489
+ 108, 108, 108, 108, 108, 108, 108, 108,
490
+ 108, 33, 33, 33, 33, 33, 33, 33,
491
+ 108, 108, 108, 108, 108, 108, 33, 33,
492
+ 33, 33, 33, 33, 33, 33, 33, 33,
493
+ 33, 33, 33, 33, 33, 33, 33, 33,
494
+ 33, 33, 33, 33, 33, 33, 33, 33,
495
+ 108, 108, 108, 108, 108, 108, 33, 33,
496
+ 33, 33, 33, 33, 33, 33, 33, 33,
497
+ 33, 33, 33, 33, 33, 33, 33, 33,
498
+ 33, 33, 109, 33, 110, 110, 110, 110,
499
+ 110, 110, 110, 110, 110, 110, 33, 33,
500
+ 33, 33, 33, 33, 33, 110, 110, 110,
501
+ 110, 110, 110, 33, 33, 33, 33, 33,
502
+ 33, 33, 33, 33, 33, 33, 33, 33,
503
+ 33, 33, 33, 33, 33, 33, 33, 33,
504
+ 33, 33, 33, 33, 33, 110, 110, 110,
505
+ 110, 110, 110, 33, 111, 111, 111, 111,
506
+ 111, 111, 111, 111, 111, 111, 33, 33,
507
+ 33, 33, 33, 33, 33, 111, 111, 111,
508
+ 111, 111, 111, 33, 33, 33, 33, 33,
509
+ 33, 33, 33, 33, 33, 33, 33, 33,
510
+ 33, 33, 33, 33, 33, 33, 33, 33,
511
+ 33, 33, 33, 33, 33, 111, 111, 111,
512
+ 111, 111, 111, 33, 112, 112, 112, 112,
513
+ 112, 112, 112, 112, 112, 112, 33, 33,
514
+ 33, 33, 33, 33, 33, 112, 112, 112,
515
+ 112, 112, 112, 33, 33, 33, 33, 33,
516
+ 33, 33, 33, 33, 33, 33, 33, 33,
517
+ 33, 33, 33, 33, 33, 33, 33, 33,
518
+ 33, 33, 33, 33, 33, 112, 112, 112,
519
+ 112, 112, 112, 33, 113, 113, 113, 113,
520
+ 113, 113, 113, 113, 113, 113, 33, 33,
521
+ 33, 33, 33, 33, 33, 113, 113, 113,
522
+ 113, 113, 113, 33, 33, 33, 33, 33,
523
+ 33, 33, 33, 33, 33, 33, 33, 33,
524
+ 33, 33, 33, 33, 33, 33, 33, 33,
525
+ 33, 33, 33, 33, 33, 113, 113, 113,
526
+ 113, 113, 113, 33, 109, 109, 109, 109,
527
+ 109, 33, 33, 33, 33, 33, 33, 33,
528
+ 33, 33, 33, 33, 33, 33, 33, 33,
529
+ 33, 33, 33, 109, 33, 33, 33, 33,
530
+ 33, 33, 33, 33, 33, 33, 33, 33,
531
+ 33, 33, 33, 114, 114, 114, 114, 114,
532
+ 114, 114, 114, 114, 114, 33, 33, 33,
533
+ 33, 33, 33, 33, 114, 114, 114, 114,
534
+ 114, 114, 33, 33, 33, 33, 33, 33,
535
+ 33, 33, 33, 33, 33, 33, 33, 33,
536
+ 33, 33, 33, 33, 33, 33, 33, 33,
537
+ 33, 33, 33, 33, 114, 114, 114, 114,
538
+ 114, 114, 33, 33, 33, 33, 33, 33,
539
+ 33, 33, 33, 33, 33, 33, 33, 33,
540
+ 33, 33, 33, 33, 33, 33, 33, 33,
541
+ 112, 33, 109, 109, 109, 109, 109, 33,
542
+ 33, 33, 33, 33, 33, 33, 33, 33,
543
+ 33, 33, 33, 33, 33, 33, 33, 33,
544
+ 33, 109, 33, 33, 33, 33, 33, 33,
545
+ 33, 33, 33, 33, 33, 33, 33, 33,
546
+ 33, 115, 115, 115, 115, 115, 115, 115,
547
+ 115, 115, 115, 33, 33, 33, 33, 33,
548
+ 33, 33, 115, 115, 115, 115, 115, 115,
549
+ 33, 33, 33, 33, 33, 33, 33, 33,
550
+ 33, 33, 33, 33, 33, 33, 33, 33,
551
+ 33, 33, 33, 33, 33, 33, 33, 33,
552
+ 33, 33, 115, 115, 115, 115, 115, 115,
553
+ 33, 33, 33, 33, 33, 33, 33, 33,
554
+ 33, 33, 33, 33, 33, 33, 33, 33,
555
+ 33, 33, 33, 33, 33, 33, 112, 33,
556
+ 109, 109, 109, 109, 109, 33, 33, 33,
557
+ 33, 33, 33, 33, 33, 33, 33, 33,
558
+ 33, 33, 33, 33, 33, 33, 33, 109,
559
+ 33, 33, 33, 33, 33, 33, 33, 33,
560
+ 33, 33, 33, 33, 33, 33, 33, 116,
561
+ 116, 116, 116, 116, 116, 116, 116, 116,
562
+ 116, 33, 33, 33, 33, 33, 33, 33,
563
+ 116, 116, 116, 116, 116, 116, 33, 33,
564
+ 33, 33, 33, 33, 33, 33, 33, 33,
565
+ 33, 33, 33, 33, 33, 33, 33, 33,
566
+ 33, 33, 33, 33, 33, 33, 33, 33,
567
+ 116, 116, 116, 116, 116, 116, 33, 33,
568
+ 33, 33, 33, 33, 33, 33, 33, 33,
569
+ 33, 33, 33, 33, 33, 33, 33, 33,
570
+ 33, 33, 33, 33, 112, 33, 109, 109,
571
+ 109, 109, 109, 33, 33, 33, 33, 33,
572
+ 33, 33, 33, 33, 33, 33, 33, 33,
573
+ 33, 33, 33, 33, 33, 109, 33, 33,
574
+ 33, 33, 33, 33, 33, 33, 33, 33,
575
+ 33, 33, 33, 33, 33, 117, 117, 117,
576
+ 117, 117, 117, 117, 117, 117, 117, 33,
577
+ 33, 33, 33, 33, 33, 33, 117, 117,
578
+ 117, 117, 117, 117, 33, 33, 33, 33,
579
+ 33, 33, 33, 33, 33, 33, 33, 33,
580
+ 33, 33, 33, 33, 33, 33, 33, 33,
581
+ 33, 33, 33, 33, 33, 33, 117, 117,
582
+ 117, 117, 117, 117, 33, 33, 33, 33,
583
+ 33, 33, 33, 33, 33, 33, 33, 33,
584
+ 33, 33, 33, 33, 33, 33, 33, 33,
585
+ 33, 33, 112, 33, 109, 109, 109, 109,
586
+ 109, 33, 33, 33, 33, 33, 33, 33,
587
+ 33, 33, 33, 33, 33, 33, 33, 33,
588
+ 33, 33, 33, 109, 33, 33, 33, 33,
589
+ 33, 33, 33, 33, 33, 33, 33, 33,
590
+ 33, 33, 33, 118, 118, 118, 118, 118,
591
+ 118, 118, 118, 118, 118, 33, 33, 33,
592
+ 33, 33, 33, 33, 118, 118, 118, 118,
593
+ 118, 118, 33, 33, 33, 33, 33, 33,
594
+ 33, 33, 33, 33, 33, 33, 33, 33,
595
+ 33, 33, 33, 33, 33, 33, 33, 33,
596
+ 33, 33, 33, 33, 118, 118, 118, 118,
597
+ 118, 118, 33, 33, 33, 33, 33, 33,
598
+ 33, 33, 33, 33, 33, 33, 33, 33,
599
+ 33, 33, 33, 33, 33, 33, 33, 33,
600
+ 112, 33, 109, 109, 109, 109, 109, 33,
601
+ 33, 33, 33, 33, 33, 33, 33, 33,
602
+ 33, 33, 33, 33, 33, 33, 33, 33,
603
+ 33, 109, 33, 33, 33, 33, 33, 33,
604
+ 33, 33, 33, 33, 33, 33, 33, 33,
605
+ 33, 33, 33, 33, 33, 33, 33, 33,
606
+ 33, 33, 33, 33, 33, 33, 33, 33,
607
+ 33, 33, 33, 33, 33, 33, 33, 33,
608
+ 33, 33, 33, 33, 33, 33, 33, 33,
609
+ 33, 33, 33, 33, 33, 33, 33, 33,
610
+ 33, 33, 33, 33, 33, 33, 33, 33,
611
+ 33, 33, 33, 33, 33, 33, 33, 33,
612
+ 33, 33, 33, 33, 33, 33, 33, 33,
613
+ 33, 33, 33, 33, 33, 33, 33, 33,
614
+ 33, 33, 33, 33, 33, 33, 112, 33,
615
+ 120, 120, 120, 120, 120, 120, 120, 120,
616
+ 120, 120, 119, 119, 119, 119, 119, 119,
617
+ 119, 120, 120, 120, 120, 120, 120, 119,
565
618
  119, 119, 119, 119, 119, 119, 119, 119,
566
- 36, 36, 36, 36, 36, 36, 36, 119,
567
- 119, 119, 119, 119, 119, 36, 36, 36,
568
- 36, 36, 36, 36, 36, 36, 36, 36,
569
- 36, 36, 36, 36, 36, 36, 36, 36,
570
- 36, 36, 36, 36, 36, 36, 36, 119,
571
- 119, 119, 119, 119, 119, 36, 36, 36,
572
- 36, 36, 36, 36, 36, 36, 36, 36,
573
- 36, 36, 36, 36, 36, 36, 36, 36,
574
- 36, 36, 36, 115, 36, 112, 112, 112,
575
- 112, 112, 36, 36, 36, 36, 36, 36,
576
- 36, 36, 36, 36, 36, 36, 36, 36,
577
- 36, 36, 36, 36, 112, 36, 36, 36,
578
- 36, 36, 36, 36, 36, 36, 36, 36,
579
- 36, 36, 36, 36, 120, 120, 120, 120,
580
- 120, 120, 120, 120, 120, 120, 36, 36,
581
- 36, 36, 36, 36, 36, 120, 120, 120,
582
- 120, 120, 120, 36, 36, 36, 36, 36,
583
- 36, 36, 36, 36, 36, 36, 36, 36,
584
- 36, 36, 36, 36, 36, 36, 36, 36,
585
- 36, 36, 36, 36, 36, 120, 120, 120,
586
- 120, 120, 120, 36, 36, 36, 36, 36,
587
- 36, 36, 36, 36, 36, 36, 36, 36,
588
- 36, 36, 36, 36, 36, 36, 36, 36,
589
- 36, 115, 36, 112, 112, 112, 112, 112,
590
- 36, 36, 36, 36, 36, 36, 36, 36,
591
- 36, 36, 36, 36, 36, 36, 36, 36,
592
- 36, 36, 112, 36, 36, 36, 36, 36,
593
- 36, 36, 36, 36, 36, 36, 36, 36,
594
- 36, 36, 121, 121, 121, 121, 121, 121,
595
- 121, 121, 121, 121, 36, 36, 36, 36,
596
- 36, 36, 36, 121, 121, 121, 121, 121,
597
- 121, 36, 36, 36, 36, 36, 36, 36,
598
- 36, 36, 36, 36, 36, 36, 36, 36,
599
- 36, 36, 36, 36, 36, 36, 36, 36,
600
- 36, 36, 36, 121, 121, 121, 121, 121,
601
- 121, 36, 36, 36, 36, 36, 36, 36,
602
- 36, 36, 36, 36, 36, 36, 36, 36,
603
- 36, 36, 36, 36, 36, 36, 36, 115,
604
- 36, 112, 112, 112, 112, 112, 36, 36,
605
- 36, 36, 36, 36, 36, 36, 36, 36,
606
- 36, 36, 36, 36, 36, 36, 36, 36,
607
- 112, 36, 36, 36, 36, 36, 36, 36,
608
- 36, 36, 36, 36, 36, 36, 36, 36,
609
- 36, 36, 36, 36, 36, 36, 36, 36,
610
- 36, 36, 36, 36, 36, 36, 36, 36,
611
- 36, 36, 36, 36, 36, 36, 36, 36,
612
- 36, 36, 36, 36, 36, 36, 36, 36,
613
- 36, 36, 36, 36, 36, 36, 36, 36,
614
- 36, 36, 36, 36, 36, 36, 36, 36,
615
- 36, 36, 36, 36, 36, 36, 36, 36,
616
- 36, 36, 36, 36, 36, 36, 36, 36,
617
- 36, 36, 36, 36, 36, 36, 36, 36,
618
- 36, 36, 36, 36, 36, 115, 36, 123,
619
- 123, 123, 123, 123, 123, 123, 123, 123,
620
- 123, 122, 122, 122, 122, 122, 122, 122,
621
- 123, 123, 123, 123, 123, 123, 122, 122,
622
- 122, 122, 122, 122, 122, 122, 122, 122,
623
- 122, 122, 122, 122, 122, 122, 122, 122,
624
- 122, 122, 122, 122, 122, 122, 122, 122,
625
- 123, 123, 123, 123, 123, 123, 122, 122,
626
- 122, 122, 122, 122, 122, 122, 122, 122,
627
- 122, 122, 122, 122, 122, 122, 122, 122,
628
- 122, 122, 36, 122, 125, 124, 126, 124,
629
- 124, 124, 124, 124, 124, 124, 124, 127,
630
- 127, 127, 127, 127, 127, 127, 127, 127,
631
- 127, 124, 124, 124, 124, 124, 124, 124,
619
+ 119, 119, 119, 119, 119, 119, 119, 119,
620
+ 119, 119, 119, 119, 119, 119, 119, 119,
621
+ 119, 120, 120, 120, 120, 120, 120, 119,
622
+ 119, 119, 119, 119, 119, 119, 119, 119,
623
+ 119, 119, 119, 119, 119, 119, 119, 119,
624
+ 119, 119, 119, 33, 119, 122, 121, 123,
625
+ 121, 121, 121, 121, 121, 121, 121, 121,
626
+ 124, 124, 124, 124, 124, 124, 124, 124,
627
+ 124, 124, 121, 121, 121, 121, 121, 121,
628
+ 121, 124, 124, 124, 124, 124, 124, 124,
629
+ 124, 124, 124, 124, 124, 124, 124, 124,
630
+ 124, 124, 124, 124, 124, 124, 124, 124,
631
+ 124, 124, 124, 121, 121, 121, 121, 124,
632
+ 121, 124, 124, 124, 124, 124, 124, 124,
633
+ 124, 124, 124, 124, 124, 124, 124, 124,
634
+ 124, 124, 124, 124, 124, 124, 124, 124,
635
+ 124, 124, 124, 121, 122, 121, 121, 121,
636
+ 121, 121, 121, 125, 125, 125, 125, 125,
637
+ 125, 125, 125, 125, 125, 121, 126, 126,
638
+ 126, 126, 126, 126, 126, 126, 126, 126,
639
+ 121, 121, 121, 121, 123, 121, 121, 126,
640
+ 126, 126, 126, 126, 126, 126, 126, 126,
641
+ 126, 126, 126, 126, 126, 126, 126, 126,
642
+ 126, 126, 126, 126, 126, 126, 126, 126,
643
+ 126, 121, 121, 121, 121, 126, 121, 126,
644
+ 126, 126, 126, 126, 126, 126, 126, 126,
645
+ 126, 126, 126, 126, 126, 126, 126, 126,
646
+ 126, 126, 126, 126, 126, 126, 126, 126,
647
+ 126, 121, 33, 33, 33, 33, 33, 33,
648
+ 33, 33, 33, 33, 33, 33, 33, 33,
649
+ 33, 33, 33, 33, 33, 33, 33, 33,
650
+ 33, 33, 33, 33, 33, 33, 33, 33,
651
+ 33, 33, 33, 33, 33, 33, 33, 33,
652
+ 33, 33, 33, 33, 33, 33, 33, 33,
653
+ 33, 33, 33, 33, 33, 33, 33, 33,
654
+ 33, 33, 33, 33, 33, 33, 33, 33,
655
+ 33, 33, 33, 33, 127, 127, 127, 127,
632
656
  127, 127, 127, 127, 127, 127, 127, 127,
633
657
  127, 127, 127, 127, 127, 127, 127, 127,
634
658
  127, 127, 127, 127, 127, 127, 127, 127,
635
- 127, 127, 124, 124, 124, 124, 127, 124,
659
+ 127, 127, 128, 128, 128, 128, 128, 128,
660
+ 128, 128, 128, 128, 128, 128, 128, 128,
661
+ 128, 128, 129, 129, 129, 129, 129, 33,
662
+ 33, 33, 33, 33, 33, 33, 33, 33,
663
+ 33, 33, 33, 130, 130, 130, 130, 130,
664
+ 130, 130, 130, 131, 131, 131, 131, 131,
665
+ 130, 130, 130, 130, 130, 130, 130, 130,
666
+ 130, 130, 130, 130, 130, 130, 130, 130,
667
+ 130, 130, 132, 133, 133, 134, 135, 133,
668
+ 133, 133, 136, 137, 138, 139, 133, 133,
669
+ 140, 133, 133, 133, 133, 133, 133, 133,
670
+ 133, 133, 133, 133, 133, 133, 133, 133,
671
+ 133, 141, 133, 133, 133, 133, 133, 133,
672
+ 133, 133, 133, 133, 133, 133, 133, 133,
673
+ 133, 133, 133, 133, 133, 133, 133, 133,
674
+ 133, 133, 133, 133, 133, 142, 143, 144,
675
+ 145, 133, 133, 133, 133, 133, 133, 133,
676
+ 133, 133, 133, 133, 133, 133, 133, 133,
677
+ 133, 133, 133, 133, 133, 133, 133, 133,
678
+ 133, 133, 133, 133, 133, 146, 147, 144,
679
+ 133, 130, 133, 127, 127, 127, 127, 127,
636
680
  127, 127, 127, 127, 127, 127, 127, 127,
637
681
  127, 127, 127, 127, 127, 127, 127, 127,
638
682
  127, 127, 127, 127, 127, 127, 127, 127,
639
- 127, 127, 124, 125, 124, 124, 124, 124,
640
- 124, 124, 128, 128, 128, 128, 128, 128,
641
- 128, 128, 128, 128, 124, 129, 129, 129,
642
- 129, 129, 129, 129, 129, 129, 129, 124,
643
- 124, 124, 124, 126, 124, 124, 129, 129,
644
- 129, 129, 129, 129, 129, 129, 129, 129,
645
- 129, 129, 129, 129, 129, 129, 129, 129,
646
- 129, 129, 129, 129, 129, 129, 129, 129,
647
- 124, 124, 124, 124, 129, 124, 129, 129,
648
- 129, 129, 129, 129, 129, 129, 129, 129,
649
- 129, 129, 129, 129, 129, 129, 129, 129,
650
- 129, 129, 129, 129, 129, 129, 129, 129,
651
- 124, 130, 130, 130, 130, 130, 130, 130,
683
+ 127, 148, 128, 128, 128, 128, 128, 128,
684
+ 128, 128, 128, 128, 128, 128, 128, 128,
685
+ 128, 128, 148, 129, 129, 129, 129, 129,
686
+ 148, 130, 130, 130, 130, 130, 130, 130,
652
687
  130, 130, 130, 130, 130, 130, 130, 130,
653
688
  130, 130, 130, 130, 130, 130, 130, 130,
654
- 130, 130, 130, 130, 130, 130, 130, 131,
655
- 131, 131, 131, 131, 131, 131, 131, 131,
656
- 131, 131, 131, 131, 131, 131, 131, 132,
657
- 132, 132, 132, 132, 31, 31, 31, 31,
658
- 31, 31, 31, 31, 31, 31, 31, 31,
659
- 133, 133, 133, 133, 133, 133, 133, 133,
660
- 134, 134, 134, 134, 134, 133, 133, 133,
661
- 133, 133, 133, 133, 133, 133, 133, 133,
662
- 133, 133, 133, 133, 133, 133, 133, 135,
663
- 136, 136, 137, 138, 136, 136, 136, 139,
664
- 140, 141, 142, 136, 136, 143, 136, 136,
665
- 136, 136, 136, 136, 136, 136, 136, 136,
666
- 136, 136, 136, 136, 136, 136, 144, 136,
667
- 136, 136, 136, 136, 136, 136, 136, 136,
668
- 136, 136, 136, 136, 136, 136, 136, 136,
669
- 136, 136, 136, 136, 136, 136, 136, 136,
670
- 136, 136, 145, 146, 31, 147, 136, 136,
671
- 136, 136, 136, 136, 136, 136, 136, 136,
672
- 136, 136, 136, 136, 136, 136, 136, 136,
673
- 136, 136, 136, 136, 136, 136, 136, 136,
674
- 136, 136, 33, 148, 31, 136, 133, 31,
675
689
  130, 130, 130, 130, 130, 130, 130, 130,
690
+ 148, 148, 148, 148, 148, 148, 148, 148,
691
+ 148, 148, 148, 148, 148, 148, 148, 148,
692
+ 148, 148, 148, 148, 148, 148, 148, 148,
693
+ 148, 148, 148, 148, 148, 148, 148, 148,
694
+ 148, 148, 148, 148, 148, 148, 148, 148,
695
+ 148, 148, 148, 148, 148, 148, 148, 148,
696
+ 148, 148, 148, 148, 148, 148, 148, 148,
697
+ 148, 148, 148, 148, 148, 148, 148, 148,
698
+ 148, 148, 148, 148, 148, 148, 148, 148,
699
+ 148, 148, 148, 148, 148, 148, 148, 148,
700
+ 148, 148, 148, 148, 148, 148, 148, 148,
701
+ 148, 148, 148, 148, 148, 148, 148, 130,
702
+ 148, 130, 130, 130, 130, 130, 130, 130,
703
+ 130, 131, 131, 131, 131, 131, 130, 130,
676
704
  130, 130, 130, 130, 130, 130, 130, 130,
677
705
  130, 130, 130, 130, 130, 130, 130, 130,
678
- 130, 130, 130, 130, 130, 130, 149, 131,
679
- 131, 131, 131, 131, 131, 131, 131, 131,
680
- 131, 131, 131, 131, 131, 131, 131, 149,
681
- 132, 132, 132, 132, 132, 149, 133, 133,
682
- 133, 133, 133, 133, 133, 133, 133, 133,
683
- 133, 133, 133, 133, 133, 133, 133, 133,
684
- 133, 133, 133, 133, 133, 133, 133, 133,
685
- 133, 133, 133, 133, 133, 149, 149, 149,
706
+ 132, 149, 149, 149, 149, 149, 149, 149,
707
+ 149, 149, 149, 149, 149, 149, 149, 149,
686
708
  149, 149, 149, 149, 149, 149, 149, 149,
687
709
  149, 149, 149, 149, 149, 149, 149, 149,
688
710
  149, 149, 149, 149, 149, 149, 149, 149,
@@ -692,228 +714,198 @@ self._re_scanner_indicies = [
692
714
  149, 149, 149, 149, 149, 149, 149, 149,
693
715
  149, 149, 149, 149, 149, 149, 149, 149,
694
716
  149, 149, 149, 149, 149, 149, 149, 149,
717
+ 149, 149, 149, 149, 149, 149, 149, 130,
718
+ 149, 132, 132, 132, 132, 132, 149, 149,
695
719
  149, 149, 149, 149, 149, 149, 149, 149,
696
720
  149, 149, 149, 149, 149, 149, 149, 149,
697
- 149, 149, 149, 149, 133, 149, 133, 133,
698
- 133, 133, 133, 133, 133, 133, 134, 134,
699
- 134, 134, 134, 133, 133, 133, 133, 133,
721
+ 132, 149, 133, 133, 148, 148, 133, 133,
722
+ 133, 148, 148, 148, 148, 133, 133, 148,
700
723
  133, 133, 133, 133, 133, 133, 133, 133,
701
- 133, 133, 133, 133, 133, 135, 150, 150,
702
- 150, 150, 150, 150, 150, 150, 150, 150,
703
- 150, 150, 150, 150, 150, 150, 150, 150,
704
- 150, 150, 150, 150, 150, 150, 150, 150,
705
- 150, 150, 150, 150, 150, 150, 150, 150,
706
- 150, 150, 150, 150, 150, 150, 150, 150,
707
- 150, 150, 150, 150, 150, 150, 150, 150,
708
- 150, 150, 150, 150, 150, 150, 150, 150,
709
- 150, 150, 150, 150, 150, 150, 150, 150,
710
- 150, 150, 150, 150, 150, 150, 150, 150,
711
- 150, 150, 150, 150, 150, 150, 150, 150,
712
- 150, 150, 150, 150, 150, 150, 150, 150,
713
- 150, 150, 150, 150, 133, 150, 135, 135,
714
- 135, 135, 135, 150, 150, 150, 150, 150,
715
- 150, 150, 150, 150, 150, 150, 150, 150,
716
- 150, 150, 150, 150, 150, 135, 150, 136,
717
- 136, 136, 149, 136, 136, 136, 149, 149,
718
- 149, 149, 136, 136, 149, 136, 136, 136,
719
- 136, 136, 136, 136, 136, 136, 136, 136,
720
- 136, 136, 136, 136, 136, 149, 136, 136,
721
- 136, 136, 136, 136, 136, 136, 136, 136,
722
- 136, 136, 136, 136, 136, 136, 136, 136,
723
- 136, 136, 136, 136, 136, 136, 136, 136,
724
- 136, 149, 149, 149, 149, 136, 136, 136,
725
- 136, 136, 136, 136, 136, 136, 136, 136,
726
- 136, 136, 136, 136, 136, 136, 136, 136,
727
- 136, 136, 136, 136, 136, 136, 136, 136,
728
- 136, 149, 149, 149, 136, 149, 9, 8,
729
- 8, 8, 8, 8, 8, 8, 8, 8,
730
- 8, 8, 8, 8, 8, 8, 8, 8,
731
- 8, 8, 8, 8, 8, 137, 137, 137,
732
- 8, 137, 137, 137, 8, 8, 8, 8,
733
- 137, 137, 8, 137, 137, 137, 137, 137,
734
- 137, 137, 137, 137, 137, 137, 137, 137,
735
- 137, 137, 137, 8, 137, 137, 137, 137,
736
- 137, 137, 137, 137, 137, 137, 137, 137,
737
- 137, 137, 137, 137, 137, 137, 137, 137,
738
- 137, 137, 137, 137, 137, 137, 137, 8,
739
- 8, 8, 8, 137, 137, 137, 137, 137,
740
- 137, 137, 137, 137, 137, 137, 137, 137,
741
- 137, 137, 137, 137, 137, 137, 137, 137,
742
- 137, 137, 137, 137, 137, 137, 137, 8,
743
- 8, 8, 137, 8, 152, 151, 15, 154,
744
- 11, 154, 154, 154, 14, 155, 153, 154,
745
- 154, 154, 154, 154, 154, 154, 154, 154,
746
- 154, 154, 154, 154, 154, 154, 154, 13,
747
- 154, 156, 15, 13, 154, 154, 154, 154,
748
- 154, 154, 154, 154, 154, 154, 154, 154,
749
- 154, 154, 154, 154, 154, 154, 154, 154,
750
- 154, 154, 154, 154, 154, 154, 154, 154,
751
- 154, 154, 154, 154, 154, 154, 154, 154,
752
- 154, 154, 154, 154, 154, 154, 154, 154,
753
- 154, 154, 154, 154, 154, 154, 154, 154,
754
- 154, 154, 154, 154, 154, 154, 154, 154,
755
- 154, 154, 154, 13, 154, 153, 154, 153,
756
- 154, 154, 154, 153, 153, 153, 154, 154,
757
- 154, 154, 154, 154, 154, 154, 154, 154,
758
- 154, 154, 154, 154, 154, 154, 157, 154,
759
- 153, 153, 153, 154, 154, 154, 154, 154,
760
- 154, 154, 154, 154, 154, 154, 154, 154,
761
- 154, 154, 154, 154, 154, 154, 154, 154,
762
- 154, 154, 154, 154, 154, 154, 154, 154,
763
- 154, 154, 154, 154, 154, 154, 154, 154,
764
- 154, 154, 154, 154, 154, 154, 154, 154,
765
- 154, 154, 154, 154, 154, 154, 154, 154,
766
- 154, 154, 154, 154, 154, 154, 154, 154,
767
- 154, 154, 153, 154, 159, 158, 158, 158,
768
- 158, 158, 158, 158, 158, 158, 158, 158,
769
- 158, 158, 158, 158, 158, 158, 158, 158,
770
- 159, 158, 161, 160, 160, 160, 160, 160,
771
- 160, 160, 160, 160, 160, 160, 160, 160,
772
- 160, 160, 160, 160, 160, 160, 161, 160,
773
- 163, 162, 162, 162, 162, 162, 162, 162,
774
- 162, 162, 162, 162, 162, 162, 162, 162,
775
- 162, 162, 162, 162, 163, 162, 165, 165,
776
- 164, 164, 164, 164, 165, 164, 164, 164,
777
- 166, 164, 164, 164, 164, 164, 164, 164,
778
- 164, 164, 164, 164, 164, 164, 164, 165,
779
- 164, 164, 164, 164, 164, 164, 164, 165,
780
- 164, 164, 164, 164, 167, 164, 164, 164,
781
- 167, 164, 164, 164, 164, 164, 164, 164,
782
- 164, 164, 164, 164, 164, 164, 164, 165,
783
- 164, 169, 168, 168, 168, 168, 168, 168,
784
- 168, 168, 168, 168, 168, 168, 168, 168,
785
- 168, 168, 168, 168, 168, 169, 168, 170,
786
- 36, 36, 36, 170, 36, 36, 36, 36,
787
- 36, 36, 36, 36, 36, 170, 170, 36,
788
- 36, 36, 170, 170, 36, 36, 36, 36,
789
- 36, 36, 36, 36, 36, 36, 36, 170,
790
- 36, 36, 36, 170, 36, 36, 36, 36,
791
- 36, 36, 36, 36, 36, 36, 170, 36,
792
- 36, 36, 170, 36, 171, 36, 36, 36,
793
- 36, 36, 36, 36, 36, 36, 36, 36,
794
- 36, 36, 36, 36, 36, 36, 36, 36,
795
- 36, 36, 36, 36, 36, 36, 36, 36,
796
- 36, 36, 36, 36, 171, 36, 172, 172,
797
- 172, 172, 172, 172, 172, 172, 172, 172,
798
- 172, 172, 172, 172, 172, 172, 172, 172,
799
- 172, 172, 172, 172, 172, 172, 172, 172,
800
- 172, 172, 172, 172, 173, 173, 173, 173,
801
- 173, 173, 173, 173, 173, 173, 173, 173,
802
- 173, 173, 173, 173, 174, 174, 174, 174,
803
- 174, 41, 41, 41, 41, 41, 41, 41,
804
- 41, 41, 41, 41, 41, 41, 41, 41,
805
- 41, 41, 41, 41, 41, 41, 41, 41,
806
- 41, 41, 41, 41, 41, 41, 41, 41,
807
- 41, 41, 41, 41, 41, 41, 41, 41,
808
- 41, 41, 41, 41, 41, 41, 41, 41,
809
- 175, 41, 176, 41, 175, 175, 175, 175,
810
- 41, 177, 175, 41, 41, 41, 41, 41,
811
- 41, 41, 41, 41, 41, 41, 41, 41,
812
- 41, 41, 41, 175, 41, 41, 41, 41,
813
- 41, 41, 41, 41, 41, 41, 41, 41,
814
- 41, 41, 41, 41, 41, 41, 41, 41,
815
- 41, 41, 41, 41, 41, 41, 41, 178,
816
- 179, 180, 181, 41, 41, 41, 41, 41,
817
- 41, 41, 41, 41, 41, 41, 41, 41,
818
- 41, 41, 41, 41, 41, 41, 41, 41,
819
- 41, 41, 41, 41, 41, 41, 41, 175,
820
- 175, 175, 41, 41, 41, 41, 41, 41,
821
- 41, 41, 41, 41, 41, 41, 41, 41,
822
- 41, 41, 41, 41, 41, 41, 41, 41,
823
- 41, 41, 41, 41, 41, 41, 41, 41,
824
- 41, 41, 41, 41, 41, 41, 41, 41,
825
- 41, 41, 41, 41, 41, 41, 41, 41,
826
- 41, 41, 41, 41, 41, 41, 41, 41,
827
- 41, 41, 41, 41, 41, 41, 41, 41,
828
- 41, 41, 41, 182, 42, 42, 42, 42,
829
- 42, 42, 42, 42, 42, 42, 42, 42,
830
- 42, 42, 42, 42, 42, 42, 42, 42,
831
- 42, 42, 42, 42, 42, 42, 42, 42,
832
- 42, 42, 42, 42, 42, 42, 42, 42,
833
- 42, 42, 42, 42, 42, 42, 42, 42,
834
- 42, 42, 42, 42, 42, 42, 42, 42,
835
- 42, 42, 42, 42, 42, 42, 42, 42,
836
- 42, 42, 42, 42, 182, 183, 183, 183,
837
- 183, 183, 183, 183, 183, 183, 183, 183,
838
- 183, 183, 183, 183, 183, 183, 183, 183,
839
- 183, 183, 183, 183, 183, 183, 183, 183,
840
- 183, 183, 183, 183, 183, 183, 183, 183,
841
- 183, 183, 183, 183, 183, 183, 183, 183,
842
- 183, 183, 183, 183, 183, 183, 183, 183,
843
- 183, 183, 183, 183, 183, 183, 183, 183,
844
- 183, 183, 183, 183, 183, 182, 184, 182,
845
- 186, 185, 185, 185, 185, 185, 185, 185,
846
- 185, 185, 185, 185, 185, 185, 185, 185,
847
- 185, 185, 185, 185, 185, 185, 185, 185,
848
- 185, 185, 185, 185, 185, 185, 185, 185,
849
- 185, 185, 185, 185, 185, 185, 185, 185,
850
- 185, 185, 185, 185, 185, 185, 185, 185,
851
- 185, 185, 185, 185, 185, 185, 185, 187,
852
- 185, 190, 189, 189, 189, 189, 189, 189,
853
- 189, 189, 189, 189, 189, 191, 189, 189,
854
- 192, 189, 194, 194, 194, 194, 194, 194,
855
- 194, 194, 194, 194, 193, 193, 193, 193,
856
- 193, 193, 193, 194, 194, 194, 193, 193,
857
- 193, 194, 193, 193, 193, 194, 193, 194,
858
- 193, 193, 193, 193, 194, 193, 193, 193,
859
- 193, 193, 194, 193, 194, 193, 193, 193,
860
- 193, 193, 193, 193, 193, 194, 193, 193,
861
- 193, 194, 193, 193, 193, 194, 193, 193,
862
- 193, 193, 193, 193, 193, 193, 193, 193,
863
- 193, 193, 193, 193, 194, 193, 196, 195,
864
- 195, 195, 196, 196, 196, 196, 195, 195,
865
- 196, 195, 197, 198, 198, 198, 198, 198,
866
- 198, 198, 199, 199, 195, 195, 195, 195,
867
- 195, 196, 195, 36, 36, 200, 201, 195,
868
- 195, 36, 201, 195, 195, 36, 195, 202,
869
- 195, 195, 203, 195, 201, 201, 195, 195,
870
- 195, 201, 201, 195, 36, 196, 196, 196,
871
- 196, 195, 195, 204, 204, 101, 201, 204,
872
- 204, 36, 201, 195, 195, 36, 195, 195,
873
- 204, 195, 203, 195, 204, 201, 204, 205,
874
- 204, 201, 206, 195, 36, 196, 196, 196,
875
- 195, 208, 208, 208, 208, 208, 208, 208,
876
- 208, 207, 210, 210, 210, 210, 210, 210,
877
- 210, 210, 209, 212, 102, 214, 213, 102,
878
- 216, 107, 107, 107, 107, 107, 107, 107,
879
- 107, 107, 107, 107, 107, 107, 107, 107,
880
- 107, 107, 107, 107, 107, 107, 107, 107,
881
- 107, 107, 107, 107, 107, 107, 107, 107,
882
- 217, 107, 219, 218, 107, 110, 107, 222,
883
- 222, 222, 222, 222, 222, 222, 222, 222,
884
- 222, 221, 221, 221, 221, 221, 221, 221,
885
- 222, 222, 222, 222, 222, 222, 221, 221,
886
- 221, 221, 221, 221, 221, 221, 221, 221,
887
- 221, 221, 221, 221, 221, 221, 221, 221,
888
- 221, 221, 221, 221, 221, 221, 221, 221,
889
- 222, 222, 222, 222, 222, 222, 221, 224,
890
- 223, 223, 223, 223, 223, 225, 223, 223,
891
- 223, 226, 226, 226, 226, 226, 226, 226,
892
- 226, 226, 223, 223, 227, 223, 126, 228,
893
- 228, 228, 228, 228, 228, 228, 228, 127,
894
- 127, 127, 127, 127, 127, 127, 127, 127,
895
- 127, 228, 228, 228, 228, 228, 228, 228,
896
- 127, 127, 127, 127, 127, 127, 127, 127,
897
- 127, 127, 127, 127, 127, 127, 127, 127,
898
- 127, 127, 127, 127, 127, 127, 127, 127,
899
- 127, 127, 228, 228, 228, 228, 127, 228,
900
- 127, 127, 127, 127, 127, 127, 127, 127,
901
- 127, 127, 127, 127, 127, 127, 127, 127,
902
- 127, 127, 127, 127, 127, 127, 127, 127,
903
- 127, 127, 228, 128, 128, 128, 128, 128,
904
- 128, 128, 128, 128, 228, 125, 228, 228,
905
- 228, 228, 228, 228, 128, 128, 128, 128,
906
- 128, 128, 128, 128, 128, 128, 228, 129,
907
- 129, 129, 129, 129, 129, 129, 129, 129,
908
- 129, 228, 228, 228, 228, 126, 228, 228,
909
- 129, 129, 129, 129, 129, 129, 129, 129,
910
- 129, 129, 129, 129, 129, 129, 129, 129,
911
- 129, 129, 129, 129, 129, 129, 129, 129,
912
- 129, 129, 228, 228, 228, 228, 129, 228,
913
- 129, 129, 129, 129, 129, 129, 129, 129,
914
- 129, 129, 129, 129, 129, 129, 129, 129,
915
- 129, 129, 129, 129, 129, 129, 129, 129,
916
- 129, 129, 228, 0
724
+ 133, 133, 133, 133, 133, 133, 133, 133,
725
+ 148, 133, 133, 133, 133, 133, 133, 133,
726
+ 133, 133, 133, 133, 133, 133, 133, 133,
727
+ 133, 133, 133, 133, 133, 133, 133, 133,
728
+ 133, 133, 133, 133, 148, 148, 148, 148,
729
+ 133, 133, 133, 133, 133, 133, 133, 133,
730
+ 133, 133, 133, 133, 133, 133, 133, 133,
731
+ 133, 133, 133, 133, 133, 133, 133, 133,
732
+ 133, 133, 133, 133, 148, 148, 148, 133,
733
+ 148, 151, 134, 153, 152, 12, 155, 8,
734
+ 155, 155, 155, 11, 156, 154, 155, 155,
735
+ 155, 155, 155, 155, 155, 155, 155, 155,
736
+ 155, 155, 155, 155, 155, 155, 10, 155,
737
+ 157, 12, 10, 155, 155, 155, 155, 155,
738
+ 155, 155, 155, 155, 155, 155, 155, 155,
739
+ 155, 155, 155, 155, 155, 155, 155, 155,
740
+ 155, 155, 155, 155, 155, 155, 155, 155,
741
+ 155, 155, 155, 155, 155, 155, 155, 155,
742
+ 155, 155, 155, 155, 155, 155, 155, 155,
743
+ 155, 155, 155, 155, 155, 155, 155, 155,
744
+ 155, 155, 155, 155, 155, 155, 155, 155,
745
+ 155, 155, 10, 155, 154, 155, 154, 155,
746
+ 155, 155, 154, 154, 154, 155, 155, 155,
747
+ 155, 155, 155, 155, 155, 155, 155, 155,
748
+ 155, 155, 155, 155, 155, 158, 155, 154,
749
+ 154, 154, 155, 155, 155, 155, 155, 155,
750
+ 155, 155, 155, 155, 155, 155, 155, 155,
751
+ 155, 155, 155, 155, 155, 155, 155, 155,
752
+ 155, 155, 155, 155, 155, 155, 155, 155,
753
+ 155, 155, 155, 155, 155, 155, 155, 155,
754
+ 155, 155, 155, 155, 155, 155, 155, 155,
755
+ 155, 155, 155, 155, 155, 155, 155, 155,
756
+ 155, 155, 155, 155, 155, 155, 155, 155,
757
+ 155, 154, 155, 160, 159, 159, 159, 159,
758
+ 159, 159, 159, 159, 159, 159, 159, 159,
759
+ 159, 159, 159, 159, 159, 159, 159, 160,
760
+ 159, 162, 161, 161, 161, 161, 161, 161,
761
+ 161, 161, 161, 161, 161, 161, 161, 161,
762
+ 161, 161, 161, 161, 161, 162, 161, 164,
763
+ 163, 163, 163, 163, 163, 163, 163, 163,
764
+ 163, 163, 163, 163, 163, 163, 163, 163,
765
+ 163, 163, 163, 164, 163, 166, 166, 165,
766
+ 165, 165, 165, 166, 165, 165, 165, 167,
767
+ 165, 165, 165, 165, 165, 165, 165, 165,
768
+ 165, 165, 165, 165, 165, 165, 166, 165,
769
+ 165, 165, 165, 165, 165, 165, 166, 165,
770
+ 165, 165, 165, 168, 165, 165, 165, 168,
771
+ 165, 165, 165, 165, 165, 165, 165, 165,
772
+ 165, 165, 165, 165, 165, 165, 166, 165,
773
+ 170, 169, 169, 169, 31, 31, 31, 31,
774
+ 31, 31, 31, 31, 31, 31, 169, 172,
775
+ 171, 171, 171, 171, 171, 171, 171, 171,
776
+ 171, 171, 171, 171, 171, 171, 171, 171,
777
+ 171, 171, 171, 172, 171, 173, 33, 33,
778
+ 33, 173, 33, 33, 33, 33, 33, 33,
779
+ 33, 33, 33, 173, 173, 33, 33, 33,
780
+ 173, 173, 33, 33, 33, 33, 33, 33,
781
+ 33, 33, 33, 33, 33, 173, 33, 33,
782
+ 33, 173, 33, 33, 33, 33, 33, 33,
783
+ 33, 33, 33, 33, 173, 33, 33, 33,
784
+ 173, 33, 174, 33, 33, 33, 33, 33,
785
+ 33, 33, 33, 33, 33, 33, 33, 33,
786
+ 33, 33, 33, 33, 33, 33, 33, 33,
787
+ 33, 33, 33, 33, 33, 33, 33, 33,
788
+ 33, 33, 174, 33, 175, 175, 175, 175,
789
+ 175, 175, 175, 175, 175, 175, 175, 175,
790
+ 175, 175, 175, 175, 175, 175, 175, 175,
791
+ 175, 175, 175, 175, 175, 175, 175, 175,
792
+ 175, 175, 176, 176, 176, 176, 176, 176,
793
+ 176, 176, 176, 176, 176, 176, 176, 176,
794
+ 176, 176, 177, 177, 177, 177, 177, 38,
795
+ 38, 38, 38, 38, 38, 38, 38, 38,
796
+ 38, 38, 38, 38, 38, 38, 38, 38,
797
+ 38, 38, 38, 38, 38, 38, 38, 38,
798
+ 38, 38, 38, 38, 38, 38, 38, 38,
799
+ 38, 38, 38, 38, 38, 38, 38, 38,
800
+ 38, 38, 38, 38, 38, 38, 178, 38,
801
+ 179, 38, 178, 178, 178, 178, 38, 180,
802
+ 178, 38, 38, 38, 38, 38, 38, 38,
803
+ 38, 38, 38, 38, 38, 38, 38, 38,
804
+ 38, 178, 38, 38, 38, 38, 38, 38,
805
+ 38, 38, 38, 38, 38, 38, 38, 38,
806
+ 38, 38, 38, 38, 38, 38, 38, 38,
807
+ 38, 38, 38, 38, 38, 181, 182, 183,
808
+ 184, 38, 38, 38, 38, 38, 38, 38,
809
+ 38, 38, 38, 38, 38, 38, 38, 38,
810
+ 38, 38, 38, 38, 38, 38, 38, 38,
811
+ 38, 38, 38, 38, 38, 178, 178, 178,
812
+ 38, 38, 38, 38, 38, 38, 38, 38,
813
+ 38, 38, 38, 38, 38, 38, 38, 38,
814
+ 38, 38, 38, 38, 38, 38, 38, 38,
815
+ 38, 38, 38, 38, 38, 38, 38, 38,
816
+ 38, 38, 38, 38, 38, 38, 38, 38,
817
+ 38, 38, 38, 38, 38, 38, 38, 38,
818
+ 38, 38, 38, 38, 38, 38, 38, 38,
819
+ 38, 38, 38, 38, 38, 38, 38, 38,
820
+ 38, 185, 39, 39, 39, 39, 39, 39,
821
+ 39, 39, 39, 39, 39, 39, 39, 39,
822
+ 39, 39, 39, 39, 39, 39, 39, 39,
823
+ 39, 39, 39, 39, 39, 39, 39, 39,
824
+ 39, 39, 39, 39, 39, 39, 39, 39,
825
+ 39, 39, 39, 39, 39, 39, 39, 39,
826
+ 39, 39, 39, 39, 39, 39, 39, 39,
827
+ 39, 39, 39, 39, 39, 39, 39, 39,
828
+ 39, 39, 185, 186, 186, 186, 186, 186,
829
+ 186, 186, 186, 186, 186, 186, 186, 186,
830
+ 186, 186, 186, 186, 186, 186, 186, 186,
831
+ 186, 186, 186, 186, 186, 186, 186, 186,
832
+ 186, 186, 186, 186, 186, 186, 186, 186,
833
+ 186, 186, 186, 186, 186, 186, 186, 186,
834
+ 186, 186, 186, 186, 186, 186, 186, 186,
835
+ 186, 186, 186, 186, 186, 186, 186, 186,
836
+ 186, 186, 186, 185, 187, 185, 189, 188,
837
+ 188, 188, 188, 188, 188, 188, 188, 188,
838
+ 188, 188, 188, 188, 188, 188, 188, 188,
839
+ 188, 188, 188, 188, 188, 188, 188, 188,
840
+ 188, 188, 188, 188, 188, 188, 188, 188,
841
+ 188, 188, 188, 188, 188, 188, 188, 188,
842
+ 188, 188, 188, 188, 188, 188, 188, 188,
843
+ 188, 188, 188, 188, 188, 190, 188, 193,
844
+ 192, 192, 192, 192, 192, 192, 192, 192,
845
+ 192, 192, 192, 194, 192, 192, 195, 192,
846
+ 197, 197, 197, 197, 197, 197, 197, 197,
847
+ 197, 197, 196, 196, 196, 196, 196, 196,
848
+ 196, 197, 197, 197, 196, 196, 196, 197,
849
+ 196, 196, 196, 197, 196, 197, 196, 196,
850
+ 196, 196, 197, 196, 196, 196, 196, 196,
851
+ 197, 196, 197, 196, 196, 196, 196, 196,
852
+ 196, 196, 196, 197, 196, 196, 196, 197,
853
+ 196, 196, 196, 197, 196, 196, 196, 196,
854
+ 196, 196, 196, 196, 196, 196, 196, 196,
855
+ 196, 196, 197, 196, 199, 198, 198, 198,
856
+ 199, 199, 199, 199, 198, 198, 199, 198,
857
+ 200, 201, 201, 201, 201, 201, 201, 201,
858
+ 202, 202, 198, 198, 198, 198, 198, 199,
859
+ 198, 33, 33, 203, 204, 198, 198, 33,
860
+ 204, 198, 198, 33, 198, 205, 198, 198,
861
+ 206, 198, 204, 204, 198, 198, 198, 204,
862
+ 204, 198, 33, 199, 199, 199, 199, 198,
863
+ 198, 207, 207, 98, 204, 207, 207, 198,
864
+ 204, 198, 198, 198, 198, 198, 207, 198,
865
+ 206, 198, 207, 204, 207, 208, 207, 204,
866
+ 209, 198, 33, 199, 199, 199, 198, 211,
867
+ 211, 211, 211, 211, 211, 211, 211, 210,
868
+ 213, 213, 213, 213, 213, 213, 213, 213,
869
+ 212, 215, 99, 217, 216, 99, 219, 104,
870
+ 104, 104, 104, 104, 104, 104, 104, 104,
871
+ 104, 104, 104, 104, 104, 104, 104, 104,
872
+ 104, 104, 104, 104, 104, 104, 104, 104,
873
+ 104, 104, 104, 104, 104, 104, 220, 104,
874
+ 222, 221, 104, 107, 104, 225, 225, 225,
875
+ 225, 225, 225, 225, 225, 225, 225, 224,
876
+ 224, 224, 224, 224, 224, 224, 225, 225,
877
+ 225, 225, 225, 225, 224, 224, 224, 224,
878
+ 224, 224, 224, 224, 224, 224, 224, 224,
879
+ 224, 224, 224, 224, 224, 224, 224, 224,
880
+ 224, 224, 224, 224, 224, 224, 225, 225,
881
+ 225, 225, 225, 225, 224, 227, 226, 226,
882
+ 226, 226, 226, 228, 226, 226, 226, 229,
883
+ 229, 229, 229, 229, 229, 229, 229, 229,
884
+ 226, 226, 230, 226, 123, 231, 231, 231,
885
+ 231, 231, 231, 231, 231, 124, 124, 124,
886
+ 124, 124, 124, 124, 124, 124, 124, 231,
887
+ 231, 231, 231, 231, 231, 231, 124, 124,
888
+ 124, 124, 124, 124, 124, 124, 124, 124,
889
+ 124, 124, 124, 124, 124, 124, 124, 124,
890
+ 124, 124, 124, 124, 124, 124, 124, 124,
891
+ 231, 231, 231, 231, 124, 231, 124, 124,
892
+ 124, 124, 124, 124, 124, 124, 124, 124,
893
+ 124, 124, 124, 124, 124, 124, 124, 124,
894
+ 124, 124, 124, 124, 124, 124, 124, 124,
895
+ 231, 125, 125, 125, 125, 125, 125, 125,
896
+ 125, 125, 231, 122, 231, 231, 231, 231,
897
+ 231, 231, 125, 125, 125, 125, 125, 125,
898
+ 125, 125, 125, 125, 231, 126, 126, 126,
899
+ 126, 126, 126, 126, 126, 126, 126, 231,
900
+ 231, 231, 231, 123, 231, 231, 126, 126,
901
+ 126, 126, 126, 126, 126, 126, 126, 126,
902
+ 126, 126, 126, 126, 126, 126, 126, 126,
903
+ 126, 126, 126, 126, 126, 126, 126, 126,
904
+ 231, 231, 231, 231, 126, 231, 126, 126,
905
+ 126, 126, 126, 126, 126, 126, 126, 126,
906
+ 126, 126, 126, 126, 126, 126, 126, 126,
907
+ 126, 126, 126, 126, 126, 126, 126, 126,
908
+ 231, 0
917
909
  ]
918
910
 
919
911
  class << self
@@ -922,34 +914,34 @@ class << self
922
914
  end
923
915
  self._re_scanner_trans_targs = [
924
916
  110, 111, 3, 112, 5, 6, 113, 110,
925
- 7, 110, 110, 8, 110, 110, 9, 110,
926
- 11, 110, 13, 19, 110, 14, 16, 18,
927
- 15, 17, 20, 22, 24, 21, 23, 0,
928
- 26, 25, 126, 28, 0, 29, 30, 128,
929
- 129, 129, 31, 129, 129, 129, 129, 35,
930
- 36, 129, 38, 39, 50, 54, 58, 62,
931
- 66, 70, 75, 79, 81, 84, 40, 47,
932
- 41, 45, 42, 43, 44, 129, 46, 48,
933
- 49, 51, 52, 53, 55, 56, 57, 59,
934
- 60, 61, 63, 64, 65, 67, 68, 69,
935
- 71, 73, 72, 74, 76, 77, 78, 80,
936
- 82, 83, 86, 87, 129, 89, 137, 140,
937
- 137, 142, 92, 137, 143, 137, 145, 95,
938
- 98, 96, 97, 137, 99, 100, 101, 102,
939
- 103, 104, 137, 147, 148, 148, 106, 107,
940
- 108, 109, 1, 2, 4, 114, 115, 116,
941
- 117, 118, 110, 119, 110, 122, 123, 110,
942
- 124, 110, 125, 110, 110, 110, 110, 110,
943
- 120, 110, 121, 110, 10, 110, 110, 110,
944
- 110, 110, 110, 110, 110, 110, 110, 12,
945
- 110, 110, 127, 27, 130, 131, 132, 129,
946
- 133, 134, 135, 129, 129, 129, 129, 32,
947
- 129, 129, 33, 129, 129, 129, 34, 37,
948
- 85, 136, 136, 137, 137, 138, 138, 137,
949
- 88, 137, 91, 137, 137, 94, 105, 137,
950
- 139, 137, 137, 137, 141, 137, 90, 137,
951
- 144, 146, 137, 93, 137, 137, 137, 148,
952
- 149, 150, 151, 152, 148
917
+ 7, 110, 110, 8, 110, 10, 110, 12,
918
+ 18, 110, 13, 15, 17, 14, 16, 19,
919
+ 21, 23, 20, 22, 110, 25, 127, 26,
920
+ 28, 0, 29, 30, 129, 130, 130, 31,
921
+ 130, 130, 130, 130, 35, 36, 130, 38,
922
+ 39, 50, 54, 58, 62, 66, 70, 75,
923
+ 79, 81, 84, 40, 47, 41, 45, 42,
924
+ 43, 44, 130, 46, 48, 49, 51, 52,
925
+ 53, 55, 56, 57, 59, 60, 61, 63,
926
+ 64, 65, 67, 68, 69, 71, 73, 72,
927
+ 74, 76, 77, 78, 80, 82, 83, 86,
928
+ 87, 130, 89, 138, 141, 138, 143, 92,
929
+ 138, 144, 138, 146, 95, 98, 96, 97,
930
+ 138, 99, 100, 101, 102, 103, 104, 138,
931
+ 148, 149, 149, 106, 107, 108, 109, 1,
932
+ 2, 4, 114, 115, 116, 117, 118, 110,
933
+ 119, 110, 122, 123, 110, 124, 110, 125,
934
+ 110, 110, 126, 110, 110, 110, 110, 110,
935
+ 110, 120, 110, 121, 110, 9, 110, 110,
936
+ 110, 110, 110, 110, 110, 110, 110, 110,
937
+ 11, 110, 24, 110, 110, 128, 27, 131,
938
+ 132, 133, 130, 134, 135, 136, 130, 130,
939
+ 130, 130, 32, 130, 130, 33, 130, 130,
940
+ 130, 34, 37, 85, 137, 137, 138, 138,
941
+ 139, 139, 138, 88, 138, 91, 138, 138,
942
+ 94, 105, 138, 140, 138, 138, 138, 142,
943
+ 138, 90, 138, 145, 147, 138, 93, 138,
944
+ 138, 138, 149, 150, 151, 152, 153, 149
953
945
  ]
954
946
 
955
947
  class << self
@@ -958,34 +950,34 @@ class << self
958
950
  end
959
951
  self._re_scanner_trans_actions = [
960
952
  1, 2, 0, 2, 0, 0, 2, 3,
961
- 0, 4, 5, 6, 7, 8, 0, 9,
962
- 0, 10, 0, 0, 11, 0, 0, 0,
963
- 0, 0, 0, 0, 0, 0, 0, 12,
964
- 0, 0, 0, 0, 0, 0, 0, 14,
965
- 15, 16, 0, 17, 18, 19, 20, 0,
966
- 0, 21, 0, 0, 0, 0, 0, 0,
953
+ 4, 5, 6, 0, 7, 0, 8, 0,
954
+ 0, 9, 0, 0, 0, 0, 0, 0,
955
+ 0, 0, 0, 0, 10, 0, 0, 0,
956
+ 0, 0, 0, 0, 12, 13, 14, 0,
957
+ 15, 16, 17, 18, 0, 0, 19, 0,
967
958
  0, 0, 0, 0, 0, 0, 0, 0,
968
- 0, 0, 0, 0, 0, 22, 0, 0,
969
959
  0, 0, 0, 0, 0, 0, 0, 0,
960
+ 0, 0, 20, 0, 0, 0, 0, 0,
970
961
  0, 0, 0, 0, 0, 0, 0, 0,
971
962
  0, 0, 0, 0, 0, 0, 0, 0,
972
- 0, 0, 0, 0, 23, 0, 24, 0,
973
- 25, 0, 0, 26, 0, 27, 0, 0,
974
- 0, 0, 0, 28, 0, 0, 0, 0,
975
- 0, 0, 29, 0, 30, 31, 0, 0,
976
963
  0, 0, 0, 0, 0, 0, 0, 0,
977
- 0, 34, 35, 36, 37, 0, 0, 38,
978
- 0, 39, 34, 40, 41, 42, 43, 44,
979
- 45, 46, 0, 47, 0, 48, 49, 50,
980
- 51, 52, 53, 54, 55, 56, 57, 0,
981
- 58, 59, 61, 0, 0, 34, 34, 62,
982
- 0, 34, 63, 64, 65, 66, 67, 0,
983
- 68, 69, 0, 70, 71, 72, 0, 0,
984
- 0, 73, 74, 75, 76, 77, 78, 79,
985
- 0, 80, 0, 81, 82, 0, 0, 83,
986
- 0, 84, 85, 86, 34, 87, 0, 88,
987
- 34, 0, 89, 0, 90, 91, 92, 93,
988
- 34, 34, 34, 34, 94
964
+ 0, 21, 0, 23, 0, 24, 0, 0,
965
+ 25, 0, 26, 0, 0, 0, 0, 0,
966
+ 27, 0, 0, 0, 0, 0, 0, 28,
967
+ 0, 29, 30, 0, 0, 0, 0, 0,
968
+ 0, 0, 0, 0, 0, 0, 0, 33,
969
+ 34, 35, 0, 0, 36, 0, 37, 38,
970
+ 39, 40, 38, 41, 42, 43, 44, 45,
971
+ 46, 47, 48, 0, 49, 0, 50, 51,
972
+ 52, 53, 54, 55, 56, 57, 58, 59,
973
+ 0, 60, 0, 61, 62, 64, 0, 0,
974
+ 38, 38, 65, 0, 38, 66, 67, 68,
975
+ 69, 70, 0, 71, 72, 0, 73, 74,
976
+ 75, 0, 0, 0, 76, 77, 78, 79,
977
+ 80, 81, 82, 0, 83, 0, 84, 85,
978
+ 0, 0, 86, 0, 87, 88, 89, 38,
979
+ 90, 0, 91, 38, 0, 92, 0, 93,
980
+ 94, 95, 96, 38, 38, 38, 38, 97
989
981
  ]
990
982
 
991
983
  class << self
@@ -1006,13 +998,13 @@ self._re_scanner_to_state_actions = [
1006
998
  0, 0, 0, 0, 0, 0, 0, 0,
1007
999
  0, 0, 0, 0, 0, 0, 0, 0,
1008
1000
  0, 0, 0, 0, 0, 0, 0, 0,
1009
- 0, 0, 0, 0, 0, 0, 32, 0,
1001
+ 0, 0, 0, 0, 0, 0, 31, 0,
1002
+ 0, 0, 0, 0, 0, 0, 0, 0,
1010
1003
  0, 0, 0, 0, 0, 0, 0, 0,
1011
- 0, 0, 0, 0, 0, 0, 0, 60,
1012
- 60, 60, 0, 0, 0, 0, 0, 0,
1013
- 60, 60, 0, 0, 0, 0, 0, 0,
1014
- 0, 0, 0, 0, 60, 0, 0, 0,
1015
- 0
1004
+ 63, 63, 63, 0, 0, 0, 0, 0,
1005
+ 0, 63, 63, 0, 0, 0, 0, 0,
1006
+ 0, 0, 0, 0, 0, 63, 0, 0,
1007
+ 0, 0
1016
1008
  ]
1017
1009
 
1018
1010
  class << self
@@ -1033,13 +1025,13 @@ self._re_scanner_from_state_actions = [
1033
1025
  0, 0, 0, 0, 0, 0, 0, 0,
1034
1026
  0, 0, 0, 0, 0, 0, 0, 0,
1035
1027
  0, 0, 0, 0, 0, 0, 0, 0,
1036
- 0, 0, 0, 0, 0, 0, 33, 0,
1028
+ 0, 0, 0, 0, 0, 0, 32, 0,
1037
1029
  0, 0, 0, 0, 0, 0, 0, 0,
1038
- 0, 0, 0, 0, 0, 0, 0, 33,
1039
- 33, 33, 0, 0, 0, 0, 0, 0,
1040
- 33, 33, 0, 0, 0, 0, 0, 0,
1041
- 0, 0, 0, 0, 33, 0, 0, 0,
1042
- 0
1030
+ 0, 0, 0, 0, 0, 0, 0, 0,
1031
+ 32, 32, 32, 0, 0, 0, 0, 0,
1032
+ 0, 32, 32, 0, 0, 0, 0, 0,
1033
+ 0, 0, 0, 0, 0, 32, 0, 0,
1034
+ 0, 0
1043
1035
  ]
1044
1036
 
1045
1037
  class << self
@@ -1050,7 +1042,7 @@ self._re_scanner_eof_actions = [
1050
1042
  0, 0, 0, 0, 0, 0, 0, 0,
1051
1043
  0, 0, 0, 0, 0, 0, 0, 0,
1052
1044
  0, 0, 0, 0, 0, 0, 0, 0,
1053
- 0, 12, 12, 13, 13, 13, 13, 0,
1045
+ 0, 0, 0, 11, 11, 11, 11, 0,
1054
1046
  0, 0, 0, 0, 0, 0, 0, 0,
1055
1047
  0, 0, 0, 0, 0, 0, 0, 0,
1056
1048
  0, 0, 0, 0, 0, 0, 0, 0,
@@ -1058,15 +1050,15 @@ self._re_scanner_eof_actions = [
1058
1050
  0, 0, 0, 0, 0, 0, 0, 0,
1059
1051
  0, 0, 0, 0, 0, 0, 0, 0,
1060
1052
  0, 0, 0, 0, 0, 0, 0, 0,
1061
- 12, 12, 0, 12, 12, 0, 12, 12,
1062
- 12, 12, 12, 12, 12, 12, 12, 12,
1063
- 12, 12, 0, 0, 0, 0, 0, 0,
1053
+ 22, 22, 0, 22, 22, 0, 22, 22,
1054
+ 22, 22, 22, 22, 22, 22, 22, 22,
1055
+ 22, 22, 0, 0, 0, 0, 0, 0,
1064
1056
  0, 0, 0, 0, 0, 0, 0, 0,
1065
1057
  0, 0, 0, 0, 0, 0, 0, 0,
1066
- 0, 12, 0, 0, 0, 0, 0, 0,
1067
- 0, 12, 0, 0, 0, 0, 0, 0,
1058
+ 0, 0, 22, 0, 0, 0, 0, 0,
1059
+ 0, 0, 22, 0, 0, 0, 0, 0,
1068
1060
  0, 0, 0, 0, 0, 0, 0, 0,
1069
- 0
1061
+ 0, 0
1070
1062
  ]
1071
1063
 
1072
1064
  class << self
@@ -1075,25 +1067,25 @@ class << self
1075
1067
  end
1076
1068
  self._re_scanner_eof_trans = [
1077
1069
  0, 1, 1, 1, 1, 1, 1, 8,
1078
- 11, 11, 11, 11, 18, 18, 18, 18,
1079
- 18, 18, 18, 18, 18, 18, 18, 18,
1080
- 18, 0, 0, 0, 0, 0, 0, 41,
1081
- 41, 44, 46, 46, 46, 46, 46, 46,
1082
- 46, 46, 46, 46, 46, 46, 46, 46,
1083
- 46, 46, 46, 46, 46, 46, 46, 46,
1084
- 46, 46, 46, 46, 46, 46, 46, 46,
1085
- 46, 46, 46, 46, 46, 46, 46, 46,
1086
- 46, 46, 46, 46, 46, 46, 46, 46,
1087
- 46, 46, 46, 46, 46, 46, 46, 46,
1088
- 0, 0, 105, 0, 0, 110, 0, 0,
1070
+ 8, 8, 8, 15, 15, 15, 15, 15,
1071
+ 15, 15, 15, 15, 15, 15, 15, 15,
1072
+ 29, 29, 29, 0, 0, 0, 0, 38,
1073
+ 38, 41, 43, 43, 43, 43, 43, 43,
1074
+ 43, 43, 43, 43, 43, 43, 43, 43,
1075
+ 43, 43, 43, 43, 43, 43, 43, 43,
1076
+ 43, 43, 43, 43, 43, 43, 43, 43,
1077
+ 43, 43, 43, 43, 43, 43, 43, 43,
1078
+ 43, 43, 43, 43, 43, 43, 43, 43,
1079
+ 43, 43, 43, 43, 43, 43, 43, 43,
1080
+ 0, 0, 102, 0, 0, 107, 0, 0,
1089
1081
  0, 0, 0, 0, 0, 0, 0, 0,
1090
- 0, 0, 125, 125, 125, 125, 0, 150,
1091
- 150, 150, 150, 151, 151, 150, 150, 152,
1092
- 154, 154, 159, 161, 163, 165, 169, 0,
1093
- 0, 0, 183, 183, 183, 183, 186, 189,
1094
- 0, 0, 208, 210, 212, 212, 212, 216,
1095
- 216, 216, 216, 221, 0, 229, 229, 229,
1096
- 229
1082
+ 0, 0, 122, 122, 122, 122, 0, 149,
1083
+ 149, 149, 149, 150, 150, 149, 151, 153,
1084
+ 155, 155, 160, 162, 164, 166, 170, 172,
1085
+ 0, 0, 0, 186, 186, 186, 186, 189,
1086
+ 192, 0, 0, 211, 213, 215, 215, 215,
1087
+ 219, 219, 219, 219, 224, 0, 232, 232,
1088
+ 232, 232
1097
1089
  ]
1098
1090
 
1099
1091
  class << self
@@ -1112,36 +1104,36 @@ self.re_scanner_error = 0;
1112
1104
  class << self
1113
1105
  attr_accessor :re_scanner_en_char_type
1114
1106
  end
1115
- self.re_scanner_en_char_type = 127;
1107
+ self.re_scanner_en_char_type = 128;
1116
1108
  class << self
1117
1109
  attr_accessor :re_scanner_en_unicode_property
1118
1110
  end
1119
- self.re_scanner_en_unicode_property = 128;
1111
+ self.re_scanner_en_unicode_property = 129;
1120
1112
  class << self
1121
1113
  attr_accessor :re_scanner_en_character_set
1122
1114
  end
1123
- self.re_scanner_en_character_set = 129;
1115
+ self.re_scanner_en_character_set = 130;
1124
1116
  class << self
1125
1117
  attr_accessor :re_scanner_en_set_escape_sequence
1126
1118
  end
1127
- self.re_scanner_en_set_escape_sequence = 136;
1119
+ self.re_scanner_en_set_escape_sequence = 137;
1128
1120
  class << self
1129
1121
  attr_accessor :re_scanner_en_escape_sequence
1130
1122
  end
1131
- self.re_scanner_en_escape_sequence = 137;
1123
+ self.re_scanner_en_escape_sequence = 138;
1132
1124
  class << self
1133
1125
  attr_accessor :re_scanner_en_conditional_expression
1134
1126
  end
1135
- self.re_scanner_en_conditional_expression = 148;
1127
+ self.re_scanner_en_conditional_expression = 149;
1136
1128
  class << self
1137
1129
  attr_accessor :re_scanner_en_main
1138
1130
  end
1139
1131
  self.re_scanner_en_main = 110;
1140
1132
 
1141
1133
 
1142
- # line 753 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1134
+ # line 765 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1143
1135
 
1144
- # line 1144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1136
+ # line 1136 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1145
1137
  begin
1146
1138
  p ||= 0
1147
1139
  pe ||= data.length
@@ -1152,9 +1144,9 @@ begin
1152
1144
  act = 0
1153
1145
  end
1154
1146
 
1155
- # line 754 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1147
+ # line 766 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1156
1148
 
1157
- # line 1157 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1149
+ # line 1149 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1158
1150
  begin
1159
1151
  testEof = false
1160
1152
  _slen, _trans, _keys, _inds, _acts, _nacts = nil
@@ -1177,12 +1169,12 @@ begin
1177
1169
  end
1178
1170
  if _goto_level <= _resume
1179
1171
  case _re_scanner_from_state_actions[cs]
1180
- when 33 then
1172
+ when 32 then
1181
1173
  # line 1 "NONE"
1182
1174
  begin
1183
1175
  ts = p
1184
1176
  end
1185
- # line 1185 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1177
+ # line 1177 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1186
1178
  end
1187
1179
  _keys = cs << 1
1188
1180
  _inds = _re_scanner_index_offsets[cs]
@@ -1201,27 +1193,20 @@ ts = p
1201
1193
  cs = _re_scanner_trans_targs[_trans]
1202
1194
  if _re_scanner_trans_actions[_trans] != 0
1203
1195
  case _re_scanner_trans_actions[_trans]
1204
- when 12 then
1205
- # line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1206
- begin
1207
-
1208
- text = ts ? copy(data, ts-1..-1) : data.pack('c*')
1209
- raise PrematureEndError.new( text )
1210
- end
1211
- when 36 then
1212
- # line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1196
+ when 34 then
1197
+ # line 149 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1213
1198
  begin
1214
1199
  self.group_depth = group_depth + 1 end
1215
- when 6 then
1216
- # line 144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1200
+ when 4 then
1201
+ # line 150 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1217
1202
  begin
1218
1203
  self.group_depth = group_depth - 1 end
1219
- when 34 then
1204
+ when 38 then
1220
1205
  # line 1 "NONE"
1221
1206
  begin
1222
1207
  te = p+1
1223
1208
  end
1224
- when 61 then
1209
+ when 64 then
1225
1210
  # line 12 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/char_type.rl"
1226
1211
  begin
1227
1212
  te = p+1
@@ -1247,7 +1232,7 @@ te = p+1
1247
1232
 
1248
1233
  end
1249
1234
  end
1250
- when 14 then
1235
+ when 12 then
1251
1236
  # line 16 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
1252
1237
  begin
1253
1238
  te = p+1
@@ -1271,8 +1256,8 @@ te = p+1
1271
1256
 
1272
1257
  end
1273
1258
  end
1274
- when 18 then
1275
- # line 171 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1259
+ when 16 then
1260
+ # line 177 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1276
1261
  begin
1277
1262
  te = p+1
1278
1263
  begin # special case, emits two tokens
@@ -1280,8 +1265,8 @@ te = p+1
1280
1265
  emit(:set, :intersection, '&&', ts, te)
1281
1266
  end
1282
1267
  end
1283
- when 66 then
1284
- # line 176 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1268
+ when 69 then
1269
+ # line 182 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1285
1270
  begin
1286
1271
  te = p+1
1287
1272
  begin
@@ -1293,39 +1278,39 @@ te = p+1
1293
1278
  end
1294
1279
  end
1295
1280
  end
1296
- when 68 then
1297
- # line 197 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1281
+ when 71 then
1282
+ # line 203 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1298
1283
  begin
1299
1284
  te = p+1
1300
1285
  begin
1301
1286
  emit(:set, :intersection, *text(data, ts, te))
1302
1287
  end
1303
1288
  end
1304
- when 64 then
1305
- # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1289
+ when 67 then
1290
+ # line 207 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1306
1291
  begin
1307
1292
  te = p+1
1308
1293
  begin
1309
1294
  begin
1310
1295
  stack[top] = cs
1311
1296
  top+= 1
1312
- cs = 136
1297
+ cs = 137
1313
1298
  _goto_level = _again
1314
1299
  next
1315
1300
  end
1316
1301
 
1317
1302
  end
1318
1303
  end
1319
- when 62 then
1320
- # line 231 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1304
+ when 65 then
1305
+ # line 237 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1321
1306
  begin
1322
1307
  te = p+1
1323
1308
  begin
1324
1309
  emit(:literal, :literal, *text(data, ts, te))
1325
1310
  end
1326
1311
  end
1327
- when 16 then
1328
- # line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1312
+ when 14 then
1313
+ # line 245 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1329
1314
  begin
1330
1315
  te = p+1
1331
1316
  begin
@@ -1334,8 +1319,8 @@ te = p+1
1334
1319
  emit(:literal, :literal, char, *rest)
1335
1320
  end
1336
1321
  end
1337
- when 69 then
1338
- # line 185 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1322
+ when 72 then
1323
+ # line 191 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1339
1324
  begin
1340
1325
  te = p
1341
1326
  p = p - 1; begin
@@ -1348,8 +1333,8 @@ p = p - 1; begin
1348
1333
  end
1349
1334
  end
1350
1335
  end
1351
- when 72 then
1352
- # line 205 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1336
+ when 75 then
1337
+ # line 211 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1353
1338
  begin
1354
1339
  te = p
1355
1340
  p = p - 1; begin
@@ -1357,15 +1342,15 @@ p = p - 1; begin
1357
1342
  begin
1358
1343
  stack[top] = cs
1359
1344
  top+= 1
1360
- cs = 129
1345
+ cs = 130
1361
1346
  _goto_level = _again
1362
1347
  next
1363
1348
  end
1364
1349
 
1365
1350
  end
1366
1351
  end
1367
- when 67 then
1368
- # line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1352
+ when 70 then
1353
+ # line 245 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1369
1354
  begin
1370
1355
  te = p
1371
1356
  p = p - 1; begin
@@ -1374,8 +1359,8 @@ p = p - 1; begin
1374
1359
  emit(:literal, :literal, char, *rest)
1375
1360
  end
1376
1361
  end
1377
- when 17 then
1378
- # line 185 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1362
+ when 15 then
1363
+ # line 191 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1379
1364
  begin
1380
1365
  begin p = ((te))-1; end
1381
1366
  begin
@@ -1388,8 +1373,8 @@ p = p - 1; begin
1388
1373
  end
1389
1374
  end
1390
1375
  end
1391
- when 20 then
1392
- # line 205 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1376
+ when 18 then
1377
+ # line 211 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1393
1378
  begin
1394
1379
  begin p = ((te))-1; end
1395
1380
  begin
@@ -1397,15 +1382,15 @@ p = p - 1; begin
1397
1382
  begin
1398
1383
  stack[top] = cs
1399
1384
  top+= 1
1400
- cs = 129
1385
+ cs = 130
1401
1386
  _goto_level = _again
1402
1387
  next
1403
1388
  end
1404
1389
 
1405
1390
  end
1406
1391
  end
1407
- when 15 then
1408
- # line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1392
+ when 13 then
1393
+ # line 245 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1409
1394
  begin
1410
1395
  begin p = ((te))-1; end
1411
1396
  begin
@@ -1414,8 +1399,8 @@ p = p - 1; begin
1414
1399
  emit(:literal, :literal, char, *rest)
1415
1400
  end
1416
1401
  end
1417
- when 74 then
1418
- # line 249 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1402
+ when 77 then
1403
+ # line 255 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1419
1404
  begin
1420
1405
  te = p+1
1421
1406
  begin
@@ -1429,25 +1414,25 @@ te = p+1
1429
1414
 
1430
1415
  end
1431
1416
  end
1432
- when 73 then
1433
- # line 254 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1417
+ when 76 then
1418
+ # line 260 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1434
1419
  begin
1435
1420
  te = p+1
1436
1421
  begin
1437
1422
  p = p - 1;
1438
- cs = 129;
1423
+ cs = 130;
1439
1424
  begin
1440
1425
  stack[top] = cs
1441
1426
  top+= 1
1442
- cs = 137
1427
+ cs = 138
1443
1428
  _goto_level = _again
1444
1429
  next
1445
1430
  end
1446
1431
 
1447
1432
  end
1448
1433
  end
1449
- when 79 then
1450
- # line 265 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1434
+ when 82 then
1435
+ # line 271 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1451
1436
  begin
1452
1437
  te = p+1
1453
1438
  begin
@@ -1462,8 +1447,8 @@ te = p+1
1462
1447
 
1463
1448
  end
1464
1449
  end
1465
- when 85 then
1466
- # line 271 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1450
+ when 88 then
1451
+ # line 277 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1467
1452
  begin
1468
1453
  te = p+1
1469
1454
  begin
@@ -1477,8 +1462,8 @@ te = p+1
1477
1462
 
1478
1463
  end
1479
1464
  end
1480
- when 76 then
1481
- # line 276 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1465
+ when 79 then
1466
+ # line 282 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1482
1467
  begin
1483
1468
  te = p+1
1484
1469
  begin
@@ -1508,8 +1493,8 @@ te = p+1
1508
1493
 
1509
1494
  end
1510
1495
  end
1511
- when 82 then
1512
- # line 297 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1496
+ when 85 then
1497
+ # line 303 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1513
1498
  begin
1514
1499
  te = p+1
1515
1500
  begin
@@ -1534,8 +1519,8 @@ te = p+1
1534
1519
 
1535
1520
  end
1536
1521
  end
1537
- when 28 then
1538
- # line 313 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1522
+ when 27 then
1523
+ # line 319 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1539
1524
  begin
1540
1525
  te = p+1
1541
1526
  begin
@@ -1554,8 +1539,8 @@ te = p+1
1554
1539
 
1555
1540
  end
1556
1541
  end
1557
- when 92 then
1558
- # line 323 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1542
+ when 95 then
1543
+ # line 329 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1559
1544
  begin
1560
1545
  te = p+1
1561
1546
  begin
@@ -1569,8 +1554,8 @@ te = p+1
1569
1554
 
1570
1555
  end
1571
1556
  end
1572
- when 24 then
1573
- # line 332 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1557
+ when 23 then
1558
+ # line 338 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1574
1559
  begin
1575
1560
  te = p+1
1576
1561
  begin
@@ -1584,8 +1569,8 @@ te = p+1
1584
1569
 
1585
1570
  end
1586
1571
  end
1587
- when 26 then
1588
- # line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1572
+ when 25 then
1573
+ # line 343 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1589
1574
  begin
1590
1575
  te = p+1
1591
1576
  begin
@@ -1599,42 +1584,42 @@ te = p+1
1599
1584
 
1600
1585
  end
1601
1586
  end
1602
- when 80 then
1603
- # line 342 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1587
+ when 83 then
1588
+ # line 348 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1604
1589
  begin
1605
1590
  te = p+1
1606
1591
  begin
1607
1592
  p = p - 1;
1608
- cs = ((in_set? ? 129 : 110));
1593
+ cs = ((in_set? ? 130 : 110));
1609
1594
  begin
1610
1595
  stack[top] = cs
1611
1596
  top+= 1
1612
- cs = 127
1597
+ cs = 128
1613
1598
  _goto_level = _again
1614
1599
  next
1615
1600
  end
1616
1601
 
1617
1602
  end
1618
1603
  end
1619
- when 81 then
1620
- # line 348 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1604
+ when 84 then
1605
+ # line 354 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1621
1606
  begin
1622
1607
  te = p+1
1623
1608
  begin
1624
1609
  p = p - 1;
1625
- cs = ((in_set? ? 129 : 110));
1610
+ cs = ((in_set? ? 130 : 110));
1626
1611
  begin
1627
1612
  stack[top] = cs
1628
1613
  top+= 1
1629
- cs = 128
1614
+ cs = 129
1630
1615
  _goto_level = _again
1631
1616
  next
1632
1617
  end
1633
1618
 
1634
1619
  end
1635
1620
  end
1636
- when 75 then
1637
- # line 354 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1621
+ when 78 then
1622
+ # line 360 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1638
1623
  begin
1639
1624
  te = p+1
1640
1625
  begin
@@ -1648,8 +1633,8 @@ te = p+1
1648
1633
 
1649
1634
  end
1650
1635
  end
1651
- when 84 then
1652
- # line 271 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1636
+ when 87 then
1637
+ # line 277 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1653
1638
  begin
1654
1639
  te = p
1655
1640
  p = p - 1; begin
@@ -1663,8 +1648,8 @@ p = p - 1; begin
1663
1648
 
1664
1649
  end
1665
1650
  end
1666
- when 91 then
1667
- # line 323 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1651
+ when 94 then
1652
+ # line 329 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1668
1653
  begin
1669
1654
  te = p
1670
1655
  p = p - 1; begin
@@ -1678,8 +1663,8 @@ p = p - 1; begin
1678
1663
 
1679
1664
  end
1680
1665
  end
1681
- when 87 then
1682
- # line 332 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1666
+ when 90 then
1667
+ # line 338 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1683
1668
  begin
1684
1669
  te = p
1685
1670
  p = p - 1; begin
@@ -1693,8 +1678,8 @@ p = p - 1; begin
1693
1678
 
1694
1679
  end
1695
1680
  end
1696
- when 89 then
1697
- # line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1681
+ when 92 then
1682
+ # line 343 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1698
1683
  begin
1699
1684
  te = p
1700
1685
  p = p - 1; begin
@@ -1708,7 +1693,7 @@ p = p - 1; begin
1708
1693
 
1709
1694
  end
1710
1695
  end
1711
- when 83 then
1696
+ when 86 then
1712
1697
  # line 1 "NONE"
1713
1698
  begin
1714
1699
  case act
@@ -1739,8 +1724,8 @@ p = p - 1; begin
1739
1724
  end
1740
1725
  end
1741
1726
  end
1742
- when 31 then
1743
- # line 364 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1727
+ when 30 then
1728
+ # line 370 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1744
1729
  begin
1745
1730
  te = p+1
1746
1731
  begin
@@ -1749,8 +1734,8 @@ te = p+1
1749
1734
  emit(:conditional, :condition_close, ')', te-1, te)
1750
1735
  end
1751
1736
  end
1752
- when 93 then
1753
- # line 370 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1737
+ when 96 then
1738
+ # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1754
1739
  begin
1755
1740
  te = p+1
1756
1741
  begin
@@ -1765,8 +1750,8 @@ te = p+1
1765
1750
 
1766
1751
  end
1767
1752
  end
1768
- when 94 then
1769
- # line 370 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1753
+ when 97 then
1754
+ # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1770
1755
  begin
1771
1756
  te = p
1772
1757
  p = p - 1; begin
@@ -1781,8 +1766,8 @@ p = p - 1; begin
1781
1766
 
1782
1767
  end
1783
1768
  end
1784
- when 30 then
1785
- # line 370 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1769
+ when 29 then
1770
+ # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1786
1771
  begin
1787
1772
  begin p = ((te))-1; end
1788
1773
  begin
@@ -1797,8 +1782,8 @@ p = p - 1; begin
1797
1782
 
1798
1783
  end
1799
1784
  end
1800
- when 38 then
1801
- # line 383 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1785
+ when 36 then
1786
+ # line 389 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1802
1787
  begin
1803
1788
  te = p+1
1804
1789
  begin
@@ -1806,7 +1791,7 @@ te = p+1
1806
1791
  end
1807
1792
  end
1808
1793
  when 41 then
1809
- # line 387 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1794
+ # line 393 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1810
1795
  begin
1811
1796
  te = p+1
1812
1797
  begin
@@ -1818,31 +1803,31 @@ te = p+1
1818
1803
  end
1819
1804
  end
1820
1805
  when 40 then
1821
- # line 397 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1806
+ # line 403 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1822
1807
  begin
1823
1808
  te = p+1
1824
1809
  begin
1825
1810
  emit(:anchor, :bol, *text(data, ts, te))
1826
1811
  end
1827
1812
  end
1828
- when 35 then
1829
- # line 401 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1813
+ when 33 then
1814
+ # line 407 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1830
1815
  begin
1831
1816
  te = p+1
1832
1817
  begin
1833
1818
  emit(:anchor, :eol, *text(data, ts, te))
1834
1819
  end
1835
1820
  end
1836
- when 57 then
1837
- # line 405 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1821
+ when 59 then
1822
+ # line 411 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1838
1823
  begin
1839
1824
  te = p+1
1840
1825
  begin
1841
1826
  emit(:keep, :mark, *text(data, ts, te))
1842
1827
  end
1843
1828
  end
1844
- when 56 then
1845
- # line 409 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1829
+ when 58 then
1830
+ # line 415 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1846
1831
  begin
1847
1832
  te = p+1
1848
1833
  begin
@@ -1856,8 +1841,16 @@ te = p+1
1856
1841
  end
1857
1842
  end
1858
1843
  end
1859
- when 47 then
1860
- # line 431 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1844
+ when 39 then
1845
+ # line 426 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1846
+ begin
1847
+ te = p+1
1848
+ begin
1849
+ append_literal(data, ts, te)
1850
+ end
1851
+ end
1852
+ when 49 then
1853
+ # line 441 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1861
1854
  begin
1862
1855
  te = p+1
1863
1856
  begin
@@ -1870,15 +1863,15 @@ te = p+1
1870
1863
  begin
1871
1864
  stack[top] = cs
1872
1865
  top+= 1
1873
- cs = 148
1866
+ cs = 149
1874
1867
  _goto_level = _again
1875
1868
  next
1876
1869
  end
1877
1870
 
1878
1871
  end
1879
1872
  end
1880
- when 48 then
1881
- # line 462 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1873
+ when 50 then
1874
+ # line 472 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1882
1875
  begin
1883
1876
  te = p+1
1884
1877
  begin
@@ -1889,8 +1882,8 @@ te = p+1
1889
1882
  emit_options(text, ts, te)
1890
1883
  end
1891
1884
  end
1892
- when 9 then
1893
- # line 476 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1885
+ when 7 then
1886
+ # line 486 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1894
1887
  begin
1895
1888
  te = p+1
1896
1889
  begin
@@ -1902,8 +1895,8 @@ te = p+1
1902
1895
  end
1903
1896
  end
1904
1897
  end
1905
- when 8 then
1906
- # line 493 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1898
+ when 6 then
1899
+ # line 503 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1907
1900
  begin
1908
1901
  te = p+1
1909
1902
  begin
@@ -1924,8 +1917,8 @@ te = p+1
1924
1917
  end
1925
1918
  end
1926
1919
  end
1927
- when 11 then
1928
- # line 534 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1920
+ when 9 then
1921
+ # line 544 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1929
1922
  begin
1930
1923
  te = p+1
1931
1924
  begin
@@ -1990,8 +1983,8 @@ te = p+1
1990
1983
  end
1991
1984
  end
1992
1985
  end
1993
- when 54 then
1994
- # line 599 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1986
+ when 56 then
1987
+ # line 609 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1995
1988
  begin
1996
1989
  te = p+1
1997
1990
  begin
@@ -2002,8 +1995,8 @@ te = p+1
2002
1995
  end
2003
1996
  end
2004
1997
  end
2005
- when 50 then
2006
- # line 607 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1998
+ when 52 then
1999
+ # line 617 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2007
2000
  begin
2008
2001
  te = p+1
2009
2002
  begin
@@ -2014,8 +2007,8 @@ te = p+1
2014
2007
  end
2015
2008
  end
2016
2009
  end
2017
- when 52 then
2018
- # line 615 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2010
+ when 54 then
2011
+ # line 625 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2019
2012
  begin
2020
2013
  te = p+1
2021
2014
  begin
@@ -2026,28 +2019,31 @@ te = p+1
2026
2019
  end
2027
2020
  end
2028
2021
  end
2029
- when 59 then
2030
- # line 623 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2022
+ when 62 then
2023
+ # line 633 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2031
2024
  begin
2032
2025
  te = p+1
2033
2026
  begin
2034
2027
  emit(:quantifier, :interval, *text(data, ts, te))
2035
2028
  end
2036
2029
  end
2037
- when 4 then
2038
- # line 633 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2030
+ when 45 then
2031
+ # line 648 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2039
2032
  begin
2040
2033
  te = p+1
2041
2034
  begin
2042
2035
  if free_spacing
2043
2036
  emit(:free_space, :comment, *text(data, ts, te))
2044
2037
  else
2045
- append_literal(data, ts, te)
2038
+ # consume only the pound sign (#) and backtrack to do regular scanning
2039
+ append_literal(data, ts, ts + 1)
2040
+ begin p = (( ts + 1))-1; end
2041
+
2046
2042
  end
2047
2043
  end
2048
2044
  end
2049
- when 46 then
2050
- # line 462 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2045
+ when 48 then
2046
+ # line 472 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2051
2047
  begin
2052
2048
  te = p
2053
2049
  p = p - 1; begin
@@ -2058,8 +2054,8 @@ p = p - 1; begin
2058
2054
  emit_options(text, ts, te)
2059
2055
  end
2060
2056
  end
2061
- when 44 then
2062
- # line 511 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2057
+ when 46 then
2058
+ # line 521 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2063
2059
  begin
2064
2060
  te = p
2065
2061
  p = p - 1; begin
@@ -2067,8 +2063,8 @@ p = p - 1; begin
2067
2063
  emit(:group, :capture, text, ts, te)
2068
2064
  end
2069
2065
  end
2070
- when 53 then
2071
- # line 599 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2066
+ when 55 then
2067
+ # line 609 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2072
2068
  begin
2073
2069
  te = p
2074
2070
  p = p - 1; begin
@@ -2079,8 +2075,8 @@ p = p - 1; begin
2079
2075
  end
2080
2076
  end
2081
2077
  end
2082
- when 49 then
2083
- # line 607 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2078
+ when 51 then
2079
+ # line 617 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2084
2080
  begin
2085
2081
  te = p
2086
2082
  p = p - 1; begin
@@ -2091,8 +2087,8 @@ p = p - 1; begin
2091
2087
  end
2092
2088
  end
2093
2089
  end
2094
- when 51 then
2095
- # line 615 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2090
+ when 53 then
2091
+ # line 625 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2096
2092
  begin
2097
2093
  te = p
2098
2094
  p = p - 1; begin
@@ -2103,31 +2099,54 @@ p = p - 1; begin
2103
2099
  end
2104
2100
  end
2105
2101
  end
2106
- when 58 then
2107
- # line 623 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2102
+ when 61 then
2103
+ # line 633 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2108
2104
  begin
2109
2105
  te = p
2110
2106
  p = p - 1; begin
2111
2107
  emit(:quantifier, :interval, *text(data, ts, te))
2112
2108
  end
2113
2109
  end
2114
- when 55 then
2115
- # line 629 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2110
+ when 60 then
2111
+ # line 638 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2112
+ begin
2113
+ te = p
2114
+ p = p - 1; begin
2115
+ append_literal(data, ts, te)
2116
+ end
2117
+ end
2118
+ when 57 then
2119
+ # line 644 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2116
2120
  begin
2117
2121
  te = p
2118
2122
  p = p - 1; begin
2119
2123
  begin
2120
2124
  stack[top] = cs
2121
2125
  top+= 1
2122
- cs = 137
2126
+ cs = 138
2123
2127
  _goto_level = _again
2124
2128
  next
2125
2129
  end
2126
2130
 
2131
+ end
2132
+ end
2133
+ when 44 then
2134
+ # line 648 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2135
+ begin
2136
+ te = p
2137
+ p = p - 1; begin
2138
+ if free_spacing
2139
+ emit(:free_space, :comment, *text(data, ts, te))
2140
+ else
2141
+ # consume only the pound sign (#) and backtrack to do regular scanning
2142
+ append_literal(data, ts, ts + 1)
2143
+ begin p = (( ts + 1))-1; end
2144
+
2145
+ end
2127
2146
  end
2128
2147
  end
2129
2148
  when 43 then
2130
- # line 641 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2149
+ # line 658 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2131
2150
  begin
2132
2151
  te = p
2133
2152
  p = p - 1; begin
@@ -2139,15 +2158,15 @@ p = p - 1; begin
2139
2158
  end
2140
2159
  end
2141
2160
  when 42 then
2142
- # line 656 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2161
+ # line 673 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2143
2162
  begin
2144
2163
  te = p
2145
2164
  p = p - 1; begin
2146
2165
  append_literal(data, ts, te)
2147
2166
  end
2148
2167
  end
2149
- when 5 then
2150
- # line 462 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2168
+ when 3 then
2169
+ # line 472 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2151
2170
  begin
2152
2171
  begin p = ((te))-1; end
2153
2172
  begin
@@ -2159,26 +2178,26 @@ p = p - 1; begin
2159
2178
  end
2160
2179
  end
2161
2180
  when 10 then
2162
- # line 629 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2181
+ # line 638 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2182
+ begin
2183
+ begin p = ((te))-1; end
2184
+ begin
2185
+ append_literal(data, ts, te)
2186
+ end
2187
+ end
2188
+ when 8 then
2189
+ # line 644 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2163
2190
  begin
2164
2191
  begin p = ((te))-1; end
2165
2192
  begin
2166
2193
  begin
2167
2194
  stack[top] = cs
2168
2195
  top+= 1
2169
- cs = 137
2196
+ cs = 138
2170
2197
  _goto_level = _again
2171
2198
  next
2172
2199
  end
2173
2200
 
2174
- end
2175
- end
2176
- when 3 then
2177
- # line 656 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2178
- begin
2179
- begin p = ((te))-1; end
2180
- begin
2181
- append_literal(data, ts, te)
2182
2201
  end
2183
2202
  end
2184
2203
  when 1 then
@@ -2192,21 +2211,21 @@ p = p - 1; begin
2192
2211
  next
2193
2212
  end
2194
2213
  end
2195
- when 54 then
2214
+ when 56 then
2196
2215
  begin begin p = ((te))-1; end
2197
2216
 
2198
2217
  append_literal(data, ts, te)
2199
2218
  end
2200
2219
  end
2201
2220
  end
2202
- when 71 then
2203
- # line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2221
+ when 74 then
2222
+ # line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2204
2223
  begin
2205
2224
 
2206
2225
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
2207
2226
  raise PrematureEndError.new( text )
2208
2227
  end
2209
- # line 205 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2228
+ # line 211 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2210
2229
  begin
2211
2230
  te = p
2212
2231
  p = p - 1; begin
@@ -2214,21 +2233,21 @@ p = p - 1; begin
2214
2233
  begin
2215
2234
  stack[top] = cs
2216
2235
  top+= 1
2217
- cs = 129
2236
+ cs = 130
2218
2237
  _goto_level = _again
2219
2238
  next
2220
2239
  end
2221
2240
 
2222
2241
  end
2223
2242
  end
2224
- when 19 then
2225
- # line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2243
+ when 17 then
2244
+ # line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2226
2245
  begin
2227
2246
 
2228
2247
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
2229
2248
  raise PrematureEndError.new( text )
2230
2249
  end
2231
- # line 205 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2250
+ # line 211 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2232
2251
  begin
2233
2252
  begin p = ((te))-1; end
2234
2253
  begin
@@ -2236,21 +2255,21 @@ p = p - 1; begin
2236
2255
  begin
2237
2256
  stack[top] = cs
2238
2257
  top+= 1
2239
- cs = 129
2258
+ cs = 130
2240
2259
  _goto_level = _again
2241
2260
  next
2242
2261
  end
2243
2262
 
2244
2263
  end
2245
2264
  end
2246
- when 90 then
2247
- # line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2265
+ when 93 then
2266
+ # line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2248
2267
  begin
2249
2268
 
2250
2269
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
2251
2270
  raise PrematureEndError.new( text )
2252
2271
  end
2253
- # line 323 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2272
+ # line 329 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2254
2273
  begin
2255
2274
  te = p
2256
2275
  p = p - 1; begin
@@ -2264,14 +2283,14 @@ p = p - 1; begin
2264
2283
 
2265
2284
  end
2266
2285
  end
2267
- when 86 then
2268
- # line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2286
+ when 89 then
2287
+ # line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2269
2288
  begin
2270
2289
 
2271
2290
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
2272
2291
  raise PrematureEndError.new( text )
2273
2292
  end
2274
- # line 332 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2293
+ # line 338 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2275
2294
  begin
2276
2295
  te = p
2277
2296
  p = p - 1; begin
@@ -2285,14 +2304,14 @@ p = p - 1; begin
2285
2304
 
2286
2305
  end
2287
2306
  end
2288
- when 88 then
2289
- # line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2307
+ when 91 then
2308
+ # line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2290
2309
  begin
2291
2310
 
2292
2311
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
2293
2312
  raise PrematureEndError.new( text )
2294
2313
  end
2295
- # line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2314
+ # line 343 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2296
2315
  begin
2297
2316
  te = p
2298
2317
  p = p - 1; begin
@@ -2306,14 +2325,14 @@ p = p - 1; begin
2306
2325
 
2307
2326
  end
2308
2327
  end
2309
- when 25 then
2310
- # line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2328
+ when 24 then
2329
+ # line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2311
2330
  begin
2312
2331
 
2313
2332
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
2314
2333
  raise PrematureEndError.new( text )
2315
2334
  end
2316
- # line 332 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2335
+ # line 338 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2317
2336
  begin
2318
2337
  begin p = ((te))-1; end
2319
2338
  begin
@@ -2327,14 +2346,14 @@ p = p - 1; begin
2327
2346
 
2328
2347
  end
2329
2348
  end
2330
- when 27 then
2331
- # line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2349
+ when 26 then
2350
+ # line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2332
2351
  begin
2333
2352
 
2334
2353
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
2335
2354
  raise PrematureEndError.new( text )
2336
2355
  end
2337
- # line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2356
+ # line 343 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2338
2357
  begin
2339
2358
  begin p = ((te))-1; end
2340
2359
  begin
@@ -2348,14 +2367,14 @@ p = p - 1; begin
2348
2367
 
2349
2368
  end
2350
2369
  end
2351
- when 29 then
2352
- # line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2370
+ when 28 then
2371
+ # line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2353
2372
  begin
2354
2373
 
2355
2374
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
2356
2375
  validation_error(:sequence, 'sequence', text)
2357
2376
  end
2358
- # line 328 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2377
+ # line 334 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2359
2378
  begin
2360
2379
  te = p+1
2361
2380
  begin
@@ -2368,22 +2387,22 @@ te = p+1
2368
2387
 
2369
2388
  end
2370
2389
  end
2371
- when 7 then
2372
- # line 144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2390
+ when 5 then
2391
+ # line 150 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2373
2392
  begin
2374
2393
  self.group_depth = group_depth - 1 end
2375
- # line 447 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2394
+ # line 457 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2376
2395
  begin
2377
2396
  te = p+1
2378
2397
  begin
2379
2398
  emit(:group, :comment, *text(data, ts, te))
2380
2399
  end
2381
2400
  end
2382
- when 37 then
2383
- # line 144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2401
+ when 35 then
2402
+ # line 150 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2384
2403
  begin
2385
2404
  self.group_depth = group_depth - 1 end
2386
- # line 516 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2405
+ # line 526 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2387
2406
  begin
2388
2407
  te = p+1
2389
2408
  begin
@@ -2401,11 +2420,11 @@ te = p+1
2401
2420
  end
2402
2421
  end
2403
2422
  end
2404
- when 39 then
2405
- # line 145 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2423
+ when 37 then
2424
+ # line 151 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2406
2425
  begin
2407
2426
  self.set_depth = set_depth + 1 end
2408
- # line 422 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2427
+ # line 432 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2409
2428
  begin
2410
2429
  te = p+1
2411
2430
  begin
@@ -2413,18 +2432,18 @@ te = p+1
2413
2432
  begin
2414
2433
  stack[top] = cs
2415
2434
  top+= 1
2416
- cs = 129
2435
+ cs = 130
2417
2436
  _goto_level = _again
2418
2437
  next
2419
2438
  end
2420
2439
 
2421
2440
  end
2422
2441
  end
2423
- when 65 then
2424
- # line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2442
+ when 68 then
2443
+ # line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2425
2444
  begin
2426
2445
  self.set_depth = set_depth - 1 end
2427
- # line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2446
+ # line 158 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2428
2447
  begin
2429
2448
  te = p+1
2430
2449
  begin
@@ -2447,11 +2466,11 @@ te = p+1
2447
2466
  end
2448
2467
  end
2449
2468
  end
2450
- when 70 then
2451
- # line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2469
+ when 73 then
2470
+ # line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2452
2471
  begin
2453
2472
  self.set_depth = set_depth - 1 end
2454
- # line 161 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2473
+ # line 167 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2455
2474
  begin
2456
2475
  te = p+1
2457
2476
  begin # special case, emits two tokens
@@ -2475,11 +2494,11 @@ te = p+1
2475
2494
  end
2476
2495
  end
2477
2496
  end
2478
- when 22 then
2479
- # line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2497
+ when 20 then
2498
+ # line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2480
2499
  begin
2481
2500
  self.set_depth = set_depth - 1 end
2482
- # line 210 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2501
+ # line 216 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2483
2502
  begin
2484
2503
  te = p+1
2485
2504
  begin
@@ -2495,50 +2514,50 @@ te = p+1
2495
2514
  emit(type, class_name.to_sym, text, ts, te)
2496
2515
  end
2497
2516
  end
2498
- when 21 then
2499
- # line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2517
+ when 19 then
2518
+ # line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2500
2519
  begin
2501
2520
  self.set_depth = set_depth - 1 end
2502
- # line 223 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2521
+ # line 229 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2503
2522
  begin
2504
2523
  te = p+1
2505
2524
  begin
2506
2525
  emit(:set, :collation, *text(data, ts, te))
2507
2526
  end
2508
2527
  end
2509
- when 23 then
2510
- # line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2528
+ when 21 then
2529
+ # line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2511
2530
  begin
2512
2531
  self.set_depth = set_depth - 1 end
2513
- # line 227 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2532
+ # line 233 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2514
2533
  begin
2515
2534
  te = p+1
2516
2535
  begin
2517
2536
  emit(:set, :equivalent, *text(data, ts, te))
2518
2537
  end
2519
2538
  end
2520
- when 63 then
2539
+ when 66 then
2521
2540
  # line 1 "NONE"
2522
2541
  begin
2523
2542
  te = p+1
2524
2543
  end
2525
- # line 145 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2544
+ # line 151 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2526
2545
  begin
2527
2546
  self.set_depth = set_depth + 1 end
2528
- when 78 then
2547
+ when 81 then
2529
2548
  # line 1 "NONE"
2530
2549
  begin
2531
2550
  te = p+1
2532
2551
  end
2533
- # line 265 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2552
+ # line 271 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2534
2553
  begin
2535
2554
  act = 18; end
2536
- when 77 then
2555
+ when 80 then
2537
2556
  # line 1 "NONE"
2538
2557
  begin
2539
2558
  te = p+1
2540
2559
  end
2541
- # line 271 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2560
+ # line 277 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2542
2561
  begin
2543
2562
  act = 19; end
2544
2563
  when 2 then
@@ -2546,31 +2565,31 @@ act = 19; end
2546
2565
  begin
2547
2566
  te = p+1
2548
2567
  end
2549
- # line 656 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2568
+ # line 673 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2550
2569
  begin
2551
- act = 54; end
2552
- when 45 then
2570
+ act = 56; end
2571
+ when 47 then
2553
2572
  # line 1 "NONE"
2554
2573
  begin
2555
2574
  te = p+1
2556
2575
  end
2557
- # line 144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2576
+ # line 150 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2558
2577
  begin
2559
2578
  self.group_depth = group_depth - 1 end
2560
- # line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2579
+ # line 149 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2561
2580
  begin
2562
2581
  self.group_depth = group_depth + 1 end
2563
- # line 2563 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2582
+ # line 2582 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2564
2583
  end
2565
2584
  end
2566
2585
  end
2567
2586
  if _goto_level <= _again
2568
2587
  case _re_scanner_to_state_actions[cs]
2569
- when 60 then
2588
+ when 63 then
2570
2589
  # line 1 "NONE"
2571
2590
  begin
2572
2591
  ts = nil; end
2573
- when 32 then
2592
+ when 31 then
2574
2593
  # line 1 "NONE"
2575
2594
  begin
2576
2595
  ts = nil; end
@@ -2578,7 +2597,7 @@ ts = nil; end
2578
2597
  begin
2579
2598
  act = 0
2580
2599
  end
2581
- # line 2581 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2600
+ # line 2600 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2582
2601
  end
2583
2602
 
2584
2603
  if cs == 0
@@ -2599,20 +2618,20 @@ act = 0
2599
2618
  next;
2600
2619
  end
2601
2620
  case _re_scanner_eof_actions[cs]
2602
- when 13 then
2621
+ when 11 then
2603
2622
  # line 8 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
2604
2623
  begin
2605
2624
 
2606
2625
  raise PrematureEndError.new('unicode property')
2607
2626
  end
2608
- when 12 then
2609
- # line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2627
+ when 22 then
2628
+ # line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2610
2629
  begin
2611
2630
 
2612
2631
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
2613
2632
  raise PrematureEndError.new( text )
2614
2633
  end
2615
- # line 2615 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2634
+ # line 2634 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2616
2635
  end
2617
2636
  end
2618
2637
 
@@ -2623,7 +2642,7 @@ act = 0
2623
2642
  end
2624
2643
  end
2625
2644
 
2626
- # line 755 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2645
+ # line 767 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2627
2646
 
2628
2647
  # to avoid "warning: assigned but unused variable - testEof"
2629
2648
  testEof = testEof
@@ -2674,6 +2693,18 @@ end
2674
2693
  attr_accessor :tokens, :literal, :block, :free_spacing, :spacing_stack,
2675
2694
  :group_depth, :set_depth, :conditional_stack
2676
2695
 
2696
+ def free_spacing?(input_object, options)
2697
+ if options && !input_object.is_a?(String)
2698
+ raise ArgumentError, 'options cannot be supplied unless scanning a String'
2699
+ end
2700
+
2701
+ options = input_object.options if input_object.is_a?(::Regexp)
2702
+
2703
+ return false unless options
2704
+
2705
+ options & Regexp::EXTENDED != 0
2706
+ end
2707
+
2677
2708
  def in_group?
2678
2709
  group_depth > 0
2679
2710
  end