From 01d31e291dca026945fd47f30250c1ee115fe0b8 Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 1 Feb 2019 18:24:48 -0800 Subject: [PATCH] Merge all unmerged "libphutil" changes into Aracnist "wilds" branch Ref T13098. --- src/__phutil_library_map__.php | 11 + .../connection/AphrontDatabaseConnection.php | 23 +- .../AphrontIsolatedDatabaseConnection.php | 9 +- .../AphrontBaseMySQLDatabaseConnection.php | 15 +- .../mysql/AphrontMySQLiDatabaseConnection.php | 36 +- src/auth/PhutilGoogleAuthAdapter.php | 92 +- src/filesystem/Filesystem.php | 50 + .../__tests__/FilesystemTestCase.php | 38 + src/future/exec/ExecFuture.php | 13 +- src/future/http/BaseHTTPFuture.php | 2 +- src/future/http/HTTPFuture.php | 4 +- src/future/http/HTTPSFuture.php | 2 +- src/future/postmark/PhutilPostmarkFuture.php | 15 + src/lexer/PhutilJavaFragmentLexer.php | 2 +- .../PhutilRemarkupTestInterpreterRule.php | 2 +- .../PhutilPygmentsSyntaxHighlighter.php | 15 +- src/parser/PhutilURI.php | 2 +- .../PhutilArgumentSpellingCorrector.php | 23 + .../__tests__/data/anonymous_class.php.test | 599 +++ src/parser/xhpast/bin/PhutilXHPASTBinary.php | 2 +- src/utils/__tests__/PhutilUtilsTestCase.php | 49 +- src/utils/utils.php | 73 +- src/xsprintf/AphrontDatabaseTableRef.php | 23 + .../AphrontDatabaseTableRefInterface.php | 8 + src/xsprintf/PhutilQueryString.php | 39 + src/xsprintf/qsprintf.php | 226 +- src/xsprintf/queryfx.php | 2 +- support/xhpast/parser.y | 15 + support/xhpast/parser.yacc.cpp | 3844 +++++++++-------- support/xhpast/scanner.lex.cpp | 1152 +++-- support/xhpast/scanner.lex.hpp | 485 ++- support/xhpast/xhpast.cpp | 2 +- 32 files changed, 4318 insertions(+), 2555 deletions(-) create mode 100644 src/parser/xhpast/__tests__/data/anonymous_class.php.test create mode 100644 src/xsprintf/AphrontDatabaseTableRef.php create mode 100644 src/xsprintf/AphrontDatabaseTableRefInterface.php create mode 100644 src/xsprintf/PhutilQueryString.php diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 7538e224..1c2ab5f1 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -22,6 +22,8 @@ phutil_register_library_map(array( 'AphrontConnectionQueryException' => 'aphront/storage/exception/AphrontConnectionQueryException.php', 'AphrontCountQueryException' => 'aphront/storage/exception/AphrontCountQueryException.php', 'AphrontDatabaseConnection' => 'aphront/storage/connection/AphrontDatabaseConnection.php', + 'AphrontDatabaseTableRef' => 'xsprintf/AphrontDatabaseTableRef.php', + 'AphrontDatabaseTableRefInterface' => 'xsprintf/AphrontDatabaseTableRefInterface.php', 'AphrontDatabaseTransactionState' => 'aphront/storage/connection/AphrontDatabaseTransactionState.php', 'AphrontDeadlockQueryException' => 'aphront/storage/exception/AphrontDeadlockQueryException.php', 'AphrontDuplicateKeyQueryException' => 'aphront/storage/exception/AphrontDuplicateKeyQueryException.php', @@ -793,6 +795,7 @@ phutil_register_library_map(array( 'PhutilPygmentsSyntaxHighlighter' => 'markup/syntax/highlighter/PhutilPygmentsSyntaxHighlighter.php', 'PhutilPythonFragmentLexer' => 'lexer/PhutilPythonFragmentLexer.php', 'PhutilQsprintfInterface' => 'xsprintf/PhutilQsprintfInterface.php', + 'PhutilQueryString' => 'xsprintf/PhutilQueryString.php', 'PhutilQueryStringParser' => 'parser/PhutilQueryStringParser.php', 'PhutilQueryStringParserTestCase' => 'parser/__tests__/PhutilQueryStringParserTestCase.php', 'PhutilRainbowSyntaxHighlighter' => 'markup/syntax/highlighter/PhutilRainbowSyntaxHighlighter.php', @@ -955,6 +958,7 @@ phutil_register_library_map(array( 'nonempty' => 'utils/utils.php', 'phlog' => 'error/phlog.php', 'pht' => 'internationalization/pht.php', + 'phutil_build_http_querystring' => 'utils/utils.php', 'phutil_censor_credentials' => 'utils/utils.php', 'phutil_console_confirm' => 'console/format.php', 'phutil_console_format' => 'console/format.php', @@ -965,6 +969,7 @@ phutil_register_library_map(array( 'phutil_console_wrap' => 'console/format.php', 'phutil_count' => 'internationalization/pht.php', 'phutil_date_format' => 'utils/viewutils.php', + 'phutil_decode_mime_header' => 'utils/utils.php', 'phutil_deprecated' => 'moduleutils/moduleutils.php', 'phutil_error_listener_example' => 'error/phlog.php', 'phutil_escape_html' => 'markup/render.php', @@ -996,6 +1001,7 @@ phutil_register_library_map(array( 'phutil_json_encode' => 'utils/utils.php', 'phutil_load_library' => 'moduleutils/core.php', 'phutil_loggable_string' => 'utils/utils.php', + 'phutil_microseconds_since' => 'utils/utils.php', 'phutil_parse_bytes' => 'utils/viewutils.php', 'phutil_passthru' => 'future/exec/execx.php', 'phutil_person' => 'internationalization/pht.php', @@ -1075,6 +1081,10 @@ phutil_register_library_map(array( 'Phobject', 'PhutilQsprintfInterface', ), + 'AphrontDatabaseTableRef' => array( + 'Phobject', + 'AphrontDatabaseTableRefInterface', + ), 'AphrontDatabaseTransactionState' => 'Phobject', 'AphrontDeadlockQueryException' => 'AphrontRecoverableQueryException', 'AphrontDuplicateKeyQueryException' => 'AphrontQueryException', @@ -1869,6 +1879,7 @@ phutil_register_library_map(array( 'PhutilPygmentizeParserTestCase' => 'PhutilTestCase', 'PhutilPygmentsSyntaxHighlighter' => 'Phobject', 'PhutilPythonFragmentLexer' => 'PhutilLexer', + 'PhutilQueryString' => 'Phobject', 'PhutilQueryStringParser' => 'Phobject', 'PhutilQueryStringParserTestCase' => 'PhutilTestCase', 'PhutilRainbowSyntaxHighlighter' => 'Phobject', diff --git a/src/aphront/storage/connection/AphrontDatabaseConnection.php b/src/aphront/storage/connection/AphrontDatabaseConnection.php index 49dfb662..b3bd2c82 100644 --- a/src/aphront/storage/connection/AphrontDatabaseConnection.php +++ b/src/aphront/storage/connection/AphrontDatabaseConnection.php @@ -17,7 +17,7 @@ abstract class AphrontDatabaseConnection abstract public function getInsertID(); abstract public function getAffectedRows(); abstract public function selectAllResults(); - abstract public function executeRawQuery($raw_query); + abstract public function executeQuery(PhutilQueryString $query); abstract public function executeRawQueries(array $raw_queries); abstract public function close(); abstract public function openConnection(); @@ -93,6 +93,27 @@ abstract class AphrontDatabaseConnection throw new Exception(pht('Async queries are not supported.')); } + /** + * Is this connection idle and safe to close? + * + * A connection is "idle" if it can be safely closed without loss of state. + * Connections inside a transaction or holding locks are not idle, even + * though they may not actively be executing queries. + * + * @return bool True if the connection is idle and can be safely closed. + */ + public function isIdle() { + if ($this->isInsideTransaction()) { + return false; + } + + if ($this->isHoldingAnyLock()) { + return false; + } + + return true; + } + /* -( Global Locks )------------------------------------------------------- */ diff --git a/src/aphront/storage/connection/AphrontIsolatedDatabaseConnection.php b/src/aphront/storage/connection/AphrontIsolatedDatabaseConnection.php index d44ca14d..9638b6f0 100644 --- a/src/aphront/storage/connection/AphrontIsolatedDatabaseConnection.php +++ b/src/aphront/storage/connection/AphrontIsolatedDatabaseConnection.php @@ -66,12 +66,15 @@ final class AphrontIsolatedDatabaseConnection return $this->allResults; } - public function executeRawQuery($raw_query) { + public function executeQuery(PhutilQueryString $query) { // NOTE: "[\s<>K]*" allows any number of (properly escaped) comments to // appear prior to the allowed keyword, since this connection escapes // them as "" (above). + $display_query = $query->getMaskedString(); + $raw_query = $query->getUnmaskedString(); + $keywords = array( 'INSERT', 'UPDATE', @@ -94,10 +97,10 @@ final class AphrontIsolatedDatabaseConnection "trying to issue a query which does not begin with an allowed ". "keyword (%s): '%s'.", implode(', ', $keywords), - $raw_query)); + $display_query)); } - $this->transcript[] = $raw_query; + $this->transcript[] = $display_query; // NOTE: This method is intentionally simplified for now, since we're only // using it to stub out inserts/updates. In the future it will probably need diff --git a/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php b/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php index 0806615d..c1d0640f 100644 --- a/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php +++ b/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php @@ -152,7 +152,10 @@ abstract class AphrontBaseMySQLDatabaseConnection return $result; } - public function executeRawQuery($raw_query) { + public function executeQuery(PhutilQueryString $query) { + $display_query = $query->getMaskedString(); + $raw_query = $query->getUnmaskedString(); + $this->lastResult = null; $retries = max(1, $this->getConfiguration('retries', 3)); while ($retries--) { @@ -165,7 +168,7 @@ abstract class AphrontBaseMySQLDatabaseConnection array( 'type' => 'query', 'config' => $this->configuration, - 'query' => $raw_query, + 'query' => $display_query, 'write' => $is_write, )); @@ -297,10 +300,10 @@ abstract class AphrontBaseMySQLDatabaseConnection throw new AphrontConnectionLostQueryException($message); case 2006: // Gone Away $more = pht( - "This error may occur if your MySQL '%s' or '%s' ". - "configuration values are set too low.", - 'wait_timeout', - 'max_allowed_packet'); + 'This error may occur if your configured MySQL "wait_timeout" or '. + '"max_allowed_packet" values are too small. This may also indicate '. + 'that something used the MySQL "KILL " command to kill '. + 'the connection running the query.'); throw new AphrontConnectionLostQueryException("{$message}\n\n{$more}"); case 1213: // Deadlock throw new AphrontDeadlockQueryException($message); diff --git a/src/aphront/storage/connection/mysql/AphrontMySQLiDatabaseConnection.php b/src/aphront/storage/connection/mysql/AphrontMySQLiDatabaseConnection.php index 6f1482f4..7a4b5193 100644 --- a/src/aphront/storage/connection/mysql/AphrontMySQLiDatabaseConnection.php +++ b/src/aphront/storage/connection/mysql/AphrontMySQLiDatabaseConnection.php @@ -81,6 +81,11 @@ final class AphrontMySQLiDatabaseConnection $this->throwConnectionException($errno, $error, $user, $host); } + // See T13238. Attempt to prevent "LOAD DATA LOCAL INFILE", which allows a + // malicious server to ask the client for any file. At time of writing, + // this option MUST be set after "real_connect()" on all PHP versions. + $conn->options(MYSQLI_OPT_LOCAL_INFILE, 0); + $this->connectionOpen = true; $ok = @$conn->set_charset('utf8mb4'); @@ -122,7 +127,36 @@ final class AphrontMySQLiDatabaseConnection return @$conn->reap_async_query(); } - return @$conn->query($raw_query); + $trap = new PhutilErrorTrap(); + + $result = @$conn->query($raw_query); + + $err = $trap->getErrorsAsString(); + $trap->destroy(); + + // See T13238 and PHI1014. Sometimes, the call to "$conn->query()" may fail + // without setting an error code on the connection. One way to reproduce + // this is to use "LOAD DATA LOCAL INFILE" with "mysqli.allow_local_infile" + // disabled. + + // If we have no result and no error code, raise a synthetic query error + // with whatever error message was raised as a local PHP warning. + + if (!$result) { + $error_code = $this->getErrorCode($conn); + if (!$error_code) { + if (strlen($err)) { + $message = $err; + } else { + $message = pht( + 'Call to "mysqli->query()" failed, but did not set an error '. + 'code or emit an error message.'); + } + $this->throwQueryCodeException(777777, $message); + } + } + + return $result; } protected function rawQueries(array $raw_queries) { diff --git a/src/auth/PhutilGoogleAuthAdapter.php b/src/auth/PhutilGoogleAuthAdapter.php index 1a739f1e..56e1f0f8 100644 --- a/src/auth/PhutilGoogleAuthAdapter.php +++ b/src/auth/PhutilGoogleAuthAdapter.php @@ -14,21 +14,11 @@ final class PhutilGoogleAuthAdapter extends PhutilOAuthAuthAdapter { } public function getAccountID() { - $emails = $this->getOAuthAccountData('emails', array()); - foreach ($emails as $email) { - if (idx($email, 'type') == 'account') { - return idx($email, 'value'); - } - } - - throw new Exception( - pht( - 'Expected to retrieve an "account" email from Google Plus API call '. - 'to identify account, but failed.')); + return $this->getAccountEmail(); } public function getAccountEmail() { - return $this->getAccountID(); + return $this->getOAuthAccountData('email'); } public function getAccountName() { @@ -40,8 +30,7 @@ final class PhutilGoogleAuthAdapter extends PhutilOAuthAuthAdapter { } public function getAccountImageURI() { - $image = $this->getOAuthAccountData('image', array()); - $uri = idx($image, 'url'); + $uri = $this->getOAuthAccountData('picture'); // Change the "sz" parameter ("size") from the default to 100 to ask for // a 100x100px image. @@ -55,24 +44,11 @@ final class PhutilGoogleAuthAdapter extends PhutilOAuthAuthAdapter { } public function getAccountURI() { - return $this->getOAuthAccountData('url'); + return $this->getOAuthAccountData('link'); } public function getAccountRealName() { - $name = $this->getOAuthAccountData('name', array()); - - // TODO: This could probably be made cleaner by looking up the API, but - // this should work to unbreak logins. - - $parts = array(); - $parts[] = idx($name, 'givenName'); - unset($name['givenName']); - $parts[] = idx($name, 'familyName'); - unset($name['familyName']); - $parts = array_merge($parts, $name); - $parts = array_filter($parts); - - return implode(' ', $parts); + return $this->getOAuthAccountData('name'); } protected function getAuthenticateBaseURI() { @@ -105,77 +81,25 @@ final class PhutilGoogleAuthAdapter extends PhutilOAuthAuthAdapter { } protected function loadOAuthAccountData() { - $uri = new PhutilURI('https://www.googleapis.com/plus/v1/people/me'); + $uri = new PhutilURI('https://www.googleapis.com/userinfo/v2/me'); $uri->setQueryParam('access_token', $this->getAccessToken()); $future = new HTTPSFuture($uri); list($status, $body) = $future->resolve(); if ($status->isError()) { - $this->tryToThrowSpecializedError($status, $body); throw $status; } try { - return phutil_json_decode($body); + $result = phutil_json_decode($body); } catch (PhutilJSONParserException $ex) { throw new PhutilProxyException( pht('Expected valid JSON response from Google account data request.'), $ex); } - } - private function tryToThrowSpecializedError($status, $raw_body) { - if (!($status instanceof HTTPFutureHTTPResponseStatus)) { - return; - } - - if ($status->getStatusCode() != 403) { - return; - } - - $body = phutil_json_decode($raw_body); - if (!$body) { - return; - } - - if (empty($body['error']['errors'][0])) { - return; - } - - $error = $body['error']['errors'][0]; - $domain = idx($error, 'domain'); - $reason = idx($error, 'reason'); - - if ($domain == 'usageLimits' && $reason == 'accessNotConfigured') { - throw new PhutilAuthConfigurationException( - pht( - 'Google returned an "%s" error. This usually means you need to '. - 'enable the "Google+ API" in your Google Cloud Console, under '. - '"APIs".'. - "\n\n". - 'Around March 2014, Google made some API changes which require this '. - 'configuration adjustment.'. - "\n\n". - 'Normally, you can resolve this issue by going to %s, then '. - 'clicking "API Project", then "APIs & auth", then turning the '. - '"Google+ API" on. The names you see on the console may be '. - 'different depending on how your integration is set up. If you '. - 'are not sure, you can hunt through the projects until you find '. - 'the one associated with the right Application ID under '. - '"Credentials". The Application ID this install is using is "%s".'. - "\n\n". - '(If you are unable to log into Phabricator, you can use '. - '"%s" to recover access to an administrator account.)'. - "\n\n". - 'Full HTTP Response'. - "\n\n%s", - 'accessNotConfigured', - 'https://console.developers.google.com/', - $this->getClientID(), - 'bin/auth recover', - $raw_body)); - } + return $result; } } diff --git a/src/filesystem/Filesystem.php b/src/filesystem/Filesystem.php index 2ead4014..f0f09d45 100644 --- a/src/filesystem/Filesystem.php +++ b/src/filesystem/Filesystem.php @@ -535,6 +535,56 @@ final class Filesystem extends Phobject { } + /** + * Generate a random integer value in a given range. + * + * This method uses less-entropic random sources under older versions of PHP. + * + * @param int Minimum value, inclusive. + * @param int Maximum value, inclusive. + */ + public static function readRandomInteger($min, $max) { + if (!is_int($min)) { + throw new Exception(pht('Minimum value must be an integer.')); + } + + if (!is_int($max)) { + throw new Exception(pht('Maximum value must be an integer.')); + } + + if ($min > $max) { + throw new Exception( + pht( + 'Minimum ("%d") must not be greater than maximum ("%d").', + $min, + $max)); + } + + // Under PHP 7.2.0 and newer, we can just use "random_int()". This function + // is intended to generate cryptographically usable entropy. + if (function_exists('random_int')) { + return random_int($min, $max); + } + + // We could find a stronger source for this, but correctly converting raw + // bytes to an integer range without biases is fairly hard and it seems + // like we're more likely to get that wrong than suffer a PRNG prediction + // issue by falling back to "mt_rand()". + + if (($max - $min) > mt_getrandmax()) { + throw new Exception( + pht('mt_rand() range is smaller than the requested range.')); + } + + $result = mt_rand($min, $max); + if (!is_int($result)) { + throw new Exception(pht('Bad return value from mt_rand().')); + } + + return $result; + } + + /** * Identify the MIME type of a file. This returns only the MIME type (like * text/plain), not the encoding (like charset=utf-8). diff --git a/src/filesystem/__tests__/FilesystemTestCase.php b/src/filesystem/__tests__/FilesystemTestCase.php index 10dc1f69..d7fe1893 100644 --- a/src/filesystem/__tests__/FilesystemTestCase.php +++ b/src/filesystem/__tests__/FilesystemTestCase.php @@ -170,4 +170,42 @@ final class FilesystemTestCase extends PhutilTestCase { } } + public function testRandomIntegers() { + $valid_ranges = array( + array(5, 5), + array(-1, 1), + array(0, 10000), + array(0, 999999999), + array(-65535, 65536), + ); + + foreach ($valid_ranges as $case) { + list($min, $max) = $case; + + $result = Filesystem::readRandomInteger($min, $max); + + $this->assertTrue($min <= $result, pht('%d <= %d', $min, $result)); + $this->assertTrue($max >= $result, pht('%d >= %d', $max, $result)); + } + + $invalid_ranges = array( + array('1', '2'), + array(1.0, 2.0), + array(5, 3), + ); + + foreach ($invalid_ranges as $case) { + list($min, $max) = $case; + + $caught = null; + try { + Filesystem::readRandomInteger($min, $max); + } catch (Exception $ex) { + $caught = $ex; + } + + $this->assertTrue($caught instanceof Exception); + } + } + } diff --git a/src/future/exec/ExecFuture.php b/src/future/exec/ExecFuture.php index 98a73bb7..2eb41ebd 100644 --- a/src/future/exec/ExecFuture.php +++ b/src/future/exec/ExecFuture.php @@ -350,8 +350,19 @@ final class ExecFuture extends PhutilExecutableFuture { list($err, $stdout, $stderr) = $this->resolve($timeout); if ($err) { $cmd = $this->command; + + if ($this->getWasKilledByTimeout()) { + // NOTE: The timeout can be a float and PhutilNumber only handles + // integers, so just use "%s" to render it. + $message = pht( + 'Command killed by timeout after running for more than %s seconds.', + $this->terminateTimeout); + } else { + $message = pht('Command failed with error #%d!', $err); + } + throw new CommandException( - pht('Command failed with error #%d!', $err), + $message, $cmd, $err, $stdout, diff --git a/src/future/http/BaseHTTPFuture.php b/src/future/http/BaseHTTPFuture.php index 991e265f..591cf781 100644 --- a/src/future/http/BaseHTTPFuture.php +++ b/src/future/http/BaseHTTPFuture.php @@ -273,7 +273,7 @@ abstract class BaseHTTPFuture extends Future { return strlen($data); } - return strlen(http_build_query($data, '', '&')); + return strlen(phutil_build_http_querystring($data)); } diff --git a/src/future/http/HTTPFuture.php b/src/future/http/HTTPFuture.php index 25ac8b49..bfe5466d 100644 --- a/src/future/http/HTTPFuture.php +++ b/src/future/http/HTTPFuture.php @@ -244,7 +244,7 @@ final class HTTPFuture extends BaseHTTPFuture { if ($this->getMethod() == 'GET') { if (is_array($data)) { - $data = http_build_query($data, '', '&'); + $data = phutil_build_http_querystring($data); if (strpos($uri, '?') !== false) { $uri .= '&'.$data; } else { @@ -254,7 +254,7 @@ final class HTTPFuture extends BaseHTTPFuture { } } else { if (is_array($data)) { - $data = http_build_query($data, '', '&')."\r\n"; + $data = phutil_build_http_querystring($data)."\r\n"; $add_headers[] = array( 'Content-Type', 'application/x-www-form-urlencoded', diff --git a/src/future/http/HTTPSFuture.php b/src/future/http/HTTPSFuture.php index 3161a93b..51e7c2f9 100644 --- a/src/future/http/HTTPSFuture.php +++ b/src/future/http/HTTPSFuture.php @@ -524,7 +524,7 @@ final class HTTPSFuture extends BaseHTTPFuture { // If we don't have any files, just encode the data as a query string, // make sure it's not including any files, and we're good to go. if (is_array($data)) { - $data = http_build_query($data, '', '&'); + $data = phutil_build_http_querystring($data); } $this->checkForDangerousCURLMagic($data, $is_query_string = true); diff --git a/src/future/postmark/PhutilPostmarkFuture.php b/src/future/postmark/PhutilPostmarkFuture.php index 090d8b32..23c21f47 100644 --- a/src/future/postmark/PhutilPostmarkFuture.php +++ b/src/future/postmark/PhutilPostmarkFuture.php @@ -6,6 +6,7 @@ final class PhutilPostmarkFuture extends FutureProxy { private $accessToken; private $method; private $parameters; + private $timeout; public function __construct() { parent::__construct(null); @@ -27,6 +28,15 @@ final class PhutilPostmarkFuture extends FutureProxy { return $this; } + public function setTimeout($timeout) { + $this->timeout = $timeout; + return $this; + } + + public function getTimeout() { + return $this->timeout; + } + protected function getProxiedFuture() { if (!$this->future) { if ($this->accessToken === null) { @@ -49,6 +59,11 @@ final class PhutilPostmarkFuture extends FutureProxy { ->addHeader('Accept', 'application/json') ->addHeader('Content-Type', 'application/json'); + $timeout = $this->getTimeout(); + if ($timeout) { + $future->setTimeout($timeout); + } + $this->future = $future; } diff --git a/src/lexer/PhutilJavaFragmentLexer.php b/src/lexer/PhutilJavaFragmentLexer.php index aff850cc..fbc082e9 100644 --- a/src/lexer/PhutilJavaFragmentLexer.php +++ b/src/lexer/PhutilJavaFragmentLexer.php @@ -81,7 +81,7 @@ final class PhutilJavaFragmentLexer extends PhutilLexer { array('(package|import\\s+static|import)\\b', 'kn', 'import'), array('('.implode('|', $constants).')\\b', 'kc'), array('(class|interface)\\b', 'kd', 'class'), - array('"(\\\\\\\\|\\\\"|[^"]+)*"', 's'), + array('"(\\\\.|[^"\\\\]+)*"', 's'), array("'(\\\\.|[^\\\\]|\\\\u[0-9a-f-A-F]{4})'", 's'), array('([^\\W\\d]|\\$)[\\w$]*:', 'nl'), array('([^\\W\\d]|\\$)[\\w$]*', 'n'), diff --git a/src/markup/engine/remarkup/blockrule/PhutilRemarkupTestInterpreterRule.php b/src/markup/engine/remarkup/blockrule/PhutilRemarkupTestInterpreterRule.php index 7ffc4bb8..ca2b9b5a 100644 --- a/src/markup/engine/remarkup/blockrule/PhutilRemarkupTestInterpreterRule.php +++ b/src/markup/engine/remarkup/blockrule/PhutilRemarkupTestInterpreterRule.php @@ -11,7 +11,7 @@ final class PhutilRemarkupTestInterpreterRule return sprintf( "Content: (%s)\nArgv: (%s)", $content, - http_build_query($argv)); + phutil_build_http_querystring($argv)); } } diff --git a/src/markup/syntax/highlighter/PhutilPygmentsSyntaxHighlighter.php b/src/markup/syntax/highlighter/PhutilPygmentsSyntaxHighlighter.php index 53f77b37..970dac06 100644 --- a/src/markup/syntax/highlighter/PhutilPygmentsSyntaxHighlighter.php +++ b/src/markup/syntax/highlighter/PhutilPygmentsSyntaxHighlighter.php @@ -21,15 +21,28 @@ final class PhutilPygmentsSyntaxHighlighter extends Phobject { if ($language) { $language = $this->getPygmentsLexerNameFromLanguageName($language); + + // See T13224. Under Ubuntu, avoid leaving an intermedite "dash" shell + // process so we hit "pygmentize" directly if we have to SIGKILL this + // because it explodes. + $future = new ExecFuture( - 'pygmentize -O encoding=utf-8 -O stripnl=False -f html -l %s', + 'exec pygmentize -O encoding=utf-8 -O stripnl=False -f html -l %s', $language); + $scrub = false; if ($language == 'php' && strpos($source, 'setTimeout(15); + $future->write($source); + return new PhutilDefaultSyntaxHighlighterEnginePygmentsFuture( $future, $source, diff --git a/src/parser/PhutilURI.php b/src/parser/PhutilURI.php index 351a020c..cfe68b18 100644 --- a/src/parser/PhutilURI.php +++ b/src/parser/PhutilURI.php @@ -174,7 +174,7 @@ final class PhutilURI extends Phobject { } if ($this->query) { - $query = '?'.http_build_query($this->query, '', '&'); + $query = '?'.phutil_build_http_querystring($this->query); } else { $query = null; } diff --git a/src/parser/argument/PhutilArgumentSpellingCorrector.php b/src/parser/argument/PhutilArgumentSpellingCorrector.php index 86525985..dd999123 100644 --- a/src/parser/argument/PhutilArgumentSpellingCorrector.php +++ b/src/parser/argument/PhutilArgumentSpellingCorrector.php @@ -4,6 +4,10 @@ final class PhutilArgumentSpellingCorrector extends Phobject { private $editDistanceMatrix; private $maximumDistance; + private $mode; + + const MODE_COMMANDS = 'commands'; + const MODE_FLAGS = 'flags'; /** * Build a new corrector with parameters for correcting commands, like @@ -31,6 +35,7 @@ final class PhutilArgumentSpellingCorrector extends Phobject { return id(new self()) ->setEditDistanceMatrix($matrix) + ->setMode(self::MODE_COMMANDS) ->setMaximumDistance($max_distance); } @@ -55,9 +60,19 @@ final class PhutilArgumentSpellingCorrector extends Phobject { return id(new self()) ->setEditDistanceMatrix($matrix) + ->setMode(self::MODE_FLAGS) ->setMaximumDistance($max_distance); } + public function setMode($mode) { + $this->mode = $mode; + return $this; + } + + public function getMode() { + return $this->mode; + } + public function setEditDistanceMatrix(PhutilEditDistanceMatrix $matrix) { $this->editDistanceMatrix = $matrix; return $this; @@ -87,6 +102,14 @@ final class PhutilArgumentSpellingCorrector extends Phobject { throw new PhutilInvalidStateException('setMaximumDistance'); } + // If we're correcting commands, never correct an input which begins + // with "-", since this is almost certainly intended to be a flag. + if ($this->getMode() === self::MODE_COMMANDS) { + if (preg_match('/^-/', $input)) { + return array(); + } + } + $input = $this->normalizeString($input); foreach ($options as $key => $option) { $options[$key] = $this->normalizeString($option); diff --git a/src/parser/xhpast/__tests__/data/anonymous_class.php.test b/src/parser/xhpast/__tests__/data/anonymous_class.php.test new file mode 100644 index 00000000..8cbc35a8 --- /dev/null +++ b/src/parser/xhpast/__tests__/data/anonymous_class.php.test @@ -0,0 +1,599 @@ +num = $num; + } +}; +~~~~~~~~~~ +pass +~~~~~~~~~~ +{ + "tree": [ + 9000, + 0, + 64, + [ + [ + 9006, + 0, + 63, + [ + [ + 9007, + 0, + 0 + ], + [ + 9004, + 2, + 12, + [ + [ + 9077, + 2, + 11, + [ + [ + 9047, + 2, + 2 + ], + [ + 9081, + 4, + 4 + ], + [ + 9074, + 6, + 11, + [ + [ + 9051, + 8, + 11, + [ + [ + 0, + 8, + 8 + ], + [ + 9005 + ], + [ + 9005 + ], + [ + 9005 + ], + [ + 9006, + 10, + 11 + ] + ] + ], + [ + 9005 + ] + ] + ] + ] + ] + ] + ], + [ + 9004, + 14, + 63, + [ + [ + 9077, + 14, + 62, + [ + [ + 9047, + 14, + 14 + ], + [ + 9081, + 16, + 16 + ], + [ + 9074, + 18, + 62, + [ + [ + 9051, + 20, + 62, + [ + [ + 0, + 20, + 20 + ], + [ + 9005 + ], + [ + 9054, + 25, + 27, + [ + [ + 9090, + 27, + 27 + ] + ] + ], + [ + 9055, + 29, + 31, + [ + [ + 9090, + 31, + 31 + ] + ] + ], + [ + 9006, + 33, + 62, + [ + [ + 9004, + 35, + 38, + [ + [ + 9063, + 35, + 37, + [ + [ + 9070, + 35, + 35, + [ + [ + 9013, + 35, + 35 + ] + ] + ], + [ + 9064, + 37, + 37, + [ + [ + 9047, + 37, + 37 + ], + [ + 9005 + ] + ] + ] + ] + ] + ] + ], + [ + 9004, + 40, + 60, + [ + [ + 9067, + 40, + 60, + [ + [ + 9068, + 40, + 40, + [ + [ + 9013, + 40, + 40 + ] + ] + ], + [ + 9005 + ], + [ + 9013, + 44, + 44 + ], + [ + 9059, + 45, + 47, + [ + [ + 9060, + 46, + 46, + [ + [ + 9005 + ], + [ + 9047, + 46, + 46 + ], + [ + 9005 + ] + ] + ] + ] + ], + [ + 9005 + ], + [ + 9005 + ], + [ + 9006, + 49, + 60, + [ + [ + 9004, + 51, + 58, + [ + [ + 9077, + 51, + 57, + [ + [ + 9092, + 51, + 53, + [ + [ + 9047, + 51, + 51 + ], + [ + 9013, + 53, + 53 + ] + ] + ], + [ + 9081, + 55, + 55 + ], + [ + 9047, + 57, + 57 + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ], + [ + 9095, + 21, + 23, + [ + [ + 9086, + 22, + 22 + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ], + "stream": [ + [ + 373, + 5 + ], + [ + 377, + 2 + ], + [ + 313, + 2 + ], + [ + 377, + 1 + ], + [ + 61, + 1 + ], + [ + 377, + 1 + ], + [ + 302, + 3 + ], + [ + 377, + 1 + ], + [ + 358, + 5 + ], + [ + 377, + 1 + ], + [ + 123, + 1 + ], + [ + 125, + 1 + ], + [ + 59, + 1 + ], + [ + 377, + 1 + ], + [ + 313, + 2 + ], + [ + 377, + 1 + ], + [ + 61, + 1 + ], + [ + 377, + 1 + ], + [ + 302, + 3 + ], + [ + 377, + 1 + ], + [ + 358, + 5 + ], + [ + 40, + 1 + ], + [ + 309, + 2 + ], + [ + 41, + 1 + ], + [ + 377, + 1 + ], + [ + 360, + 7 + ], + [ + 377, + 1 + ], + [ + 311, + 1 + ], + [ + 377, + 1 + ], + [ + 361, + 10 + ], + [ + 377, + 1 + ], + [ + 311, + 1 + ], + [ + 377, + 1 + ], + [ + 123, + 1 + ], + [ + 377, + 3 + ], + [ + 350, + 7 + ], + [ + 377, + 1 + ], + [ + 313, + 4 + ], + [ + 59, + 1 + ], + [ + 377, + 4 + ], + [ + 352, + 6 + ], + [ + 377, + 1 + ], + [ + 339, + 8 + ], + [ + 377, + 1 + ], + [ + 311, + 11 + ], + [ + 40, + 1 + ], + [ + 313, + 4 + ], + [ + 41, + 1 + ], + [ + 377, + 1 + ], + [ + 123, + 1 + ], + [ + 377, + 5 + ], + [ + 313, + 5 + ], + [ + 362, + 2 + ], + [ + 311, + 3 + ], + [ + 377, + 1 + ], + [ + 61, + 1 + ], + [ + 377, + 1 + ], + [ + 313, + 4 + ], + [ + 59, + 1 + ], + [ + 377, + 3 + ], + [ + 125, + 1 + ], + [ + 377, + 1 + ], + [ + 125, + 1 + ], + [ + 59, + 1 + ], + [ + 377, + 1 + ] + ] +} diff --git a/src/parser/xhpast/bin/PhutilXHPASTBinary.php b/src/parser/xhpast/bin/PhutilXHPASTBinary.php index 3fed4430..ab4a0e04 100644 --- a/src/parser/xhpast/bin/PhutilXHPASTBinary.php +++ b/src/parser/xhpast/bin/PhutilXHPASTBinary.php @@ -8,7 +8,7 @@ final class PhutilXHPASTBinary extends Phobject { * This is the version that would be obtained with an up-to-date XHPAST * build. The //actual// XHPAST build version may vary. */ - const EXPECTED_VERSION = '7.1.2'; + const EXPECTED_VERSION = '7.1.3'; /** * The XHPAST build version. diff --git a/src/utils/__tests__/PhutilUtilsTestCase.php b/src/utils/__tests__/PhutilUtilsTestCase.php index d247420c..9dd20f67 100644 --- a/src/utils/__tests__/PhutilUtilsTestCase.php +++ b/src/utils/__tests__/PhutilUtilsTestCase.php @@ -671,13 +671,9 @@ final class PhutilUtilsTestCase extends PhutilTestCase { phutil_var_export( array('foo' => array('bar' => array('baz' => array()))))); - // Objects - $this->assertEqual( - "stdClass::__set_state(array(\n))", - phutil_var_export(new stdClass())); - $this->assertEqual( - "PhutilTestPhobject::__set_state(array(\n))", - phutil_var_export(new PhutilTestPhobject())); + // NOTE: Object behavior differs across PHP versions. Older versions of + // PHP export objects as "stdClass::__set_state(array())". Newer versions + // of PHP (7.3+) export objects as "(object) array()". } public function testFnmatch() { @@ -883,4 +879,43 @@ final class PhutilUtilsTestCase extends PhutilTestCase { return array_select_keys($map, $keys); } + public function testQueryStringEncoding() { + $expect = array(); + + // As a starting point, we expect every character to encode as an "%XX" + // escaped version. + foreach (range(0, 255) as $byte) { + $c = chr($byte); + $expect[$c] = sprintf('%%%02X', $byte); + } + + // We expect these characters to not be escaped. + $ranges = array( + range('a', 'z'), + range('A', 'Z'), + range('0', '9'), + array('-', '.', '_', '~'), + ); + + foreach ($ranges as $range) { + foreach ($range as $preserve_char) { + $expect[$preserve_char] = $preserve_char; + } + } + + foreach (range(0, 255) as $byte) { + $c = chr($byte); + + $expect_c = $expect[$c]; + $expect_str = "{$expect_c}={$expect_c}"; + + $actual_str = phutil_build_http_querystring(array($c => $c)); + + $this->assertEqual( + $expect_str, + $actual_str, + pht('HTTP querystring for byte "%s".', sprintf('0x%02x', $byte))); + } + } + } diff --git a/src/utils/utils.php b/src/utils/utils.php index 4ee513a5..b49522eb 100644 --- a/src/utils/utils.php +++ b/src/utils/utils.php @@ -1014,7 +1014,19 @@ function phutil_fwrite_nonblocking_stream($stream, $bytes) { $write = array($stream); $except = array(); - @stream_select($read, $write, $except, 0); + $result = @stream_select($read, $write, $except, 0); + if ($result === false) { + // See T13243. If the select is interrupted by a signal, it may return + // "false" indicating an underlying EINTR condition. In this case, the + // results (notably, "$write") are not usable because "stream_select()" + // didn't update them. + + // In this case, treat this stream as blocked and tell the caller to + // retry, since EINTR is the only condition we're currently aware of that + // can cause "fread()" to return "0" and "stream_select()" to return + // "false" on the same stream. + return 0; + } if (!$write) { // The stream isn't writable, so we conclude that it probably really is @@ -1137,6 +1149,29 @@ function phutil_units($description) { } +/** + * Compute the number of microseconds that have elapsed since an earlier + * timestamp (from `microtime(true)`). + * + * @param double Microsecond-precision timestamp, from `microtime(true)`. + * @return int Elapsed microseconds. + */ +function phutil_microseconds_since($timestamp) { + if (!is_float($timestamp)) { + throw new Exception( + pht( + 'Argument to "phutil_microseconds_since(...)" should be a value '. + 'returned from "microtime(true)".')); + } + + $delta = (microtime(true) - $timestamp); + $delta = 1000000 * $delta; + $delta = (int)$delta; + + return $delta; +} + + /** * Decode a JSON dictionary. * @@ -1514,3 +1549,39 @@ function phutil_hashes_are_identical($u, $v) { return ($bits === 0); } + + +/** + * Build a query string from a dictionary. + * + * @param map Dictionary of parameters. + * @return string HTTP query string. + */ +function phutil_build_http_querystring(array $parameters) { + // We want to encode in RFC3986 mode, but "http_build_query()" did not get + // a flag for that mode until PHP 5.4.0. This is equivalent to calling + // "http_build_query()" with the "PHP_QUERY_RFC3986" flag. + + $query = array(); + foreach ($parameters as $key => $value) { + $query[] = rawurlencode($key).'='.rawurlencode($value); + } + $query = implode($query, '&'); + + return $query; +} + +function phutil_decode_mime_header($header) { + if (function_exists('iconv_mime_decode')) { + return iconv_mime_decode($header, 0, 'UTF-8'); + } + + if (function_exists('mb_decode_mimeheader')) { + return mb_decode_mimeheader($header); + } + + throw new Exception( + pht( + 'Unable to decode MIME header: install "iconv" or "mbstring" '. + 'extension.')); +} diff --git a/src/xsprintf/AphrontDatabaseTableRef.php b/src/xsprintf/AphrontDatabaseTableRef.php new file mode 100644 index 00000000..4a4cf986 --- /dev/null +++ b/src/xsprintf/AphrontDatabaseTableRef.php @@ -0,0 +1,23 @@ +database = $database; + $this->table = $table; + } + + public function getAphrontRefDatabaseName() { + return $this->database; + } + + public function getAphrontRefTableName() { + return $this->table; + } + +} diff --git a/src/xsprintf/AphrontDatabaseTableRefInterface.php b/src/xsprintf/AphrontDatabaseTableRefInterface.php new file mode 100644 index 00000000..851cd462 --- /dev/null +++ b/src/xsprintf/AphrontDatabaseTableRefInterface.php @@ -0,0 +1,8 @@ +escaper = $escaper; + $this->argv = $argv; + + // This makes sure we throw immediately if there are errors in the + // parameters. + $this->getMaskedString(); + } + + public function __toString() { + return $this->getMaskedString(); + } + + public function getUnmaskedString() { + return $this->renderString(true); + } + + public function getMaskedString() { + return $this->renderString(false); + } + + private function renderString($unmasked) { + return xsprintf( + 'xsprintf_query', + array( + 'escaper' => $this->escaper, + 'unmasked' => $unmasked, + ), + $this->argv); + } + +} diff --git a/src/xsprintf/qsprintf.php b/src/xsprintf/qsprintf.php index c515c6ee..7b46b34c 100644 --- a/src/xsprintf/qsprintf.php +++ b/src/xsprintf/qsprintf.php @@ -20,23 +20,34 @@ * "List" versions of %d, %s, %f and %B. These are appropriate for use in * an "IN" clause. For example: * - * qsprintf($escaper, 'WHERE hatID IN(%Ld)', $list_of_hats); + * qsprintf($escaper, 'WHERE hatID IN (%Ld)', $list_of_hats); * * %B ("Binary String") * Escapes a string for insertion into a pure binary column, ignoring * tests for characters outside of the basic multilingual plane. * - * %T ("Table") - * Escapes a table name. - * - * %C, %LC - * Escapes a column name or a list of column names. + * %C, %LC, %LK ("Column", "Key Column") + * Escapes a column name or a list of column names. The "%LK" variant + * escapes a list of key column specifications which may look like + * "column(32)". * * %K ("Comment") * Escapes a comment. * - * %Q ("Query Fragment") - * Injects a raw query fragment. Extremely dangerous! Not escaped! + * %Q, %LA, %LO, %LQ, %LJ ("Query Fragment") + * Injects a query fragment from a prior call to qsprintf(). The list + * variants join a list of query fragments with AND, OR, comma, or space. + * + * %Z ("Raw Query") + * Injects a raw, unescaped query fragment. Dangerous! + * + * %R ("Database and Table Reference") + * Behaves like "%T.%T" and prints a full reference to a table including + * the database. Accepts a AphrontDatabaseTableRefInterface. + * + * %P ("Password or Secret") + * Behaves like "%s", but shows "********" when the query is printed in + * logs or traces. Accepts a PhutilOpaqueEnvelope. * * %~ ("Substring") * Escapes a substring query for a LIKE (or NOT LIKE) clause. For example: @@ -57,16 +68,19 @@ * * // Find all rows where `name` ends with $suffix. * qsprintf($escaper, 'WHERE name LIKE %<', $suffix); + * + * %T ("Table") + * Escapes a table name. In most cases, you should use "%R" instead. */ function qsprintf(PhutilQsprintfInterface $escaper, $pattern /* , ... */) { $args = func_get_args(); array_shift($args); - return xsprintf('xsprintf_query', $escaper, $args); + return new PhutilQueryString($escaper, $args); } function vqsprintf(PhutilQsprintfInterface $escaper, $pattern, array $argv) { array_unshift($argv, $pattern); - return xsprintf('xsprintf_query', $escaper, $argv); + return new PhutilQueryString($escaper, $argv); } /** @@ -74,12 +88,19 @@ function vqsprintf(PhutilQsprintfInterface $escaper, $pattern, array $argv) { * @{function:qsprintf}. */ function xsprintf_query($userdata, &$pattern, &$pos, &$value, &$length) { - $type = $pattern[$pos]; - $escaper = $userdata; - $next = (strlen($pattern) > $pos + 1) ? $pattern[$pos + 1] : null; + $type = $pattern[$pos]; + if (is_array($userdata)) { + $escaper = $userdata['escaper']; + $unmasked = $userdata['unmasked']; + } else { + $escaper = $userdata; + $unmasked = false; + } + + $next = (strlen($pattern) > $pos + 1) ? $pattern[$pos + 1] : null; $nullable = false; - $done = false; + $done = false; $prefix = ''; @@ -162,6 +183,73 @@ function xsprintf_query($userdata, &$pattern, &$pos, &$value, &$length) { } $value = implode(', ', $value); break; + case 'K': // ...key columns. + // This is like "%LC", but for escaping column lists passed to key + // specifications. These should be escaped as "`column`(123)". For + // example: + // + // ALTER TABLE `x` ADD KEY `y` (`u`(16), `v`(32)); + + foreach ($value as $k => $v) { + $matches = null; + if (preg_match('/\((\d+)\)\z/', $v, $matches)) { + $v = substr($v, 0, -(strlen($matches[1]) + 2)); + $prefix_len = '('.((int)$matches[1]).')'; + } else { + $prefix_len = ''; + } + + $value[$k] = $escaper->escapeColumnName($v).$prefix_len; + } + + $value = implode(', ', $value); + break; + case 'Q': + // TODO: Here, and in "%LO", "%LA", and "%LJ", we should eventually + // stop accepting strings. + foreach ($value as $k => $v) { + if (is_string($v)) { + continue; + } + $value[$k] = $v->getUnmaskedString(); + } + $value = implode(', ', $value); + break; + case 'O': + foreach ($value as $k => $v) { + if (is_string($v)) { + continue; + } + $value[$k] = $v->getUnmaskedString(); + } + if (count($value) == 1) { + $value = '('.head($value).')'; + } else { + $value = '(('.implode(') OR (', $value).'))'; + } + break; + case 'A': + foreach ($value as $k => $v) { + if (is_string($v)) { + continue; + } + $value[$k] = $v->getUnmaskedString(); + } + if (count($value) == 1) { + $value = '('.head($value).')'; + } else { + $value = '(('.implode(') AND (', $value).'))'; + } + break; + case 'J': + foreach ($value as $k => $v) { + if (is_string($v)) { + continue; + } + $value[$k] = $v->getUnmaskedString(); + } + $value = implode(' ', $value); + break; default: throw new XsprintfUnknownConversionException("%L{$next}"); } @@ -190,6 +278,13 @@ function xsprintf_query($userdata, &$pattern, &$pos, &$value, &$length) { break; case 'Q': // Query Fragment + if ($value instanceof PhutilQueryString) { + $value = $value->getUnmaskedString(); + } + $type = 's'; + break; + + case 'Z': // Raw Query Fragment $type = 's'; break; @@ -234,6 +329,27 @@ function xsprintf_query($userdata, &$pattern, &$pos, &$value, &$length) { $type = 's'; break; + case 'R': // Database + Table Reference + $database_name = $value->getAphrontRefDatabaseName(); + $database_name = $escaper->escapeColumnName($database_name); + + $table_name = $value->getAphrontRefTableName(); + $table_name = $escaper->escapeColumnName($table_name); + + $value = $database_name.'.'.$table_name; + $type = 's'; + break; + + case 'P': // Password or Secret + if ($unmasked) { + $value = $value->openEnvelope(); + $value = "'".$escaper->escapeUTF8String($value)."'"; + } else { + $value = '********'; + } + $type = 's'; + break; + default: throw new XsprintfUnknownConversionException($type); } @@ -242,6 +358,7 @@ function xsprintf_query($userdata, &$pattern, &$pos, &$value, &$length) { if ($prefix) { $value = $prefix.$value; } + $pattern[$pos] = $type; } @@ -250,8 +367,13 @@ function qsprintf_check_type($value, $type, $query) { case 'Ld': case 'Ls': case 'LC': + case 'LK': case 'LB': case 'Lf': + case 'LQ': + case 'LA': + case 'LO': + case 'LJ': if (!is_array($value)) { throw new AphrontParameterQueryException( $query, @@ -275,8 +397,62 @@ function qsprintf_check_type($value, $type, $query) { function qsprintf_check_scalar_type($value, $type, $query) { switch ($type) { + case 'LQ': + case 'LA': + case 'LO': + case 'LJ': + // TODO: See T13217. Remove this eventually. + if (is_string($value)) { + phlog( + pht( + 'UNSAFE: Raw string ("%s") passed to query ("%s") subclause '. + 'for "%%%s" conversion. Subclause conversions should be passed '. + 'a list of PhutilQueryString objects.', + $value, + $query, + $type)); + break; + } + + if (!($value instanceof PhutilQueryString)) { + throw new AphrontParameterQueryException( + $query, + pht( + 'Expected a list of PhutilQueryString objects for %%%s '. + 'conversion.', + $type)); + } + break; + case 'Q': + // TODO: See T13217. Remove this eventually. + if (is_string($value)) { + phlog( + pht( + 'UNSAFE: Raw string ("%s") passed to query ("%s") for "%%Q" '. + 'conversion. %%Q should be passed a query string.', + $value, + $query)); + break; + } + + if (!($value instanceof PhutilQueryString)) { + throw new AphrontParameterQueryException( + $query, + pht('Expected a PhutilQueryString for %%%s conversion.', $type)); + } + break; + + case 'Z': + if (!is_string($value)) { + throw new AphrontParameterQueryException( + $query, + pht('Value for "%%Z" conversion should be a raw string.')); + } + break; + case 'LC': + case 'LK': case 'T': case 'C': if (!is_string($value)) { @@ -312,6 +488,28 @@ function qsprintf_check_scalar_type($value, $type, $query) { } break; + case 'R': + if (!($value instanceof AphrontDatabaseTableRefInterface)) { + throw new AphrontParameterQueryException( + $query, + pht( + 'Parameter to "%s" conversion in "qsprintf(...)" is not an '. + 'instance of AphrontDatabaseTableRefInterface.', + '%R')); + } + break; + + case 'P': + if (!($value instanceof PhutilOpaqueEnvelope)) { + throw new AphrontParameterQueryException( + $query, + pht( + 'Parameter to "%s" conversion in "qsprintf(...)" is not an '. + 'instance of PhutilOpaqueEnvelope.', + '%P')); + } + break; + default: throw new XsprintfUnknownConversionException($type); } diff --git a/src/xsprintf/queryfx.php b/src/xsprintf/queryfx.php index e88c47e8..d1eef612 100644 --- a/src/xsprintf/queryfx.php +++ b/src/xsprintf/queryfx.php @@ -5,7 +5,7 @@ function queryfx(AphrontDatabaseConnection $conn, $sql /* , ... */) { $query = call_user_func_array('qsprintf', $argv); $conn->setLastActiveEpoch(time()); - $conn->executeRawQuery($query); + $conn->executeQuery($query); } function queryfx_all(AphrontDatabaseConnection $conn, $sql /* , ... */) { diff --git a/support/xhpast/parser.y b/support/xhpast/parser.y index 99744c55..a4892761 100644 --- a/support/xhpast/parser.y +++ b/support/xhpast/parser.y @@ -2746,6 +2746,21 @@ new_expr: $1->appendChild($3); $$ = $1; } +| T_NEW T_CLASS ctor_arguments extends_from implements_list + '{' class_statement_list '}' { + $$ = NNEW(n_CLASS_DECLARATION); + $$->appendChild($2); + $$->appendChild(NNEW(n_EMPTY)); + $$->appendChild($4); + $$->appendChild($5); + $$->appendChild(NEXPAND($6, $7, $8)); + NMORE($$, $8); + + NTYPE($1, n_NEW); + $1->appendChild($$); + $1->appendChild($3); + $$ = $1; + } ; class_constant: diff --git a/support/xhpast/parser.yacc.cpp b/support/xhpast/parser.yacc.cpp index 51edcd5d..0e2ed11f 100644 --- a/support/xhpast/parser.yacc.cpp +++ b/support/xhpast/parser.yacc.cpp @@ -557,16 +557,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 7552 +#define YYLAST 7627 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 168 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 135 /* YYNRULES -- Number of rules. */ -#define YYNRULES 442 +#define YYNRULES 443 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 908 +#define YYNSTATES 915 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -670,7 +670,7 @@ static const yytype_uint16 yyrline[] = 2553, 2557, 2563, 2566, 2572, 2579, 2586, 2593, 2600, 2607, 2614, 2621, 2631, 2641, 2651, 2654, 2657, 2667, 2670, 2676, 2680, 2686, 2691, 2697, 2703, 2709, 2715, 2721, 2730, 2735, - 2743, 2752, 2757 + 2743, 2749, 2767, 2772 }; #endif @@ -786,10 +786,10 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -702 +#define YYPACT_NINF -706 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-702))) + (!!((Yystate) == (-706))) #define YYTABLE_NINF -382 @@ -800,97 +800,98 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -702, 51, 1810, -702, 5980, 5980, -97, 5980, 5980, 5980, - 5980, 5980, 5980, 5980, 394, 394, 5980, 5980, 5980, 5980, - 5980, 5980, 5980, 5980, 4650, 440, 5980, -95, -85, -702, - -702, 33, -702, -702, -702, 13, -702, 5980, 4508, -76, - -71, -62, 38, 64, 4783, 4916, 107, -702, 155, 5049, - 7, 5980, 138, 48, -17, 116, 184, 92, 143, 161, - 166, -702, -702, 174, 177, -702, -702, -702, -702, -702, - -702, -702, -702, -702, 84, -702, -702, 275, -702, -702, - 5980, 6113, -702, -702, 194, -73, -702, 9, -702, -702, - -702, -702, -702, -702, 291, 299, -702, 215, 347, 315, - 234, -702, -702, 6536, -702, 41, 1047, 221, -702, 240, - 323, 264, -702, -9, -702, 56, -702, -702, 326, 327, - -702, 330, 332, 295, 248, -702, 347, 7366, 7366, 5980, - 7366, 7366, 7433, -702, -702, 352, -702, -702, -702, 253, - 275, 342, -98, 265, -702, -702, 269, -702, -702, -702, - -702, -702, -702, -702, -702, -702, 394, 7126, 244, 409, - 267, 275, 268, 271, 262, -702, 280, 302, -11, 56, - -702, 5182, -702, 5980, -702, 5980, 5980, 16, 7366, 363, - 5980, 5980, 5980, 377, 5980, -702, 6579, -702, 6622, 290, - 442, -702, 294, 7366, 959, -702, 6673, 275, 115, 17, - -702, -702, 249, 20, -702, 448, 21, 347, -702, -702, - 394, 394, 394, 301, 298, 4650, 275, -702, 150, 103, - 104, 7169, 96, 303, 6716, 304, 1952, 5980, 393, 1276, - 395, -702, 348, 349, -702, -702, 6, 5980, -27, 5980, - 5980, 5980, 5315, 5980, 5980, 5980, 5980, 5980, 5980, 5980, - 5980, 5980, 5980, 5980, 5980, 5980, 5980, 5980, 5980, 5980, - 5980, 5980, 5980, 5980, 5980, 5980, 440, -702, -702, -702, - 5448, 5980, 5980, 5980, 5980, 5980, 5980, 5980, 5980, 5980, - 5980, 5980, 1276, 52, 5980, 91, 5980, 5980, 194, 0, - 5980, 5980, 5980, 316, 6759, 275, -86, 304, 67, 126, - -702, -702, 5581, -702, 5714, -702, 275, 268, 81, 1276, - -702, 81, 91, -21, -702, 6810, 6854, 7366, 311, 317, - 5980, -702, 322, 6897, 328, 484, 7366, 399, 1032, 483, - 25, 6946, -702, -702, -702, 7235, -702, -702, 2094, -702, - 117, 423, 138, -702, 5980, -702, -702, 48, -702, 7235, - 422, -702, 345, 26, -702, -702, -702, 27, 351, 346, - 350, -702, 28, -702, 357, 118, 1498, -702, -702, 1276, - 5980, -702, -702, -702, 353, -702, -702, -702, -702, -702, - 6258, -702, 394, 5980, 360, 510, -702, 7366, 511, 165, - 401, 165, 368, 366, 66, 369, 374, 378, -21, 56, - 7408, 1202, 7433, 5980, 7294, 7458, 1659, 7480, 7501, 4703, - 1449, 1802, 1802, 1802, 1802, 1802, 1219, 1219, 1219, 1219, - 398, 398, 314, 314, 314, 352, 352, 352, -702, 206, - 7433, 7433, 7433, 7433, 7433, 7433, 7433, 7433, 7433, 7433, - 7433, 7433, 379, 381, 382, 373, -702, 5980, -702, 384, - -7, -702, 385, 6301, 386, 387, 389, -702, -82, 374, - 381, 394, 7366, 394, 7227, 268, -702, 403, -702, -702, - -702, 3798, -702, -702, 7366, 5980, 3940, 5980, 5980, 394, - 70, 7235, 471, 4082, 1, 7235, 7235, 7235, -702, 388, - 404, 275, 49, 414, -702, -702, -702, -58, 488, -702, - -702, 6344, -702, -702, 556, 66, 394, 408, 394, -702, - -702, -702, 298, 298, 559, -702, 1276, -702, 1668, 411, - 124, 947, 412, -702, -702, 7366, -702, 1276, 7235, 424, - 275, 268, -702, 165, 415, 567, -702, -702, 66, 202, - -702, -702, 416, 573, 10, -702, -702, -702, 1276, 1276, - -21, 7458, 5980, 440, -702, -702, 1276, 1276, -702, 6397, - 1276, 517, 520, -702, 5980, 5980, -702, -702, -702, -702, - -702, -702, -702, 5847, -702, 460, -702, -702, 6990, -702, - -702, -702, 425, 7366, 462, 394, 462, -702, -702, 578, - -702, -702, -702, 431, 432, -702, -702, -702, 472, 435, - 590, 7235, 275, 98, 528, 444, 447, -58, -702, -702, - -702, -702, 7235, 452, -702, -702, -702, 29, -702, 5980, - 453, -702, -702, 455, -702, -702, 275, 268, 567, -702, - 165, 582, 454, -702, 513, 79, 86, -702, 542, 607, - 461, 464, 7458, 262, 474, 476, -702, 477, 5980, 5980, - 498, 466, 6440, 394, 7366, 91, -702, 3656, 263, 479, - 2236, 5980, 70, 481, -702, 482, 7235, 2378, -702, 213, - -702, -37, 7235, -702, 7235, -702, 485, 131, -702, 165, - -702, -702, -702, -702, -702, 513, -702, 7433, -702, -702, - 268, 661, -702, 571, 165, -702, -702, -702, -702, -702, - -702, -702, -702, -702, -702, 557, 295, 319, -702, 22, - 624, 490, 624, 57, 640, -702, 7235, -702, -702, -702, - -702, -702, -702, 487, 495, 91, -702, -702, -702, -702, - -702, 272, 502, 4508, -702, -702, 501, 506, -702, 4224, - 4224, -702, 507, 222, 508, 5980, 14, 128, -702, -702, - 545, -702, 596, 2520, 624, -702, 662, 11, -702, 663, - 23, -702, -702, 602, -702, 79, 514, 162, 516, 86, - 668, 7235, -702, -702, -702, 384, 522, 659, 615, 5980, - -702, -702, 4366, -702, -702, -702, -702, -702, 529, -702, - 6485, -702, -702, -702, -702, 7235, 538, -702, 537, 7235, - 165, -702, 179, -702, 7235, 626, -702, 347, 692, -702, - -702, 632, -702, 31, -702, 710, 7235, -702, -702, 5980, - -702, 561, 7033, -702, -702, -702, 2662, -702, -702, 3656, - -702, 563, -702, -702, -702, 630, 564, 179, -702, 565, - 635, 577, 569, 594, -702, 724, 667, 7235, 2804, -702, - 172, -702, 2946, 7235, -702, 7082, 3656, -702, 4508, 3088, - 580, 3656, -702, 3230, -702, -702, -702, 604, 165, -702, - 669, 7235, 584, -702, -702, 671, -702, -702, -702, 720, - -702, 586, -702, 3372, -702, 675, 678, 746, -702, -702, - -702, 66, -702, -702, -702, -702, -702, 165, 595, 3656, - -702, 624, 182, -702, -702, -702, 3514, -702 + -706, 63, 1871, -706, 6174, 6174, -80, 6174, 6174, 6174, + 6174, 6174, 6174, 6174, 215, 215, 6174, 6174, 6174, 6174, + 6174, 6174, 6174, 6174, 4844, 274, 6174, -62, -57, -706, + -706, 44, -706, -706, -706, 53, -706, 6174, 4569, -47, + -16, -13, 58, 67, 4977, 5110, 92, -706, 125, 5243, + 76, 6174, 13, -4, 128, 126, 130, 99, 102, 112, + 117, -706, -706, 122, 132, -706, -706, -706, -706, -706, + -706, -706, -706, -706, -9, -706, -706, 211, -706, -706, + 6174, 6307, -706, -706, 136, -71, -706, 16, -706, -706, + -706, -706, -706, -706, 214, 235, -706, 149, 286, 262, + 189, -706, -706, 6679, -706, 294, 1229, 170, -706, 194, + 279, 227, -706, 0, -706, 36, -706, -706, 299, 304, + -706, 309, 319, 284, 224, -706, 286, 7427, 7427, 6174, + 7427, 7427, 1579, -706, -706, 339, -706, -706, -706, 244, + 211, 333, -78, 261, -706, -706, 263, -706, -706, -706, + -706, -706, -706, -706, -706, -706, 215, 7225, 245, 403, + 252, 265, 211, 266, 270, 252, -706, 273, 295, 9, + 36, -706, 5376, -706, 6174, -706, 6174, 6174, 19, 7427, + 336, 6174, 6174, 6174, 350, 6174, -706, 6730, -706, 6773, + 271, 415, -706, 276, 7427, 957, -706, 6816, 211, -38, + 20, -706, -706, 283, 22, -706, 416, 23, 286, -706, + -706, 215, 215, 215, 275, 303, 4844, 211, -706, -67, + 123, -68, 7275, 540, 280, 991, 281, 2013, 6174, 366, + 4711, 371, -706, 324, 326, -706, -706, -8, 6174, -17, + 6174, 6174, 6174, 5509, 6174, 6174, 6174, 6174, 6174, 6174, + 6174, 6174, 6174, 6174, 6174, 6174, 6174, 6174, 6174, 6174, + 6174, 6174, 6174, 6174, 6174, 6174, 6174, 422, -706, -706, + -706, 5642, 6174, 6174, 6174, 6174, 6174, 6174, 6174, 6174, + 6174, 6174, 6174, 4711, 35, 6174, 49, 6174, 6174, 136, + 65, 6174, 6174, 6174, 290, 6867, 211, -55, 281, 54, + 158, -706, -706, 5775, -706, 5908, -706, 4711, 324, 211, + 266, 51, -706, 51, 49, -14, -706, 6910, 6953, 7427, + 285, 287, 6174, -706, 296, 7003, 292, 453, 7427, 368, + 1033, 452, 28, 7046, -706, -706, -706, 1196, -706, -706, + 2155, -706, 85, 391, 13, -706, 6174, -706, -706, -4, + -706, 1196, 405, -706, 307, 30, -706, -706, -706, 33, + 318, 323, 330, -706, 34, -706, 325, 124, 1587, -706, + -706, 4711, 6174, -706, -706, -706, 332, -706, -706, -706, + -706, -706, 1341, -706, 215, 6174, 343, 487, -706, 7427, + 494, 101, 384, 101, 348, 354, 10, 349, 356, 357, + -14, 36, 7469, 7508, 1579, 6174, 7378, 7533, 1479, 7555, + 7576, 4764, 1721, 1863, 1863, 1863, 1863, 1863, 1070, 1070, + 1070, 1070, 763, 763, 353, 353, 353, 339, 339, 339, + -706, 164, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, + 1579, 1579, 1579, 1579, 360, 364, 369, 362, -706, 6174, + -706, 374, -10, -706, 365, 6452, 376, 378, 381, -706, + 71, 356, 364, 215, 7427, 215, 7326, 379, 384, 266, + -706, -706, -706, -706, 3859, -706, -706, 7427, 6174, 4001, + 6174, 6174, 215, 184, 1196, 446, 4143, 6, 1196, 1196, + 1196, -706, 377, 396, 211, -28, 418, -706, -706, -706, + -39, 475, -706, -706, 6495, -706, -706, 539, 10, 215, + 404, 215, -706, -706, -706, 303, 303, 553, -706, 4711, + -706, 1729, 406, 193, 714, 408, -706, -706, 7427, -706, + 4711, 1196, 433, 211, 266, -706, 101, 423, 581, -706, + -706, 10, 204, -706, -706, 437, 587, 24, -706, -706, + -706, 4711, 4711, -14, 7533, 6174, 422, -706, -706, 4711, + 4711, -706, 6538, 4711, 537, 538, -706, 6174, 6174, -706, + -706, -706, -706, -706, -706, -706, 6041, -706, 440, 480, + -706, -706, 7089, -706, -706, -706, 444, 7427, 481, 215, + 481, -706, -706, 596, -706, -706, -706, 447, 449, -706, + -706, -706, 486, 451, 606, 1196, 211, -15, 541, 460, + 458, -39, -706, -706, -706, -706, 1196, 464, -706, -706, + -706, 41, -706, 6174, 466, -706, -706, 468, -706, -706, + 211, 266, 581, -706, 101, 465, 471, -706, 518, 68, + -33, -706, 558, 624, 476, 478, 7533, 252, 479, 482, + -706, 484, 6174, 6174, 517, 488, 6591, 215, 7427, -706, + 49, -706, 3717, 302, 490, 2297, 6174, 184, 485, -706, + 489, 1196, 2439, -706, 183, -706, 138, 1196, -706, 1196, + -706, 495, 100, -706, 101, -706, -706, -706, -706, -706, + 518, -706, 1579, -706, -706, 266, 729, -706, 574, 101, + -706, -706, -706, -706, -706, -706, -706, -706, -706, -706, + 579, 284, 639, -706, 25, 632, 498, 632, 39, 648, + -706, 1196, -706, -706, -706, -706, -706, -706, 500, 501, + 49, -706, -706, -706, -706, 878, -706, 312, 504, 4569, + -706, -706, 506, 509, -706, 4285, 4285, -706, 510, 264, + 512, 6174, 11, 151, -706, -706, 549, -706, 600, 2581, + 632, -706, 665, 14, -706, 667, 26, -706, -706, 607, + -706, 68, 519, 75, 521, -33, 668, 1196, -706, -706, + -706, 374, -706, 525, 661, 619, 6174, -706, -706, 4427, + -706, -706, -706, -706, -706, 529, -706, 6636, -706, -706, + -706, -706, 1196, 531, -706, 532, 1196, 101, -706, 116, + -706, 1196, 622, -706, 286, 682, -706, -706, 623, -706, + 42, -706, 688, 1196, -706, -706, 6174, -706, 542, 7139, + -706, -706, -706, 2723, -706, -706, 3717, -706, 543, -706, + -706, -706, 609, 545, 116, -706, 548, 611, 554, 551, + 565, -706, 704, 644, 1196, 2865, -706, 190, -706, 3007, + 1196, -706, 7182, 3717, -706, 4569, 3149, 557, 3717, -706, + 3291, -706, -706, -706, 359, 101, -706, 646, 1196, 561, + -706, -706, 662, -706, -706, -706, 697, -706, 562, -706, + 3433, -706, 669, 670, 732, -706, -706, -706, 10, -706, + -706, -706, -706, -706, 101, 584, 3717, -706, 632, 229, + -706, -706, -706, 3575, -706 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -914,118 +915,119 @@ static const yytype_uint16 yydefact[] = 427, 428, 283, 250, 251, 252, 253, 5, 306, 0, 0, 0, 307, 0, 231, 365, 0, 233, 270, 271, 272, 273, 274, 275, 276, 278, 0, 417, 0, 355, - 0, 0, 307, 313, 323, 314, 0, 316, 387, 0, - 218, 0, 277, 0, 31, 396, 396, 0, 209, 0, - 0, 210, 0, 0, 0, 42, 0, 44, 0, 0, - 0, 46, 362, 0, 363, 25, 0, 0, 18, 0, - 17, 153, 0, 0, 152, 158, 0, 75, 81, 82, - 0, 0, 0, 0, 411, 412, 0, 4, 0, 351, - 362, 0, 363, 0, 0, 265, 0, 0, 0, 145, - 0, 15, 84, 87, 54, 76, 0, 396, 0, 0, + 323, 0, 0, 307, 313, 323, 314, 0, 316, 387, + 0, 218, 0, 277, 0, 31, 396, 396, 0, 209, + 0, 0, 210, 0, 0, 0, 42, 0, 44, 0, + 0, 0, 46, 362, 0, 363, 25, 0, 0, 18, + 0, 17, 153, 0, 0, 152, 158, 0, 75, 81, + 82, 0, 0, 0, 0, 411, 412, 0, 4, 0, + 351, 362, 0, 363, 0, 0, 265, 0, 0, 0, + 145, 0, 15, 84, 87, 54, 76, 0, 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 230, 232, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 396, 0, 396, 0, 406, 389, - 396, 396, 396, 0, 0, 0, 309, 0, 0, 0, - 421, 364, 0, 439, 356, 413, 0, 309, 0, 145, - 440, 0, 0, 389, 321, 0, 0, 397, 0, 0, - 0, 51, 0, 0, 0, 211, 213, 362, 363, 0, - 0, 0, 43, 45, 63, 0, 47, 48, 0, 62, - 20, 0, 0, 14, 0, 154, 363, 0, 49, 0, - 0, 50, 0, 0, 70, 72, 429, 0, 0, 0, - 0, 409, 0, 408, 0, 350, 0, 11, 4, 145, - 0, 432, 431, 388, 0, 35, 24, 26, 27, 28, - 0, 6, 0, 0, 0, 144, 146, 148, 0, 0, - 89, 0, 0, 0, 136, 0, 441, 379, 377, 0, - 236, 238, 237, 0, 0, 268, 234, 235, 239, 241, - 240, 256, 257, 254, 255, 262, 258, 259, 260, 261, - 248, 249, 243, 244, 242, 245, 246, 247, 263, 0, - 215, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 0, 442, 380, 0, 403, 0, 399, 376, - 398, 402, 0, 0, 0, 0, 0, 426, 308, 0, - 0, 0, 416, 0, 415, 308, 379, 0, 380, 318, - 322, 0, 437, 435, 208, 0, 0, 210, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 353, 327, 0, - 0, 0, 338, 0, 337, 23, 345, 0, 0, 19, - 16, 0, 151, 159, 156, 136, 0, 0, 0, 422, - 423, 10, 411, 411, 0, 438, 145, 13, 0, 0, - 362, 363, 0, 395, 150, 149, 298, 0, 0, 0, - 0, 310, 85, 0, 0, 88, 91, 161, 136, 0, - 140, 141, 0, 124, 0, 137, 139, 383, 145, 145, - 378, 267, 0, 0, 216, 305, 145, 145, 382, 0, - 145, 375, 374, 369, 396, 0, 391, 392, 434, 433, - 436, 420, 419, 0, 324, 315, 25, 116, 0, 25, - 114, 38, 0, 212, 93, 0, 93, 95, 103, 0, - 25, 101, 58, 109, 109, 41, 341, 342, 360, 0, - 355, 353, 0, 340, 0, 0, 0, 67, 65, 61, - 21, 155, 0, 0, 71, 55, 430, 0, 407, 0, - 0, 12, 300, 0, 147, 22, 0, 312, 90, 161, - 0, 192, 0, 138, 292, 136, 0, 135, 0, 126, - 0, 0, 266, 323, 0, 0, 404, 0, 396, 396, - 366, 0, 0, 0, 414, 0, 317, 118, 120, 0, - 0, 210, 0, 0, 96, 0, 0, 0, 109, 0, - 109, 0, 0, 344, 356, 354, 0, 339, 346, 0, - 25, 64, 60, 68, 157, 292, 410, 214, 299, 29, - 311, 192, 92, 0, 0, 199, 200, 201, 198, 197, - 196, 191, 79, 160, 164, 0, 0, 190, 194, 0, - 142, 0, 142, 0, 127, 134, 0, 301, 304, 217, - 302, 303, 373, 0, 0, 0, 368, 400, 401, 418, - 319, 122, 0, 0, 36, 39, 0, 0, 94, 0, - 0, 104, 0, 0, 0, 0, 0, 0, 105, 359, - 358, 343, 0, 0, 142, 78, 0, 0, 168, 204, - 0, 165, 195, 0, 163, 136, 0, 0, 0, 0, - 130, 0, 129, 371, 372, 376, 0, 0, 0, 0, - 121, 115, 0, 25, 99, 57, 56, 102, 0, 107, - 0, 112, 113, 25, 106, 0, 0, 69, 0, 0, - 0, 170, 172, 167, 0, 0, 162, 75, 0, 143, - 25, 0, 296, 0, 25, 131, 0, 128, 370, 0, - 25, 0, 0, 25, 97, 40, 0, 108, 25, 111, - 357, 0, 25, 207, 169, 5, 0, 173, 174, 0, - 0, 182, 0, 0, 205, 202, 0, 0, 0, 297, - 0, 293, 0, 0, 133, 0, 123, 37, 0, 0, - 0, 110, 25, 0, 171, 175, 176, 186, 0, 177, - 0, 0, 0, 206, 77, 0, 294, 285, 132, 0, - 117, 0, 100, 0, 286, 0, 185, 178, 179, 183, - 203, 136, 295, 25, 98, 66, 184, 0, 0, 119, - 180, 142, 0, 188, 25, 166, 0, 189 + 0, 0, 0, 0, 0, 0, 0, 0, 53, 230, + 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 0, 396, 0, 396, 0, 406, + 389, 396, 396, 396, 0, 0, 0, 309, 0, 0, + 0, 421, 364, 0, 439, 356, 413, 145, 84, 0, + 309, 0, 440, 0, 0, 389, 321, 0, 0, 397, + 0, 0, 0, 51, 0, 0, 0, 211, 213, 362, + 363, 0, 0, 0, 43, 45, 63, 0, 47, 48, + 0, 62, 20, 0, 0, 14, 0, 154, 363, 0, + 49, 0, 0, 50, 0, 0, 70, 72, 429, 0, + 0, 0, 0, 409, 0, 408, 0, 350, 0, 11, + 4, 145, 0, 432, 431, 388, 0, 35, 24, 26, + 27, 28, 0, 6, 0, 0, 0, 144, 146, 148, + 0, 0, 89, 0, 0, 0, 136, 0, 442, 379, + 377, 0, 236, 238, 237, 0, 0, 268, 234, 235, + 239, 241, 240, 256, 257, 254, 255, 262, 258, 259, + 260, 261, 248, 249, 243, 244, 242, 245, 246, 247, + 263, 0, 215, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 0, 443, 380, 0, 403, 0, + 399, 376, 398, 402, 0, 0, 0, 0, 0, 426, + 308, 0, 0, 0, 416, 0, 415, 0, 89, 308, + 379, 380, 318, 322, 0, 437, 435, 208, 0, 0, + 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 353, 327, 0, 0, 0, 338, 0, 337, 23, 345, + 0, 0, 19, 16, 0, 151, 159, 156, 136, 0, + 0, 0, 422, 423, 10, 411, 411, 0, 438, 145, + 13, 0, 0, 362, 363, 0, 395, 150, 149, 298, + 0, 0, 0, 0, 310, 85, 0, 0, 88, 91, + 161, 136, 0, 140, 141, 0, 124, 0, 137, 139, + 383, 145, 145, 378, 267, 0, 0, 216, 305, 145, + 145, 382, 0, 145, 375, 374, 369, 396, 0, 391, + 392, 434, 433, 436, 420, 419, 0, 324, 0, 315, + 25, 116, 0, 25, 114, 38, 0, 212, 93, 0, + 93, 95, 103, 0, 25, 101, 58, 109, 109, 41, + 341, 342, 360, 0, 355, 353, 0, 340, 0, 0, + 0, 67, 65, 61, 21, 155, 0, 0, 71, 55, + 430, 0, 407, 0, 0, 12, 300, 0, 147, 22, + 0, 312, 90, 161, 0, 192, 0, 138, 292, 136, + 0, 135, 0, 126, 0, 0, 266, 323, 0, 0, + 404, 0, 396, 396, 366, 0, 0, 0, 414, 161, + 0, 317, 118, 120, 0, 0, 210, 0, 0, 96, + 0, 0, 0, 109, 0, 109, 0, 0, 344, 356, + 354, 0, 339, 346, 0, 25, 64, 60, 68, 157, + 292, 410, 214, 299, 29, 311, 192, 92, 0, 0, + 199, 200, 201, 198, 197, 196, 191, 79, 160, 164, + 0, 0, 190, 194, 0, 142, 0, 142, 0, 127, + 134, 0, 301, 304, 217, 302, 303, 373, 0, 0, + 0, 368, 400, 401, 418, 192, 319, 122, 0, 0, + 36, 39, 0, 0, 94, 0, 0, 104, 0, 0, + 0, 0, 0, 0, 105, 359, 358, 343, 0, 0, + 142, 78, 0, 0, 168, 204, 0, 165, 195, 0, + 163, 136, 0, 0, 0, 0, 130, 0, 129, 371, + 372, 376, 441, 0, 0, 0, 0, 121, 115, 0, + 25, 99, 57, 56, 102, 0, 107, 0, 112, 113, + 25, 106, 0, 0, 69, 0, 0, 0, 170, 172, + 167, 0, 0, 162, 75, 0, 143, 25, 0, 296, + 0, 25, 131, 0, 128, 370, 0, 25, 0, 0, + 25, 97, 40, 0, 108, 25, 111, 357, 0, 25, + 207, 169, 5, 0, 173, 174, 0, 0, 182, 0, + 0, 205, 202, 0, 0, 0, 297, 0, 293, 0, + 0, 133, 0, 123, 37, 0, 0, 0, 110, 25, + 0, 171, 175, 176, 186, 0, 177, 0, 0, 0, + 206, 77, 0, 294, 285, 132, 0, 117, 0, 100, + 0, 286, 0, 185, 178, 179, 183, 203, 136, 295, + 25, 98, 66, 184, 0, 0, 119, 180, 142, 0, + 188, 25, 166, 0, 189 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -702, -702, -199, -5, -702, -702, 419, -702, -183, -702, - 19, -702, -702, 149, -702, 156, -702, 256, 2, 3, - -125, -702, -702, -702, -702, -702, -702, -702, 231, 181, - 106, -702, 39, -702, -702, -702, -562, -8, -702, -702, - -702, -702, -702, -497, -702, -591, -589, 230, -701, -209, - -702, 254, -702, 436, -702, 157, -702, -702, -702, -702, - -702, -702, -702, -53, -702, -702, -702, -702, -702, -702, - -702, -702, -702, -702, -694, -702, -702, -702, -463, -702, - -42, 706, -2, 108, -702, -702, 227, -66, -251, -702, - -702, -702, -702, 145, -187, -212, -702, -702, 188, 191, - -702, 908, 598, -356, 339, 356, -702, -702, -702, -702, - 30, -215, -702, 793, -702, -702, -22, -23, -702, -160, - -306, -702, -702, -3, 284, 279, 583, -702, -702, -702, - -702, -702, -702, -38, -702 + -706, -706, -195, -5, -706, -706, 399, -706, -185, -706, + 2, -706, -706, 145, -706, 147, -706, 240, -1, 3, + -124, -706, -706, -706, 454, -706, -706, 293, 228, 173, + 93, -706, 32, -706, -706, -706, -417, -27, -706, -706, + -706, -706, -706, -493, -706, -581, -600, 231, -699, -254, + -706, 239, -706, 425, -706, -554, -706, -706, -706, -706, + -706, -706, -706, -73, -706, -706, -706, -706, -706, -706, + -706, -706, -706, -706, -705, -706, -706, -706, -455, -706, + -37, 695, -2, 87, -706, -706, 108, -377, -248, -706, + -706, -706, -706, -157, 727, 618, -706, -706, 175, 177, + -706, 916, 580, -363, 392, 31, -706, -706, -706, -706, + 1, -222, -706, 802, -706, -706, -22, -12, -706, -151, + -308, -706, -706, 29, 269, 272, 570, -706, -706, -706, + -706, -706, -706, 27, -706 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 2, 85, 86, 199, 200, 87, 226, 376, - 377, 89, 607, 608, 682, 609, 353, 354, 378, 379, - 236, 92, 93, 94, 390, 95, 392, 534, 535, 663, - 586, 825, 785, 592, 330, 595, 669, 793, 581, 658, - 731, 734, 778, 542, 543, 639, 544, 545, 766, 384, - 385, 386, 203, 204, 206, 631, 703, 807, 704, 757, - 803, 836, 837, 838, 839, 887, 840, 841, 842, 885, - 905, 705, 706, 707, 708, 760, 709, 177, 324, 325, - 96, 97, 126, 712, 813, 99, 100, 546, 164, 165, - 575, 656, 172, 310, 101, 598, 496, 102, 599, 305, - 600, 103, 104, 300, 105, 106, 650, 726, 561, 562, - 563, 107, 108, 109, 110, 111, 112, 113, 114, 318, - 449, 450, 451, 115, 362, 363, 158, 159, 116, 357, + -1, 1, 2, 85, 86, 200, 201, 87, 227, 378, + 379, 89, 611, 612, 687, 613, 355, 356, 380, 381, + 237, 92, 93, 94, 392, 95, 394, 537, 538, 668, + 590, 832, 792, 596, 332, 599, 674, 800, 585, 663, + 737, 740, 785, 545, 546, 643, 547, 548, 772, 386, + 387, 388, 204, 205, 207, 635, 708, 814, 709, 763, + 810, 843, 844, 845, 846, 894, 847, 848, 849, 892, + 912, 710, 711, 712, 713, 766, 714, 178, 326, 327, + 96, 97, 126, 717, 820, 99, 100, 549, 165, 166, + 579, 661, 173, 308, 101, 602, 499, 102, 603, 306, + 604, 103, 104, 301, 105, 106, 654, 731, 564, 565, + 566, 107, 108, 109, 110, 111, 112, 113, 114, 320, + 451, 452, 453, 115, 364, 365, 158, 159, 116, 359, 117, 118, 119, 120, 121 }; @@ -1034,581 +1036,494 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 98, 293, 168, 167, 90, 91, 469, 192, 613, 142, - 142, 768, 338, 762, 582, 428, 319, 230, 366, 800, - 162, 88, 169, 397, 320, 342, 524, 593, 347, 350, - 763, 805, 671, 482, 506, 508, 513, 513, 220, 850, - 791, 632, 636, 225, 286, 714, 713, 198, 396, 605, - 33, 3, 207, 798, 286, 228, 286, 179, 564, 174, - 205, 745, 746, 229, 129, 286, 171, 228, 444, 218, - 448, 228, 219, 442, -307, 369, 173, 395, 176, 516, - 228, 393, 352, 397, 444, 180, 47, 637, 229, 769, - 181, 539, 289, 466, 268, 269, 468, 448, 175, 182, - 467, 606, 585, 297, 539, 571, 743, 572, 747, 270, + 98, 90, 294, 168, 88, 91, 472, 768, 312, 142, + 142, 340, 193, 169, 535, 617, 539, 399, 774, 430, + 163, 527, 807, 368, 231, 586, 321, 322, 344, 444, + 349, 352, 597, 769, 812, 542, 485, 798, 509, 718, + 180, 511, 516, 221, 641, 145, 145, 199, 636, 516, + 857, 287, 208, 467, 170, 567, 640, 343, 398, 719, + 33, 805, 446, 3, 450, 287, 137, 395, 609, 219, + 175, 775, 220, 202, 287, 229, -307, 399, 446, 696, + 195, 129, 229, 230, 354, 137, 229, 397, 137, 470, + 230, 471, 450, 542, -287, -287, 369, 370, 229, 172, + 574, 641, 575, 290, 174, 735, 371, 818, 226, 176, + 445, 223, 33, 33, 181, 229, 641, 522, 177, -307, + 610, 208, 143, 143, 448, 229, 33, 642, 33, 461, + 287, 33, -309, 164, 447, 297, 454, 776, 229, 543, + 456, 457, 458, 137, 217, 182, 329, -381, 183, 84, + 288, 142, 819, 396, 568, 218, -381, 310, 315, 539, + 532, -377, 203, 533, 288, 544, 198, 190, 298, 893, + 598, 816, -125, 288, 799, 521, 137, 808, 809, 232, + 501, 676, 323, 345, 642, 350, 353, 302, 770, 813, + 486, 842, 510, 342, 822, 512, 517, 543, 142, 642, + 191, 84, 289, 691, 858, 206, 142, 142, 142, 909, + 142, 743, 367, 449, 330, 84, 589, 84, 532, 184, + 84, 533, 882, 544, 229, 98, -378, 400, 185, 288, + 556, 47, 519, 462, 348, 33, 751, 752, 229, 137, + 196, 33, 357, 358, 360, 168, 363, -308, 209, 751, + 752, 532, 210, 229, 533, 169, 749, 697, 753, 137, + 211, 33, 163, 212, 143, 624, 532, 883, 401, 533, + -309, -308, 400, 213, 400, 138, 229, 229, 214, 137, + 750, 751, 752, 215, 371, 519, 137, 400, 400, 233, + 137, 460, 33, 216, 734, 138, 170, 644, 645, 400, + 228, 400, 400, 754, 469, 648, 649, 758, 647, 651, + 234, 143, 235, 401, 139, 401, 801, 140, 236, 143, + 143, 143, 764, 143, 84, 141, 138, 238, 401, 401, + 84, 283, 495, 543, 139, 523, 239, 140, 98, 199, + 401, 284, 401, 401, 285, 141, 495, 269, 270, 137, + 84, 33, 736, 286, 532, -289, -289, 533, 137, 544, + 33, 795, 751, 752, 291, 139, 98, 90, 140, 292, + 88, 91, 738, 739, 293, 164, 141, 217, 137, 142, + 33, 84, 783, 784, 176, 138, 534, 47, 534, 553, + 267, 534, 910, 911, 138, 662, 160, 296, 665, 25, + 264, 265, 266, 524, 267, 905, 144, 147, 299, 672, + 300, 305, 304, 307, 138, 302, 655, 311, 309, 229, + 313, 314, 781, 324, 161, 331, 142, 162, 337, 351, + 841, 362, 850, 139, 336, 141, 140, 361, 450, 338, + 84, 383, 373, 375, 141, 496, 390, 346, 391, 84, + 393, 396, 475, 139, 476, 480, 140, 478, 142, 496, + 142, 481, 557, 482, 141, 484, 502, 850, 508, 84, + 700, 701, 702, 703, 704, 705, 581, 142, 142, 495, + 513, 584, 507, 495, 495, 495, 514, 518, 595, 607, + 724, 515, 143, 525, 302, 530, 302, 137, 895, 33, + 759, 728, 729, 534, 142, 529, 142, 531, 450, 536, + 142, 142, 540, 588, 591, 541, 550, 551, 552, 98, + 90, 593, 558, 88, 91, 559, 495, 907, 631, 561, + 560, 534, 569, 138, 168, 563, 534, 534, 605, 143, + 357, 577, 620, 571, 169, 572, 363, 363, 573, 606, + 614, 163, 616, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 608, 623, 619, 626, 698, + 627, 143, 161, 143, 699, 162, 700, 701, 702, 703, + 704, 705, 706, 141, 142, 170, 630, 633, 84, 634, + 143, 143, 496, -365, -365, 639, 496, 496, 496, 638, + 495, 682, 652, 653, 659, 833, 660, 666, 667, 671, + 673, 495, 675, 677, 679, 836, 683, 143, 678, 143, + 669, 684, 685, 143, 143, 695, 690, 716, 693, 534, + 707, 694, 855, 715, 534, 720, 859, 721, 722, 496, + 723, 725, 863, 730, 726, 866, 727, 745, 400, 762, + 868, 746, 142, 741, 870, 732, 765, 757, 771, 773, + 98, 777, 142, 98, 164, 786, 495, 779, 780, 788, + 98, 789, 495, 794, 495, 796, 802, 803, 806, 534, + 811, 823, 815, 817, 890, 821, 826, 827, 302, 401, + 853, 828, 834, 838, 534, 854, 839, 143, 591, 852, + 856, 860, -288, -288, -181, 864, 874, 869, 875, 767, + 871, 873, 877, 496, 876, 906, 495, 878, 400, 879, + 889, 896, 898, 900, 496, 901, 913, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 899, + 904, 787, -193, 503, 903, -187, 908, 791, 791, 618, + 700, 701, 702, 703, 704, 705, 686, 98, 688, 401, + 744, 578, 468, 670, 632, 143, 534, -365, -365, 628, + 835, 872, 495, 637, 505, 143, 224, 760, 793, 496, + 681, 680, 825, 347, 621, 496, 366, 496, 622, 0, + 0, 831, 0, 0, 0, 0, 0, 495, 0, 0, + 0, 495, 534, 0, 534, 0, 495, 261, 262, 263, + 264, 265, 266, 0, 267, 0, 146, 146, 495, 0, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 496, + 0, 98, 0, 698, 98, 0, 0, 0, 699, 534, + 700, 701, 702, 703, 704, 705, 706, 0, 0, 495, + 0, 0, 0, 98, 0, 495, 0, 98, 0, 0, + 0, 98, 0, 0, 98, 0, 98, 887, 98, 0, + 534, 0, 0, 495, 0, 0, -290, -290, 0, 0, + 0, 0, 0, 0, 0, 496, 0, 0, 98, 0, + 0, 0, 0, 534, 761, 0, 0, 0, 0, 534, + 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, + 496, 98, 0, 0, 496, 0, 0, 0, 0, 496, + 127, 128, 0, 130, 131, 132, 133, 134, 135, 136, + 0, 496, 148, 149, 150, 151, 152, 153, 154, 155, + 157, 0, 171, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 0, 498, 0, 0, 146, 0, + 187, 189, 496, 0, 0, 194, 0, 197, 496, 506, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 207, 770, 495, 445, 201, 452, 443, 748, 33, - 454, 455, 456, 33, 637, 296, -381, 503, -381, 84, - 327, 137, 459, 287, 33, 137, 313, 33, 494, -365, - -365, 142, -377, 287, 137, 287, 307, 565, 33, 137, - 519, -378, 494, 637, 287, 594, 446, 394, 33, 518, - 638, 195, 231, 886, 801, 802, 809, 792, 815, 321, - 343, 138, 189, 348, 351, 764, 806, 483, 507, 509, - 514, 686, 340, 851, 811, 540, -307, 142, 737, 183, - 902, 460, 228, 33, 875, 142, 142, 142, 540, 142, - 341, 365, 498, 137, 202, 398, 529, 638, 84, 530, - 139, 541, 288, 140, 98, 184, 745, 746, -125, 529, - 190, 141, 530, 84, 541, 399, 84, 216, 208, 812, - 137, 143, 143, 168, 167, -309, 638, 84, 217, 876, - -309, 228, 163, 210, 835, 447, 228, 84, -288, -288, - 398, 162, 398, 169, 369, -308, -287, -287, 228, 588, - 228, 228, 553, 596, 597, 398, 398, 137, -308, 516, - 399, 137, 399, 33, 228, 398, -289, -289, 398, 398, - 458, 197, 84, 794, 494, 399, 399, 729, 494, 494, - 494, 465, 643, 228, 211, 399, 209, 620, 399, 399, - 744, 745, 746, 367, 368, 529, 625, 138, 530, 788, - 745, 746, 212, 532, 137, 536, 33, 213, 520, 529, - 492, 540, 530, 732, 733, 214, 98, 198, 215, 640, - 641, 494, 776, 777, 492, 903, 904, 644, 645, 730, - 137, 647, 529, 144, 147, 530, 139, 541, 227, 140, - 138, 263, 264, 265, 98, 266, 232, 141, 90, 91, - 145, 145, 84, 137, 233, 33, 550, 142, 234, 235, - 237, 238, 282, 143, 531, 88, 531, 283, 284, 531, - 285, 290, 291, 657, 898, 292, 660, 175, 47, 139, - 684, 216, 140, 266, 651, 194, 295, 667, 25, 138, - 141, 303, 298, 344, 494, 84, 299, 304, 308, 775, - 306, 228, -193, 309, 142, 494, 360, 311, 312, 143, - 695, 696, 697, 698, 699, 700, 222, 143, 143, 143, - 448, 143, 260, 261, 262, 263, 264, 265, 139, 266, - 322, 140, 329, 334, 741, 335, 142, 336, 142, 141, - 749, 349, 750, 359, 84, 371, 373, 536, 381, 137, - 388, 33, 389, 391, 142, 142, 492, 394, 472, 494, - 492, 492, 492, 475, 473, 494, 603, 494, 723, 724, - 577, 477, 478, 163, 479, 580, 481, 753, 499, 504, - 531, 142, 591, 142, 772, 138, 505, 142, 142, 511, - 448, 512, 301, 510, 522, 137, 98, 33, 527, 515, - 90, 91, 526, 492, 528, 627, 533, 538, 531, 494, - 168, 167, 537, 531, 531, 548, 547, 88, 328, 549, - 558, 555, 556, 557, 139, 560, 589, 140, 162, 601, - 169, 138, 566, 568, 569, 141, 570, 602, 346, 817, - 84, 604, 493, 610, 692, 574, 355, 356, 358, 612, - 361, 615, 619, 622, 623, 630, 493, 626, 634, 629, - 142, 635, 648, 830, 494, 649, 655, 833, 661, 662, - 160, 666, 844, 161, 668, 670, 492, 677, 674, 672, - 826, 141, 673, 678, 854, 679, 84, 492, 494, 143, - 829, 680, 494, 752, 685, 688, 710, 494, 689, 715, - 716, 690, 711, 717, 725, 531, 718, 848, 758, 494, - 531, 852, 398, 727, 759, 873, 720, 856, 721, 722, - 859, 878, 735, 739, 740, 861, 756, 751, 142, 863, - 765, 767, 399, 771, 773, 98, 143, 142, 98, 890, - 494, 492, 774, 779, 781, 98, 494, 492, 782, 492, - 787, 789, 795, 796, 531, 799, 804, 808, 810, 883, - 814, 816, 846, 819, 494, 820, 693, 821, 143, 531, - 143, 694, 827, 695, 696, 697, 698, 699, 700, 701, - 831, 832, 398, 845, 761, 847, 143, 143, 493, 849, - 899, 492, 493, 493, 493, 695, 696, 697, 698, 699, - 700, 906, 399, 853, 857, -181, 521, 862, 866, 864, - 867, 868, 869, 143, 834, 143, 843, 871, 301, 143, - 143, 870, 872, 882, 889, 891, 893, 702, 892, 894, - 896, 98, 780, -187, 897, 493, 681, 901, 784, 784, - 531, 500, 614, 683, 628, 693, 492, 665, 738, 633, - 694, 843, 695, 696, 697, 698, 699, 700, 701, 786, - 163, 624, 828, 502, 865, 554, 691, 223, 719, 676, - 492, 675, 618, 754, 492, 531, 617, 531, 364, 492, - 345, 824, 888, 0, 0, 818, 0, 146, 146, 0, - 0, 492, 143, 0, 0, 0, 0, 301, 166, 301, - 0, 0, 0, 0, 98, 0, 755, 98, 493, 0, - 0, 900, 531, 0, 0, 584, 587, 0, 0, 493, - 0, 0, 492, 0, 0, 0, 98, 0, 492, 0, - 98, 0, 0, 0, 98, 0, 0, 98, 0, 98, - 0, 98, 355, 531, 616, 0, 492, 0, 361, 361, - 0, 0, 0, 0, 0, 0, 0, 880, 0, 0, - 143, 98, 0, 0, 0, 0, 531, 0, 0, 143, - 0, 0, 531, 493, 0, 0, 0, 98, 0, 493, - 0, 493, 0, 0, 98, 0, 0, 0, 0, 0, - 0, 0, 127, 128, 0, 130, 131, 132, 133, 134, - 135, 136, 0, 0, 148, 149, 150, 151, 152, 153, - 154, 155, 157, 0, 170, 0, 0, 0, 0, 0, - 0, 664, 0, 493, 0, 178, 0, 0, 0, 146, - 0, 0, 186, 188, 0, 0, 0, 193, 0, 196, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 0, 0, 0, 0, 221, 224, - 0, 0, 0, 0, 0, 146, 0, 0, 493, 0, - -365, -365, 0, 146, 146, 146, 0, 146, 0, 301, - 0, 0, -365, -365, 0, 0, 0, 0, 587, 0, - 0, 0, 493, 0, 0, 0, 493, 0, 0, 0, - 0, 493, 0, 0, 0, 0, 0, 294, 0, 0, - 0, 0, 0, 493, 0, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 0, 0, 166, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 0, 0, 493, 0, 0, 0, 0, 315, - 493, 316, 0, 317, 317, -365, -365, 0, 323, 326, - 193, 0, 331, 0, 0, 0, 0, 0, 493, 0, - -365, -365, 0, 0, 0, 0, 0, 0, 0, -290, - -290, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 337, 157, 0, 0, 0, 480, 0, 0, - 0, 0, 0, 0, 0, 380, 0, 387, 0, 0, - 0, 0, 0, 0, 0, 317, 0, 400, 401, 402, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 0, 146, 0, 0, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 387, 0, 317, 0, 317, 453, 0, 0, 317, 317, - 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 462, 0, 464, 241, 0, 0, 0, 387, 0, 0, - 0, 0, 146, 0, 0, 0, 0, 242, 474, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 501, 266, 146, 0, 146, -382, -382, -382, - -382, 258, 259, 260, 261, 262, 263, 264, 265, 0, - 266, 0, 146, 146, 0, 0, 0, 387, 193, 4, - 5, 6, 7, 8, 0, 0, 0, 0, 9, 0, - 0, 525, 0, 0, 0, 0, 0, 0, 0, 146, - 0, 146, 0, 0, 0, 146, 146, 0, 382, 0, - 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, - 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, - 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 0, 166, 0, 0, 29, - 30, 122, 32, 33, 0, 559, 0, 0, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 146, 47, - 0, 0, 0, 578, 0, 326, 583, 123, 0, 0, - 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, - 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 73, 0, 0, 0, 387, 0, 124, 75, 76, 77, - 0, 0, 0, 79, 125, 387, 383, 81, 0, 0, - 0, 0, 84, 0, 0, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 146, 387, 387, 0, 0, - 642, 0, 0, 0, 387, 387, 0, 0, 387, 0, - 0, 0, 317, 652, 0, 0, 0, 0, 0, 0, - 0, 654, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 0, - 266, 4, 5, 6, 7, 8, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 687, 0, 0, + 281, 282, 698, 0, 0, 0, 496, 699, 0, 700, + 701, 702, 703, 704, 705, 706, 222, 225, 0, 0, + 240, 241, 242, 0, 0, 146, 0, 0, 0, 0, + -365, -365, 0, 146, 146, 146, 243, 146, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 0, 267, 782, 0, 295, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 0, 0, + 0, 0, 0, 0, 497, 0, 0, 0, 0, 167, + 0, 0, 0, 0, 0, 0, 0, 0, 497, 0, + 0, 0, 0, 0, 0, 0, -365, -365, 317, 0, + 318, 0, 319, 319, 0, 0, 0, 325, 328, 194, + 0, 333, 592, 0, 0, 0, 600, 601, -382, -382, + -382, -382, 259, 260, 261, 262, 263, 264, 265, 266, + 339, 267, 0, 0, 0, 0, 0, 0, 483, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 382, 0, 389, 0, 0, 629, + 0, 0, 0, 374, 319, 0, 402, 403, 404, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 0, 0, 0, 146, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 389, + 0, 319, 0, 319, 455, 0, 0, 319, 319, 319, + 0, 497, 0, 0, 0, 497, 497, 497, 0, 464, + 0, 466, 0, 389, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 146, 689, 0, 0, 0, 477, 0, + 488, 489, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 0, 0, 0, 0, 497, 0, + 0, 490, 504, 0, 0, 146, 0, 146, 0, 29, + 30, 137, 0, 0, 0, 0, 0, 0, 0, 491, + 0, 0, -365, -365, 146, 146, 0, 389, 194, 747, + 0, 0, 0, 0, 0, 755, 0, 756, 0, 0, + 0, 528, 0, 0, 0, 0, 0, 138, 0, 0, + 0, 146, 0, 146, 0, 0, 0, 146, 146, 0, + 0, 554, 0, 0, 0, 492, 65, 66, 67, 68, + 69, 0, 497, 0, 0, 0, 0, 0, 0, 778, + 73, 0, 0, 497, 0, 0, 493, 75, 76, 494, + 240, 241, 242, 79, 0, 0, 0, 0, 167, 0, + 0, 0, 0, 0, 0, 562, 243, 0, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 146, 267, 0, 582, 824, 328, 587, 497, 0, + 0, 0, 0, 0, 497, 0, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, - 13, 14, 15, 16, 17, 18, 317, 317, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 0, 326, - 0, 29, 30, 31, 32, 33, 0, 34, 0, 0, - 0, 35, 36, 37, 38, 39, 0, 40, 0, 41, - 0, 42, 0, 0, 43, 0, 0, 0, 44, 45, - 46, 47, 48, 49, 50, 0, 51, 52, 53, 54, - 55, 56, 0, 0, 0, 0, 57, 58, 59, 60, - 61, 62, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 70, 71, 0, 72, 0, - 0, 0, 73, 0, 0, 0, 0, 0, 74, 75, - 76, 77, 0, 790, 78, 79, 80, 0, 0, 81, - 0, 82, 83, 517, 84, 0, 0, 0, 0, 0, - 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 822, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 0, - 266, 0, 10, 11, 0, 0, 0, 0, 12, 0, - 13, 14, 15, 16, 17, 18, 0, 855, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 34, 0, 0, - 0, 35, 36, 37, 38, 39, 0, 40, 0, 41, - 0, 42, 0, 0, 43, 0, 0, 0, 44, 45, - 46, 47, 48, 49, 50, 0, 51, 52, 53, 54, - 55, 56, 0, 0, 0, 0, 57, 58, 59, 60, - 61, 62, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 70, 71, 0, 72, 0, - 0, 0, 73, 4, 5, 6, 7, 8, 74, 75, - 76, 77, 9, 0, 78, 79, 80, 0, 0, 81, - 0, 82, 83, 621, 84, -382, -382, -382, -382, -382, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 0, 266, 10, 11, 0, 0, 0, 0, - 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 0, 0, 0, 29, 30, 31, 32, 33, 0, 34, - 0, 0, 0, 35, 36, 37, 38, 39, 0, 40, - 0, 41, 0, 42, 0, 0, 43, 0, 0, 0, - 44, 45, 46, 47, 48, 49, 50, 0, 51, 52, - 53, 54, 55, 56, 0, 0, 0, 0, 57, 58, - 59, 60, 61, 62, 0, 0, 0, 0, 63, 64, - 65, 66, 67, 68, 69, 0, 0, 70, 71, 0, - 72, 0, 0, 0, 73, 4, 5, 6, 7, 8, - 74, 75, 76, 77, 9, 0, 78, 79, 80, 0, - 0, 81, 0, 82, 83, 0, 84, 0, 0, 0, + 837, 0, 0, 0, 840, 0, 0, 0, 0, 851, + 0, 0, 0, 0, 0, 389, 0, 0, 0, 0, + 0, 861, 0, 0, 0, 0, 389, 0, 497, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, + 0, 0, 0, 0, 0, 0, 0, 389, 389, 146, + 0, 646, 880, 0, 0, 389, 389, 0, 885, 389, + 0, 0, 0, 319, 656, 0, 0, 0, 0, 0, + 0, 0, 658, 0, 0, 0, 897, 0, 0, 0, + 0, 0, 0, 0, 497, 0, 526, 0, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 497, + 267, 0, 0, 497, 0, 0, 0, 0, 497, 692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, - 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, - 0, 0, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 0, 0, 0, 29, 30, 31, 32, 33, - 0, 34, 0, 0, 0, 35, 36, 37, 38, 39, - 0, 40, 0, 41, 0, 42, 0, 0, 43, 0, - 0, 0, 44, 45, 46, 47, 0, 49, 50, 0, - 51, 0, 53, 54, 55, 56, 0, 0, 0, 0, - 57, 58, 59, 374, 61, 62, 0, 0, 0, 0, - 63, 64, 65, 66, 67, 68, 69, 0, 0, 70, - 71, 0, 72, 0, 0, 0, 73, 4, 5, 6, - 7, 8, 124, 75, 76, 77, 9, 0, 78, 79, - 80, 0, 0, 81, 0, 82, 83, 375, 84, 0, + 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 319, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, - 17, 18, 0, 0, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 0, 0, 0, 29, 30, 31, - 32, 33, 0, 34, 0, 0, 0, 35, 36, 37, - 38, 39, 0, 40, 0, 41, 0, 42, 0, 0, - 43, 0, 0, 0, 44, 45, 46, 47, 0, 49, - 50, 0, 51, 0, 53, 54, 55, 56, 0, 0, - 0, 0, 57, 58, 59, 374, 61, 62, 0, 0, - 0, 0, 63, 64, 65, 66, 67, 68, 69, 0, - 0, 70, 71, 0, 72, 0, 0, 0, 73, 4, - 5, 6, 7, 8, 124, 75, 76, 77, 9, 0, - 78, 79, 80, 0, 0, 81, 0, 82, 83, 497, - 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 497, 328, 0, 0, 0, 0, 497, 0, 0, + 4, 5, 6, 7, 8, 0, 0, 0, 0, 9, + 0, 0, 0, 0, 243, 497, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 0, + 267, 10, 11, 0, 0, 0, 0, 12, 0, 13, + 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 0, 0, 0, + 29, 30, 31, 32, 33, 0, 34, 797, 0, 0, + 35, 36, 37, 38, 39, 0, 40, 0, 41, 0, + 42, 0, 0, 43, 0, 0, 0, 44, 45, 46, + 47, 48, 49, 50, 0, 51, 52, 53, 54, 55, + 56, 0, 829, 0, 0, 57, 58, 59, 60, 61, + 62, 0, 0, 0, 0, 63, 64, 65, 66, 67, + 68, 69, 0, 0, 70, 71, 0, 72, 0, 0, + 0, 73, 4, 5, 6, 7, 8, 74, 75, 76, + 77, 9, 862, 78, 79, 80, 0, 0, 81, 0, + 82, 83, 520, 84, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 0, 267, 10, 11, 0, 0, 0, 0, 12, + 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, + 0, 0, 29, 30, 31, 32, 33, 0, 34, 0, + 0, 0, 35, 36, 37, 38, 39, 0, 40, 0, + 41, 0, 42, 0, 0, 43, 0, 0, 0, 44, + 45, 46, 47, 48, 49, 50, 0, 51, 52, 53, + 54, 55, 56, 0, 0, 0, 0, 57, 58, 59, + 60, 61, 62, 0, 0, 0, 0, 63, 64, 65, + 66, 67, 68, 69, 0, 0, 70, 71, 0, 72, + 0, 0, 0, 73, 4, 5, 6, 7, 8, 74, + 75, 76, 77, 9, 0, 78, 79, 80, 0, 0, + 81, 0, 82, 83, 625, 84, -382, -382, -382, -382, + -382, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 10, 11, 0, 0, 0, + 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, + 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 0, 0, 0, 29, 30, 31, 32, 33, 0, + 34, 0, 0, 0, 35, 36, 37, 38, 39, 0, + 40, 0, 41, 0, 42, 0, 0, 43, 0, 0, + 0, 44, 45, 46, 47, 48, 49, 50, 0, 51, + 52, 53, 54, 55, 56, 0, 0, 0, 0, 57, + 58, 59, 60, 61, 62, 0, 0, 0, 0, 63, + 64, 65, 66, 67, 68, 69, 0, 0, 70, 71, + 0, 72, 0, 0, 0, 73, 4, 5, 6, 7, + 8, 74, 75, 76, 77, 9, 0, 78, 79, 80, + 0, 0, 81, 0, 82, 83, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, - 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 0, 0, 0, 29, - 30, 31, 32, 33, 0, 34, 0, 0, 0, 35, - 36, 37, 38, 39, 736, 40, 0, 41, 0, 42, - 0, 0, 43, 0, 0, 0, 44, 45, 46, 47, - 0, 49, 50, 0, 51, 0, 53, 54, 55, 56, - 0, 0, 0, 0, 57, 58, 59, 374, 61, 62, - 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, - 69, 0, 0, 70, 71, 0, 72, 0, 0, 0, - 73, 4, 5, 6, 7, 8, 124, 75, 76, 77, - 9, 0, 78, 79, 80, 0, 0, 81, 0, 82, - 83, 0, 84, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, - 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 34, 0, 0, - 0, 35, 36, 37, 38, 39, 0, 40, 0, 41, - 0, 42, 742, 0, 43, 0, 0, 0, 44, 45, - 46, 47, 0, 49, 50, 0, 51, 0, 53, 54, - 55, 56, 0, 0, 0, 0, 57, 58, 59, 374, - 61, 62, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 70, 71, 0, 72, 0, - 0, 0, 73, 4, 5, 6, 7, 8, 124, 75, - 76, 77, 9, 0, 78, 79, 80, 0, 0, 81, - 0, 82, 83, 0, 84, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, - 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 0, 0, 0, 29, 30, 31, 32, 33, 0, 34, - 0, 0, 0, 35, 36, 37, 38, 39, 0, 40, - 0, 41, 0, 42, 0, 0, 43, 0, 0, 0, - 44, 45, 46, 47, 0, 49, 50, 0, 51, 0, - 53, 54, 55, 56, 0, 0, 0, 0, 57, 58, - 59, 374, 61, 62, 0, 0, 0, 0, 63, 64, - 65, 66, 67, 68, 69, 0, 0, 70, 71, 0, - 72, 0, 0, 0, 73, 4, 5, 6, 7, 8, - 124, 75, 76, 77, 9, 0, 78, 79, 80, 0, - 0, 81, 0, 82, 83, 797, 84, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, - 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, - 0, 0, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 0, 0, 0, 29, 30, 31, 32, 33, - 0, 34, 0, 0, 0, 35, 36, 37, 38, 39, - 0, 40, 0, 41, 860, 42, 0, 0, 43, 0, - 0, 0, 44, 45, 46, 47, 0, 49, 50, 0, - 51, 0, 53, 54, 55, 56, 0, 0, 0, 0, - 57, 58, 59, 374, 61, 62, 0, 0, 0, 0, - 63, 64, 65, 66, 67, 68, 69, 0, 0, 70, - 71, 0, 72, 0, 0, 0, 73, 4, 5, 6, - 7, 8, 124, 75, 76, 77, 9, 0, 78, 79, - 80, 0, 0, 81, 0, 82, 83, 0, 84, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, - 17, 18, 0, 0, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 0, 0, 0, 29, 30, 31, - 32, 33, 0, 34, 0, 0, 0, 35, 36, 37, - 38, 39, 0, 40, 0, 41, 0, 42, 0, 0, - 43, 0, 0, 0, 44, 45, 46, 47, 0, 49, - 50, 0, 51, 0, 53, 54, 55, 56, 0, 0, - 0, 0, 57, 58, 59, 374, 61, 62, 0, 0, - 0, 0, 63, 64, 65, 66, 67, 68, 69, 0, - 0, 70, 71, 0, 72, 0, 0, 0, 73, 4, - 5, 6, 7, 8, 124, 75, 76, 77, 9, 0, - 78, 79, 80, 0, 0, 81, 0, 82, 83, 874, - 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, - 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 0, 0, 0, 29, - 30, 31, 32, 33, 0, 34, 0, 0, 0, 35, - 36, 37, 38, 39, 0, 40, 0, 41, 0, 42, - 0, 0, 43, 0, 0, 0, 44, 45, 46, 47, - 0, 49, 50, 0, 51, 0, 53, 54, 55, 56, - 0, 0, 0, 0, 57, 58, 59, 374, 61, 62, - 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, - 69, 0, 0, 70, 71, 0, 72, 0, 0, 0, - 73, 4, 5, 6, 7, 8, 124, 75, 76, 77, - 9, 0, 78, 79, 80, 0, 0, 81, 0, 82, - 83, 877, 84, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, - 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 34, 0, 0, - 0, 35, 36, 37, 38, 39, 0, 40, 881, 41, - 0, 42, 0, 0, 43, 0, 0, 0, 44, 45, - 46, 47, 0, 49, 50, 0, 51, 0, 53, 54, - 55, 56, 0, 0, 0, 0, 57, 58, 59, 374, - 61, 62, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 70, 71, 0, 72, 0, - 0, 0, 73, 4, 5, 6, 7, 8, 124, 75, - 76, 77, 9, 0, 78, 79, 80, 0, 0, 81, - 0, 82, 83, 0, 84, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, - 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 0, 0, 0, 29, 30, 31, 32, 33, 0, 34, - 0, 0, 0, 35, 36, 37, 38, 39, 0, 40, - 0, 41, 0, 42, 0, 0, 43, 0, 0, 0, - 44, 45, 46, 47, 0, 49, 50, 0, 51, 0, - 53, 54, 55, 56, 0, 0, 0, 0, 57, 58, - 59, 374, 61, 62, 0, 0, 0, 0, 63, 64, - 65, 66, 67, 68, 69, 0, 0, 70, 71, 0, - 72, 0, 0, 0, 73, 4, 5, 6, 7, 8, - 124, 75, 76, 77, 9, 0, 78, 79, 80, 0, - 0, 81, 0, 82, 83, 884, 84, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, - 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, - 0, 0, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 0, 0, 0, 29, 30, 31, 32, 33, - 0, 34, 0, 0, 0, 35, 36, 37, 38, 39, - 0, 40, 0, 41, 0, 42, 0, 0, 43, 0, - 0, 0, 44, 45, 46, 47, 0, 49, 50, 0, - 51, 0, 53, 54, 55, 56, 0, 0, 0, 0, - 57, 58, 59, 374, 61, 62, 0, 0, 0, 0, - 63, 64, 65, 66, 67, 68, 69, 0, 0, 70, - 71, 0, 72, 0, 0, 0, 73, 4, 5, 6, - 7, 8, 124, 75, 76, 77, 9, 0, 78, 79, - 80, 0, 0, 81, 0, 82, 83, 895, 84, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, - 17, 18, 0, 0, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 0, 0, 0, 29, 30, 31, - 32, 33, 0, 34, 0, 0, 0, 35, 36, 37, - 38, 39, 0, 40, 0, 41, 0, 42, 0, 0, - 43, 0, 0, 0, 44, 45, 46, 47, 0, 49, - 50, 0, 51, 0, 53, 54, 55, 56, 0, 0, - 0, 0, 57, 58, 59, 374, 61, 62, 0, 0, - 0, 0, 63, 64, 65, 66, 67, 68, 69, 0, - 0, 70, 71, 0, 72, 0, 0, 0, 73, 4, - 5, 6, 7, 8, 124, 75, 76, 77, 9, 0, - 78, 79, 80, 0, 0, 81, 0, 82, 83, 907, - 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, - 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 0, 0, 0, 29, - 30, 31, 32, 33, 0, 34, 0, 0, 0, 35, - 36, 37, 38, 39, 0, 40, 0, 41, 0, 42, - 0, 0, 43, 0, 0, 0, 44, 45, 46, 47, - 0, 49, 50, 0, 51, 0, 53, 54, 55, 56, - 0, 0, 0, 0, 57, 58, 59, 374, 61, 62, - 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, - 69, 0, 0, 70, 71, 0, 72, 0, 0, 0, - 73, 4, 5, 6, 7, 8, 124, 75, 76, 77, - 9, 0, 78, 79, 80, 0, 0, 81, 0, 82, - 83, 0, 84, 0, 576, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, - 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 34, 0, 0, - 0, 35, 36, 37, 38, 39, 0, 40, 0, 41, - 0, 42, 0, 0, 43, 0, 0, 0, 44, 45, - 46, 47, 0, 49, 50, 0, 51, 0, 53, 54, - 0, 0, 0, 0, 0, 0, 57, 58, 59, 0, - 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 70, 71, 0, 72, 0, - 0, 0, 73, 4, 5, 6, 7, 8, 124, 75, - 76, 77, 9, 0, 0, 79, 80, 0, 0, 81, - 0, 82, 83, 0, 84, 0, 579, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, - 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 0, 0, 0, 29, 30, 31, 32, 33, 0, 34, - 0, 0, 0, 35, 36, 37, 38, 39, 0, 40, - 0, 41, 0, 42, 0, 0, 43, 0, 0, 0, - 44, 45, 46, 47, 0, 49, 50, 0, 51, 0, - 53, 54, 0, 0, 0, 0, 0, 0, 57, 58, - 59, 0, 0, 0, 0, 0, 0, 0, 63, 64, - 65, 66, 67, 68, 69, 0, 0, 70, 71, 0, - 72, 0, 0, 0, 73, 4, 5, 6, 7, 8, - 124, 75, 76, 77, 9, 0, 0, 79, 80, 0, - 0, 81, 0, 82, 83, 0, 84, 0, 590, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, - 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, - 0, 0, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 0, 0, 0, 29, 30, 31, 32, 33, - 0, 34, 0, 0, 0, 35, 36, 37, 38, 39, - 0, 40, 0, 41, 0, 42, 0, 0, 43, 0, - 0, 0, 44, 45, 46, 47, 0, 49, 50, 0, - 51, 0, 53, 54, 0, 0, 0, 0, 0, 0, - 57, 58, 59, 0, 0, 0, 0, 0, 0, 0, - 63, 64, 65, 66, 67, 68, 69, 0, 0, 70, - 71, 0, 72, 0, 0, 0, 73, 4, 5, 6, - 7, 8, 124, 75, 76, 77, 9, 0, 0, 79, - 80, 0, 0, 81, 0, 82, 83, 0, 84, 0, - 783, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, - 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, - 17, 18, 0, 0, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 0, 0, 0, 29, 30, 31, - 32, 33, 0, 34, 0, 0, 0, 35, 36, 37, - 38, 39, 0, 40, 0, 41, 0, 42, 0, 0, - 43, 0, 0, 0, 44, 45, 46, 47, 0, 49, - 50, 0, 51, 0, 53, 54, 0, 0, 0, 0, - 0, 0, 57, 58, 59, 0, 0, 0, 0, 0, - 0, 0, 63, 64, 65, 66, 67, 68, 69, 0, - 0, 70, 71, 0, 72, 0, 0, 0, 73, 4, - 5, 6, 7, 8, 124, 75, 76, 77, 9, 0, - 0, 79, 80, 0, 0, 81, 0, 82, 83, 0, - 84, 0, 823, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, - 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 0, 0, 0, 29, - 30, 31, 32, 33, 0, 34, 0, 0, 0, 35, - 36, 37, 38, 39, 0, 40, 0, 41, 0, 42, - 0, 0, 43, 0, 0, 0, 44, 45, 46, 47, - 0, 49, 50, 0, 51, 0, 53, 54, 0, 0, - 0, 0, 0, 0, 57, 58, 59, 0, 0, 0, - 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, - 69, 0, 0, 70, 71, 0, 72, 0, 0, 0, - 73, 4, 5, 6, 7, 8, 124, 75, 76, 77, - 9, 0, 0, 79, 80, 0, 0, 81, 0, 82, - 83, 0, 84, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, - 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 34, 0, 0, - 0, 35, 36, 37, 38, 39, 0, 40, 0, 41, - 0, 42, 0, 0, 43, 0, 0, 0, 44, 45, - 46, 47, 0, 49, 50, 0, 51, 0, 53, 54, - 0, 0, 0, 0, 0, 0, 57, 58, 59, 0, - 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 70, 71, 0, 72, 0, - 0, 0, 73, 4, 5, 6, 7, 8, 124, 75, - 76, 77, 9, 0, 0, 79, 80, 0, 0, 81, - 0, 82, 83, 0, 84, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, - 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, - 0, 0, 0, 29, 30, 122, 32, 33, 0, 0, - 0, 0, 0, 35, 36, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 47, 266, 0, 0, 0, 0, 0, - 0, 123, 0, 0, 0, 0, 0, 0, 0, 58, - 59, 0, 0, 0, 0, 0, 0, 0, 63, 64, - 65, 66, 67, 68, 69, 0, 4, 5, 6, 7, - 8, 0, 0, 0, 73, 9, 0, 0, 0, 0, - 124, 75, 76, 77, 0, 0, 0, 79, 125, 0, - 0, 81, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 0, 0, 0, 0, 29, 30, 122, 32, - 33, 0, 0, 0, 0, 0, 35, 36, 0, 0, + 26, 27, 28, 0, 0, 0, 29, 30, 31, 32, + 33, 0, 34, 0, 0, 0, 35, 36, 37, 38, + 39, 0, 40, 0, 41, 0, 42, 0, 0, 43, + 0, 0, 0, 44, 45, 46, 47, 0, 49, 50, + 0, 51, 0, 53, 54, 55, 56, 0, 0, 0, + 0, 57, 58, 59, 376, 61, 62, 0, 0, 0, + 0, 63, 64, 65, 66, 67, 68, 69, 0, 0, + 70, 71, 0, 72, 0, 0, 0, 73, 4, 5, + 6, 7, 8, 124, 75, 76, 77, 9, 0, 78, + 79, 80, 0, 0, 81, 0, 82, 83, 377, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, - 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, - 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, - 0, 63, 64, 65, 66, 67, 68, 69, 0, 4, - 5, 6, 7, 8, 0, 0, 0, 73, 9, 0, - 0, 0, 0, 124, 75, 76, 77, 0, 0, 0, - 79, 125, 0, 0, 81, 0, 185, 0, 0, 84, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, - 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 0, 0, 0, 0, 29, - 30, 122, 32, 33, 0, 0, 0, 0, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, - 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, - 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, - 69, 0, 4, 5, 6, 7, 8, 0, 0, 0, - 73, 9, 0, 0, 0, 0, 124, 75, 76, 77, - 0, 0, 0, 79, 125, 0, 0, 81, 0, 187, - 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, - 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, - 0, 0, 29, 30, 122, 32, 33, 0, 0, 0, - 0, 0, 35, 36, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 123, 0, 0, 0, 0, 0, 0, 0, 58, 59, - 0, 0, 0, 0, 0, 0, 0, 63, 64, 65, - 66, 67, 68, 69, 0, 4, 5, 6, 7, 8, - 0, 0, 0, 73, 9, 0, 0, 0, 0, 124, - 75, 76, 77, 0, 0, 0, 79, 125, 0, 0, - 81, 0, 191, 0, 0, 84, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, - 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, - 0, 0, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 0, 0, 0, 0, 29, 30, 122, 32, 33, - 0, 0, 0, 0, 0, 35, 36, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, - 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, - 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, - 63, 64, 65, 66, 67, 68, 69, 0, 4, 5, - 6, 7, 8, 0, 0, 0, 73, 9, 0, 0, - 0, 0, 124, 75, 76, 77, 0, 0, 0, 79, - 125, 403, 0, 81, 314, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 0, 0, 0, 0, 29, 30, - 122, 32, 33, 0, 0, 0, 0, 0, 35, 36, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, - 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, - 0, 0, 0, 0, 58, 59, 0, 0, 0, 0, + 24, 25, 26, 27, 28, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 34, 0, 0, 0, 35, 36, + 37, 38, 39, 0, 40, 0, 41, 0, 42, 0, + 0, 43, 0, 0, 0, 44, 45, 46, 47, 0, + 49, 50, 0, 51, 0, 53, 54, 55, 56, 0, + 0, 0, 0, 57, 58, 59, 376, 61, 62, 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, - 0, 4, 5, 6, 7, 8, 0, 0, 0, 73, - 9, 0, 0, 0, 0, 124, 75, 76, 77, 0, - 0, 0, 79, 125, 0, 0, 81, 0, 0, 0, - 429, 84, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, - 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, - 0, 29, 30, 122, 32, 33, 0, 0, 0, 0, - 0, 35, 36, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 70, 71, 0, 72, 0, 0, 0, 73, + 4, 5, 6, 7, 8, 124, 75, 76, 77, 9, + 0, 78, 79, 80, 0, 0, 81, 0, 82, 83, + 500, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 0, 0, 0, 0, 0, 0, 0, 123, - 0, 0, 0, 0, 0, 0, 0, 58, 59, 0, - 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, - 67, 68, 69, 0, 4, 5, 6, 7, 8, 0, - 0, 0, 73, 9, 0, 0, 0, 0, 124, 75, - 76, 77, 0, 0, 0, 79, 125, 0, 0, 81, - 0, 0, 0, 461, 84, 0, 0, 0, 0, 0, + 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, + 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 0, 0, 0, + 29, 30, 31, 32, 33, 0, 34, 0, 0, 0, + 35, 36, 37, 38, 39, 742, 40, 0, 41, 0, + 42, 0, 0, 43, 0, 0, 0, 44, 45, 46, + 47, 0, 49, 50, 0, 51, 0, 53, 54, 55, + 56, 0, 0, 0, 0, 57, 58, 59, 376, 61, + 62, 0, 0, 0, 0, 63, 64, 65, 66, 67, + 68, 69, 0, 0, 70, 71, 0, 72, 0, 0, + 0, 73, 4, 5, 6, 7, 8, 124, 75, 76, + 77, 9, 0, 78, 79, 80, 0, 0, 81, 0, + 82, 83, 0, 84, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, + 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, + 0, 0, 29, 30, 31, 32, 33, 0, 34, 0, + 0, 0, 35, 36, 37, 38, 39, 0, 40, 0, + 41, 0, 42, 748, 0, 43, 0, 0, 0, 44, + 45, 46, 47, 0, 49, 50, 0, 51, 0, 53, + 54, 55, 56, 0, 0, 0, 0, 57, 58, 59, + 376, 61, 62, 0, 0, 0, 0, 63, 64, 65, + 66, 67, 68, 69, 0, 0, 70, 71, 0, 72, + 0, 0, 0, 73, 4, 5, 6, 7, 8, 124, + 75, 76, 77, 9, 0, 78, 79, 80, 0, 0, + 81, 0, 82, 83, 0, 84, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, + 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, + 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 0, 0, 0, 29, 30, 31, 32, 33, 0, + 34, 0, 0, 0, 35, 36, 37, 38, 39, 0, + 40, 0, 41, 0, 42, 0, 0, 43, 0, 0, + 0, 44, 45, 46, 47, 0, 49, 50, 0, 51, + 0, 53, 54, 55, 56, 0, 0, 0, 0, 57, + 58, 59, 376, 61, 62, 0, 0, 0, 0, 63, + 64, 65, 66, 67, 68, 69, 0, 0, 70, 71, + 0, 72, 0, 0, 0, 73, 4, 5, 6, 7, + 8, 124, 75, 76, 77, 9, 0, 78, 79, 80, + 0, 0, 81, 0, 82, 83, 804, 84, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, + 0, 0, 0, 12, 0, 13, 14, 15, 16, 17, + 18, 0, 0, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 0, 0, 0, 29, 30, 31, 32, + 33, 0, 34, 0, 0, 0, 35, 36, 37, 38, + 39, 0, 40, 0, 41, 867, 42, 0, 0, 43, + 0, 0, 0, 44, 45, 46, 47, 0, 49, 50, + 0, 51, 0, 53, 54, 55, 56, 0, 0, 0, + 0, 57, 58, 59, 376, 61, 62, 0, 0, 0, + 0, 63, 64, 65, 66, 67, 68, 69, 0, 0, + 70, 71, 0, 72, 0, 0, 0, 73, 4, 5, + 6, 7, 8, 124, 75, 76, 77, 9, 0, 78, + 79, 80, 0, 0, 81, 0, 82, 83, 0, 84, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, + 16, 17, 18, 0, 0, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 34, 0, 0, 0, 35, 36, + 37, 38, 39, 0, 40, 0, 41, 0, 42, 0, + 0, 43, 0, 0, 0, 44, 45, 46, 47, 0, + 49, 50, 0, 51, 0, 53, 54, 55, 56, 0, + 0, 0, 0, 57, 58, 59, 376, 61, 62, 0, + 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, + 0, 0, 70, 71, 0, 72, 0, 0, 0, 73, + 4, 5, 6, 7, 8, 124, 75, 76, 77, 9, + 0, 78, 79, 80, 0, 0, 81, 0, 82, 83, + 881, 84, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, + 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 0, 0, 0, + 29, 30, 31, 32, 33, 0, 34, 0, 0, 0, + 35, 36, 37, 38, 39, 0, 40, 0, 41, 0, + 42, 0, 0, 43, 0, 0, 0, 44, 45, 46, + 47, 0, 49, 50, 0, 51, 0, 53, 54, 55, + 56, 0, 0, 0, 0, 57, 58, 59, 376, 61, + 62, 0, 0, 0, 0, 63, 64, 65, 66, 67, + 68, 69, 0, 0, 70, 71, 0, 72, 0, 0, + 0, 73, 4, 5, 6, 7, 8, 124, 75, 76, + 77, 9, 0, 78, 79, 80, 0, 0, 81, 0, + 82, 83, 884, 84, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, + 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, + 0, 0, 29, 30, 31, 32, 33, 0, 34, 0, + 0, 0, 35, 36, 37, 38, 39, 0, 40, 888, + 41, 0, 42, 0, 0, 43, 0, 0, 0, 44, + 45, 46, 47, 0, 49, 50, 0, 51, 0, 53, + 54, 55, 56, 0, 0, 0, 0, 57, 58, 59, + 376, 61, 62, 0, 0, 0, 0, 63, 64, 65, + 66, 67, 68, 69, 0, 0, 70, 71, 0, 72, + 0, 0, 0, 73, 4, 5, 6, 7, 8, 124, + 75, 76, 77, 9, 0, 78, 79, 80, 0, 0, + 81, 0, 82, 83, 0, 84, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, + 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, + 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 0, 0, 0, 29, 30, 31, 32, 33, 0, + 34, 0, 0, 0, 35, 36, 37, 38, 39, 0, + 40, 0, 41, 0, 42, 0, 0, 43, 0, 0, + 0, 44, 45, 46, 47, 0, 49, 50, 0, 51, + 0, 53, 54, 55, 56, 0, 0, 0, 0, 57, + 58, 59, 376, 61, 62, 0, 0, 0, 0, 63, + 64, 65, 66, 67, 68, 69, 0, 0, 70, 71, + 0, 72, 0, 0, 0, 73, 4, 5, 6, 7, + 8, 124, 75, 76, 77, 9, 0, 78, 79, 80, + 0, 0, 81, 0, 82, 83, 891, 84, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, + 0, 0, 0, 12, 0, 13, 14, 15, 16, 17, + 18, 0, 0, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 0, 0, 0, 29, 30, 31, 32, + 33, 0, 34, 0, 0, 0, 35, 36, 37, 38, + 39, 0, 40, 0, 41, 0, 42, 0, 0, 43, + 0, 0, 0, 44, 45, 46, 47, 0, 49, 50, + 0, 51, 0, 53, 54, 55, 56, 0, 0, 0, + 0, 57, 58, 59, 376, 61, 62, 0, 0, 0, + 0, 63, 64, 65, 66, 67, 68, 69, 0, 0, + 70, 71, 0, 72, 0, 0, 0, 73, 4, 5, + 6, 7, 8, 124, 75, 76, 77, 9, 0, 78, + 79, 80, 0, 0, 81, 0, 82, 83, 902, 84, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, + 16, 17, 18, 0, 0, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 34, 0, 0, 0, 35, 36, + 37, 38, 39, 0, 40, 0, 41, 0, 42, 0, + 0, 43, 0, 0, 0, 44, 45, 46, 47, 0, + 49, 50, 0, 51, 0, 53, 54, 55, 56, 0, + 0, 0, 0, 57, 58, 59, 376, 61, 62, 0, + 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, + 0, 0, 70, 71, 0, 72, 0, 0, 0, 73, + 4, 5, 6, 7, 8, 124, 75, 76, 77, 9, + 0, 78, 79, 80, 0, 0, 81, 0, 82, 83, + 914, 84, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, + 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 0, 0, 0, + 29, 30, 31, 32, 33, 0, 34, 0, 0, 0, + 35, 36, 37, 38, 39, 0, 40, 0, 41, 0, + 42, 0, 0, 43, 0, 0, 0, 44, 45, 46, + 47, 0, 49, 50, 0, 51, 0, 53, 54, 55, + 56, 0, 0, 0, 0, 57, 58, 59, 376, 61, + 62, 0, 0, 0, 0, 63, 64, 65, 66, 67, + 68, 69, 0, 0, 70, 71, 0, 72, 0, 0, + 0, 73, 4, 5, 6, 7, 8, 124, 75, 76, + 77, 9, 0, 78, 79, 80, 0, 0, 81, 0, + 82, 83, 0, 84, 0, 580, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, + 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, + 0, 0, 29, 30, 31, 32, 33, 0, 34, 0, + 0, 0, 35, 36, 37, 38, 39, 0, 40, 0, + 41, 0, 42, 0, 0, 43, 0, 0, 0, 44, + 45, 46, 47, 0, 49, 50, 0, 51, 0, 53, + 54, 0, 0, 0, 0, 0, 0, 57, 58, 59, + 0, 0, 0, 0, 0, 0, 0, 63, 64, 65, + 66, 67, 68, 69, 0, 0, 70, 71, 0, 72, + 0, 0, 0, 73, 4, 5, 6, 7, 8, 124, + 75, 76, 77, 9, 0, 0, 79, 80, 0, 0, + 81, 0, 82, 83, 0, 84, 0, 583, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, + 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, + 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 0, 0, 0, 29, 30, 31, 32, 33, 0, + 34, 0, 0, 0, 35, 36, 37, 38, 39, 0, + 40, 0, 41, 0, 42, 0, 0, 43, 0, 0, + 0, 44, 45, 46, 47, 0, 49, 50, 0, 51, + 0, 53, 54, 0, 0, 0, 0, 0, 0, 57, + 58, 59, 0, 0, 0, 0, 0, 0, 0, 63, + 64, 65, 66, 67, 68, 69, 0, 0, 70, 71, + 0, 72, 0, 0, 0, 73, 4, 5, 6, 7, + 8, 124, 75, 76, 77, 9, 0, 0, 79, 80, + 0, 0, 81, 0, 82, 83, 0, 84, 0, 594, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, + 0, 0, 0, 12, 0, 13, 14, 15, 16, 17, + 18, 0, 0, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 0, 0, 0, 29, 30, 31, 32, + 33, 0, 34, 0, 0, 0, 35, 36, 37, 38, + 39, 0, 40, 0, 41, 0, 42, 0, 0, 43, + 0, 0, 0, 44, 45, 46, 47, 0, 49, 50, + 0, 51, 0, 53, 54, 0, 0, 0, 0, 0, + 0, 57, 58, 59, 0, 0, 0, 0, 0, 0, + 0, 63, 64, 65, 66, 67, 68, 69, 0, 0, + 70, 71, 0, 72, 0, 0, 0, 73, 4, 5, + 6, 7, 8, 124, 75, 76, 77, 9, 0, 0, + 79, 80, 0, 0, 81, 0, 82, 83, 0, 84, + 0, 790, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, + 16, 17, 18, 0, 0, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 34, 0, 0, 0, 35, 36, + 37, 38, 39, 0, 40, 0, 41, 0, 42, 0, + 0, 43, 0, 0, 0, 44, 45, 46, 47, 0, + 49, 50, 0, 51, 0, 53, 54, 0, 0, 0, + 0, 0, 0, 57, 58, 59, 0, 0, 0, 0, + 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, + 0, 0, 70, 71, 0, 72, 0, 0, 0, 73, + 4, 5, 6, 7, 8, 124, 75, 76, 77, 9, + 0, 0, 79, 80, 0, 0, 81, 0, 82, 83, + 0, 84, 0, 830, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, + 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 0, 0, 0, + 29, 30, 31, 32, 33, 0, 34, 0, 0, 0, + 35, 36, 37, 38, 39, 0, 40, 0, 41, 0, + 42, 0, 0, 43, 0, 0, 0, 44, 45, 46, + 47, 0, 49, 50, 0, 51, 0, 53, 54, 0, + 0, 0, 0, 0, 0, 57, 58, 59, 0, 0, + 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, + 68, 69, 0, 0, 70, 71, 0, 72, 0, 0, + 0, 73, 4, 5, 6, 7, 8, 124, 75, 76, + 77, 9, 0, 0, 79, 80, 0, 0, 81, 0, + 82, 83, 0, 84, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, + 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, + 0, 0, 29, 30, 31, 32, 33, 0, 34, 0, + 0, 0, 35, 36, 37, 38, 39, 0, 40, 0, + 41, 0, 42, 0, 0, 43, 0, 0, 0, 44, + 45, 46, 47, 0, 49, 50, 0, 51, 0, 53, + 54, 0, 0, 0, 0, 0, 0, 57, 58, 59, + 0, 0, 0, 0, 0, 0, 0, 63, 64, 65, + 66, 67, 68, 69, 0, 0, 70, 71, 0, 72, + 0, 0, 0, 73, 4, 5, 6, 7, 8, 124, + 75, 76, 77, 9, 0, 0, 79, 80, 0, 0, + 81, 0, 82, 83, 0, 84, 0, 0, 0, 0, + 0, 0, 0, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, 0, 29, 30, 122, 32, 33, 0, - 0, 0, 0, 0, 35, 36, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 36, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 47, 267, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, 0, 4, 5, 6, 7, 8, 0, 0, 0, 73, 9, 0, 0, 0, 0, 124, 75, 76, 77, 0, 0, 0, 79, 125, - 0, 0, 81, 0, 0, 0, 463, 84, 0, 0, + 0, 385, 81, 0, 0, 0, 156, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, 23, 24, @@ -1621,7 +1536,7 @@ static const yytype_int16 yytable[] = 0, 0, 63, 64, 65, 66, 67, 68, 69, 0, 4, 5, 6, 7, 8, 0, 0, 0, 73, 9, 0, 0, 0, 0, 124, 75, 76, 77, 0, 0, - 0, 79, 125, 0, 0, 81, 0, 0, 0, 653, + 0, 79, 125, 0, 0, 81, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, @@ -1635,7 +1550,7 @@ static const yytype_int16 yytable[] = 68, 69, 0, 4, 5, 6, 7, 8, 0, 0, 0, 73, 9, 0, 0, 0, 0, 124, 75, 76, 77, 0, 0, 0, 79, 125, 0, 0, 81, 0, - 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, + 186, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, @@ -1648,7 +1563,7 @@ static const yytype_int16 yytable[] = 65, 66, 67, 68, 69, 0, 4, 5, 6, 7, 8, 0, 0, 0, 73, 9, 0, 0, 0, 0, 124, 75, 76, 77, 0, 0, 0, 79, 125, 0, - 0, 81, 0, 0, 0, 0, 84, 0, 0, 0, + 0, 81, 0, 188, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, 23, 24, 25, @@ -1658,624 +1573,764 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, - 0, 63, 64, 65, 66, 67, 68, 69, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, - 0, 0, 0, 124, 75, 76, 77, 239, 240, 241, - 79, 80, 0, 0, 81, 0, 0, 0, 0, 84, - 0, 0, 0, 242, 0, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 0, 266, - 239, 240, 241, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 242, 0, 243, 244, + 0, 63, 64, 65, 66, 67, 68, 69, 0, 4, + 5, 6, 7, 8, 0, 0, 0, 73, 9, 0, + 0, 0, 0, 124, 75, 76, 77, 0, 0, 0, + 79, 125, 0, 0, 81, 0, 192, 0, 0, 84, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 11, 0, 0, 0, 0, 12, 0, 13, 14, + 15, 16, 17, 18, 0, 0, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 0, 0, 0, 0, 29, + 30, 122, 32, 33, 0, 0, 0, 0, 0, 35, + 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, + 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, + 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, + 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, + 69, 0, 4, 5, 6, 7, 8, 0, 0, 0, + 73, 9, 0, 0, 0, 0, 124, 75, 76, 77, + 0, 0, 0, 79, 125, 405, 0, 81, 316, 0, + 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 11, 0, 0, 0, 0, 12, + 0, 13, 14, 15, 16, 17, 18, 0, 0, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, + 0, 0, 29, 30, 122, 32, 33, 0, 0, 0, + 0, 0, 35, 36, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, + 123, 0, 0, 0, 0, 0, 0, 0, 58, 59, + 0, 0, 0, 0, 0, 0, 0, 63, 64, 65, + 66, 67, 68, 69, 0, 4, 5, 6, 7, 8, + 0, 0, 0, 73, 9, 0, 0, 0, 0, 124, + 75, 76, 77, 0, 0, 0, 79, 125, 0, 0, + 81, 0, 0, 0, 431, 84, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, + 0, 0, 12, 0, 13, 14, 15, 16, 17, 18, + 0, 0, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 0, 0, 0, 0, 29, 30, 122, 32, 33, + 0, 0, 0, 0, 0, 35, 36, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, + 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, + 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, + 63, 64, 65, 66, 67, 68, 69, 0, 4, 5, + 6, 7, 8, 0, 0, 0, 73, 9, 0, 0, + 0, 0, 124, 75, 76, 77, 0, 0, 0, 79, + 125, 0, 0, 81, 0, 0, 0, 463, 84, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, + 16, 17, 18, 0, 0, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 0, 0, 0, 0, 29, 30, + 122, 32, 33, 0, 0, 0, 0, 0, 35, 36, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, + 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, + 0, 0, 0, 0, 58, 59, 0, 0, 0, 0, + 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, + 0, 4, 5, 6, 7, 8, 0, 0, 0, 73, + 9, 0, 0, 0, 0, 124, 75, 76, 77, 0, + 0, 0, 79, 125, 0, 0, 81, 0, 0, 0, + 465, 84, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 11, 0, 0, 0, 0, 12, 0, + 13, 14, 15, 16, 17, 18, 0, 0, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, + 0, 29, 30, 122, 32, 33, 0, 0, 0, 0, + 0, 35, 36, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 47, 0, 0, 0, 0, 0, 0, 0, 123, + 0, 0, 0, 0, 0, 0, 0, 58, 59, 0, + 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, + 67, 68, 69, 0, 4, 5, 6, 7, 8, 0, + 0, 0, 73, 9, 0, 0, 0, 0, 124, 75, + 76, 77, 0, 0, 0, 79, 125, 0, 0, 81, + 0, 0, 0, 657, 84, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, + 0, 12, 0, 13, 14, 15, 16, 17, 18, 0, + 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 0, 0, 0, 0, 29, 30, 122, 32, 33, 0, + 0, 0, 0, 0, 35, 36, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, + 58, 59, 0, 0, 0, 0, 0, 0, 0, 63, + 64, 65, 66, 67, 68, 69, 0, 4, 5, 6, + 7, 8, 0, 0, 0, 73, 9, 0, 0, 0, + 0, 124, 75, 76, 77, 0, 0, 0, 79, 125, + 0, 0, 81, 0, 0, 0, 0, 84, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, + 0, 0, 0, 0, 12, 0, 13, 14, 15, 16, + 17, 18, 0, 0, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 0, 0, 0, 0, 29, 30, 122, + 32, 33, 0, 0, 0, 0, 0, 35, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, + 0, 0, 0, 58, 59, 0, 0, 0, 0, 0, + 0, 0, 63, 64, 65, 66, 67, 68, 69, 0, + 4, 5, 6, 7, 8, 0, 0, 0, 73, 9, + 0, 0, 0, 0, 124, 75, 76, 77, 0, 0, + 0, 79, 125, 0, 0, 81, 0, 0, 0, 0, + 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 0, 0, 0, 0, 12, 0, 13, + 14, 15, 16, 17, 18, 0, 0, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 0, 0, 0, 0, + 29, 30, 122, 32, 33, 0, 0, 0, 0, 0, + 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 123, 0, + 0, 0, 0, 0, 0, 0, 58, 59, 0, 0, + 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, + 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 73, 0, 0, 0, 0, 0, 124, 75, 76, + 77, 240, 241, 242, 79, 80, 0, 0, 81, 0, + 0, 0, 0, 84, 0, 0, 0, 243, 0, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 0, 266, 239, 240, 241, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, - 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 0, 266, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 239, 240, 241, 0, + 265, 266, 0, 267, 240, 241, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 242, 523, 243, 244, 245, 246, 247, 248, + 243, 0, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 0, 267, 240, 241, 242, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 243, 0, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 0, 266, 239, - 240, 241, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 242, 567, 243, 244, 245, + 259, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 240, 241, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 243, 570, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 0, 266, 0, 0, 239, 240, 241, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 611, - 242, 791, 243, 244, 245, 246, 247, 248, 249, 250, + 266, 0, 267, 0, 0, 240, 241, 242, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 615, 243, 798, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 0, 266, 0, 0, 0, - 0, 0, 0, 0, 0, 239, 240, 241, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 242, 646, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 0, 266, 239, 240, - 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 242, 728, 243, 244, 245, 246, + 261, 262, 263, 264, 265, 266, 0, 267, 240, 241, + 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 650, 243, 0, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 0, + 267, 0, 0, 0, 0, 0, 0, 0, 0, 240, + 241, 242, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 243, 733, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 0, - 266, 239, 240, 241, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 242, 792, 243, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 0, 267, 240, 241, 242, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 243, 799, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 0, 266, 0, 0, 0, 0, 0, 0, - 0, 0, 239, 240, 241, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 242, 267, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 0, 266, 239, 240, 241, 0, 0, + 264, 265, 266, 0, 267, 240, 241, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 242, 332, 243, 244, 245, 246, 247, 248, 249, + 0, 243, 268, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 0, 267, 0, 0, + 0, 0, 0, 0, 0, 0, 240, 241, 242, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 243, 334, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 0, 266, 239, 240, - 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 242, 333, 243, 244, 245, 246, + 260, 261, 262, 263, 264, 265, 266, 0, 267, 240, + 241, 242, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 243, 335, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 0, - 266, 0, 0, 0, 0, 0, 0, 0, 0, 239, - 240, 241, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 242, 339, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 0, 266, 0, 239, 240, 241, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 372, 242, - 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 0, 266, 239, 240, 241, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 457, 242, 0, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 0, 266, 0, - 0, 0, 0, 0, 0, 239, 240, 241, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 242, 470, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 0, 266, 0, 239, - 240, 241, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 242, 471, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 0, 266, 239, 240, 241, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 242, 476, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 0, 266, 0, 0, 0, 0, 0, - 0, 239, 240, 241, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 242, 484, 243, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 0, 267, 240, 241, 242, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 243, 341, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 0, 266, 0, 239, 240, 241, 0, 0, + 264, 265, 266, 0, 267, 0, 0, 0, 0, 0, + 0, 0, 240, 241, 242, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 243, 459, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 240, 241, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 242, 659, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 0, 266, 239, 240, - 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 242, 858, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 0, - 266, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 239, 240, 241, 0, - 0, 0, 0, 0, 879, 0, 0, 0, 0, 0, - 0, 0, 242, 302, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 0, 266, 485, - 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 370, 0, 0, 0, - 487, 0, 0, 239, 240, 241, 0, 0, 29, 30, - 137, 0, 0, 0, 0, 0, 0, 0, 488, 242, - 552, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 0, 266, 138, 0, 0, 0, - 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 489, 65, 66, 67, 68, 69, - 0, 0, 0, 0, 0, 239, 240, 241, 0, 73, - 0, 0, 0, 0, 0, 490, 75, 76, 491, 0, - 0, 242, 79, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 0, 266, 240, 241, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 242, 0, 243, 244, 245, 246, 247, + 0, 243, 473, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 0, 267, 240, 241, + 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 243, 474, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 242, 266, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 0, 266, 243, 244, 245, 246, 247, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 0, + 267, 0, 0, 0, 0, 0, 0, 0, 240, 241, + 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 243, 479, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 0, 266, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 0, 266, 247, 248, 249, 250, 251, 252, 253, 254, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 0, + 267, 240, 241, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 243, 487, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 0, 266 + 265, 266, 0, 267, 240, 241, 242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 243, 664, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 0, 267, 0, 0, 0, + 0, 0, 0, 0, 240, 241, 242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 243, 865, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 0, 267, 0, 0, 0, + 0, 0, 0, 0, 0, 240, 241, 242, 0, 0, + 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, + 0, 243, 303, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 0, 267, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 240, 241, 242, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 372, 243, 555, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 0, 0, 0, 0, 0, 0, 240, 241, 242, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 243, 576, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 0, 267, 241, + 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 243, 0, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 242, + 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 243, 0, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 0, 267, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 0, 267 }; static const yytype_int16 yycheck[] = { - 2, 126, 25, 25, 2, 2, 312, 49, 505, 14, - 15, 712, 195, 707, 477, 266, 176, 8, 217, 8, - 25, 2, 25, 238, 8, 8, 382, 26, 8, 8, - 8, 8, 594, 8, 8, 8, 8, 8, 80, 8, - 26, 538, 32, 81, 65, 636, 635, 52, 75, 107, - 77, 0, 54, 754, 65, 153, 65, 38, 65, 26, - 77, 98, 99, 161, 161, 65, 161, 153, 283, 74, - 285, 153, 77, 282, 147, 161, 161, 237, 65, 161, - 153, 75, 207, 298, 299, 161, 103, 77, 161, 32, - 161, 25, 115, 308, 53, 54, 311, 312, 65, 161, - 309, 159, 32, 141, 25, 461, 668, 463, 670, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 123, 713, 335, 284, 77, 286, 75, 165, 77, - 290, 291, 292, 77, 77, 140, 147, 349, 147, 166, - 182, 75, 75, 164, 77, 75, 169, 77, 335, 53, - 54, 156, 161, 164, 75, 164, 161, 164, 77, 75, - 369, 161, 349, 77, 164, 164, 75, 161, 77, 368, - 160, 164, 163, 867, 163, 164, 765, 163, 769, 163, - 163, 111, 75, 163, 163, 163, 163, 162, 162, 162, - 162, 162, 197, 162, 32, 129, 147, 202, 661, 161, - 901, 75, 153, 77, 32, 210, 211, 212, 129, 214, - 95, 216, 95, 75, 166, 238, 150, 160, 166, 153, - 150, 155, 166, 153, 226, 161, 98, 99, 162, 150, - 75, 161, 153, 166, 155, 238, 166, 153, 122, 77, - 75, 14, 15, 266, 266, 147, 160, 166, 164, 77, - 147, 153, 25, 161, 75, 164, 153, 166, 162, 163, - 283, 266, 285, 266, 161, 147, 162, 163, 153, 481, - 153, 153, 66, 485, 486, 298, 299, 75, 147, 161, - 283, 75, 285, 77, 153, 308, 162, 163, 311, 312, - 295, 153, 166, 165, 481, 298, 299, 653, 485, 486, - 487, 306, 553, 153, 161, 308, 122, 516, 311, 312, - 97, 98, 99, 163, 164, 150, 528, 111, 153, 97, - 98, 99, 161, 389, 75, 391, 77, 161, 370, 150, - 335, 129, 153, 70, 71, 161, 338, 342, 161, 548, - 549, 528, 70, 71, 349, 163, 164, 556, 557, 655, - 75, 560, 150, 14, 15, 153, 150, 155, 164, 153, - 111, 47, 48, 49, 366, 51, 75, 161, 366, 366, - 14, 15, 166, 75, 75, 77, 399, 382, 163, 32, - 65, 147, 161, 156, 389, 366, 391, 147, 65, 394, - 126, 65, 65, 576, 891, 65, 579, 65, 103, 150, - 612, 153, 153, 51, 564, 49, 153, 590, 66, 111, - 161, 167, 147, 164, 601, 166, 147, 8, 147, 725, - 153, 153, 103, 161, 429, 612, 128, 147, 126, 202, - 111, 112, 113, 114, 115, 116, 80, 210, 211, 212, - 655, 214, 44, 45, 46, 47, 48, 49, 150, 51, - 87, 153, 75, 163, 666, 13, 461, 163, 463, 161, - 672, 13, 674, 162, 166, 162, 162, 533, 75, 75, - 75, 77, 124, 124, 479, 480, 481, 161, 167, 666, - 485, 486, 487, 161, 167, 672, 491, 674, 648, 649, - 471, 163, 8, 266, 95, 476, 13, 680, 75, 77, - 505, 506, 483, 508, 716, 111, 161, 512, 513, 163, - 725, 161, 156, 162, 161, 75, 518, 77, 8, 162, - 518, 518, 162, 528, 13, 530, 125, 161, 533, 716, - 553, 553, 164, 538, 539, 161, 167, 518, 182, 161, - 167, 162, 161, 161, 150, 161, 75, 153, 553, 161, - 553, 111, 167, 167, 167, 161, 167, 153, 202, 771, - 166, 147, 335, 75, 630, 162, 210, 211, 212, 13, - 214, 163, 13, 162, 162, 8, 349, 153, 162, 164, - 585, 8, 65, 795, 771, 65, 126, 799, 163, 127, - 150, 13, 804, 153, 163, 163, 601, 602, 8, 127, - 783, 161, 167, 75, 816, 161, 166, 612, 795, 382, - 793, 164, 799, 679, 162, 162, 162, 804, 163, 77, - 13, 626, 109, 162, 126, 630, 162, 810, 694, 816, - 635, 814, 655, 167, 77, 847, 162, 820, 162, 162, - 823, 853, 163, 162, 162, 828, 75, 162, 653, 832, - 26, 161, 655, 13, 167, 657, 429, 662, 660, 871, - 847, 666, 167, 161, 163, 667, 853, 672, 162, 674, - 163, 163, 127, 77, 679, 13, 13, 75, 164, 862, - 164, 13, 807, 161, 871, 26, 104, 72, 461, 694, - 463, 109, 163, 111, 112, 113, 114, 115, 116, 117, - 162, 164, 725, 77, 706, 13, 479, 480, 481, 77, - 893, 716, 485, 486, 487, 111, 112, 113, 114, 115, - 116, 904, 725, 13, 163, 95, 370, 164, 163, 165, - 95, 154, 163, 506, 800, 508, 802, 13, 382, 512, - 513, 147, 75, 163, 75, 161, 26, 165, 77, 163, - 75, 753, 733, 75, 8, 528, 607, 162, 739, 740, - 765, 342, 506, 607, 533, 104, 771, 586, 662, 539, - 109, 837, 111, 112, 113, 114, 115, 116, 117, 740, - 553, 527, 790, 347, 837, 429, 629, 81, 643, 601, - 795, 600, 513, 685, 799, 800, 512, 802, 215, 804, - 202, 782, 868, -1, -1, 775, -1, 14, 15, -1, - -1, 816, 585, -1, -1, -1, -1, 461, 25, 463, - -1, -1, -1, -1, 826, -1, 165, 829, 601, -1, - -1, 897, 837, -1, -1, 479, 480, -1, -1, 612, - -1, -1, 847, -1, -1, -1, 848, -1, 853, -1, - 852, -1, -1, -1, 856, -1, -1, 859, -1, 861, - -1, 863, 506, 868, 508, -1, 871, -1, 512, 513, - -1, -1, -1, -1, -1, -1, -1, 858, -1, -1, - 653, 883, -1, -1, -1, -1, 891, -1, -1, 662, - -1, -1, 897, 666, -1, -1, -1, 899, -1, 672, - -1, 674, -1, -1, 906, -1, -1, -1, -1, -1, - -1, -1, 4, 5, -1, 7, 8, 9, 10, 11, - 12, 13, -1, -1, 16, 17, 18, 19, 20, 21, - 22, 23, 24, -1, 26, -1, -1, -1, -1, -1, - -1, 585, -1, 716, -1, 37, -1, -1, -1, 156, - -1, -1, 44, 45, -1, -1, -1, 49, -1, 51, + 2, 2, 126, 25, 2, 2, 314, 712, 165, 14, + 15, 196, 49, 25, 391, 508, 393, 239, 717, 267, + 25, 384, 8, 218, 8, 480, 177, 8, 8, 283, + 8, 8, 26, 8, 8, 25, 8, 26, 8, 639, + 38, 8, 8, 80, 77, 14, 15, 52, 541, 8, + 8, 65, 54, 307, 25, 65, 32, 95, 75, 640, + 77, 760, 284, 0, 286, 65, 75, 75, 107, 74, + 26, 32, 77, 77, 65, 153, 147, 299, 300, 633, + 49, 161, 153, 161, 208, 75, 153, 238, 75, 311, + 161, 313, 314, 25, 162, 163, 163, 164, 153, 161, + 463, 77, 465, 115, 161, 659, 161, 32, 81, 65, + 75, 80, 77, 77, 161, 153, 77, 371, 65, 147, + 159, 123, 14, 15, 75, 153, 77, 160, 77, 75, + 65, 77, 147, 25, 285, 140, 287, 718, 153, 129, + 291, 292, 293, 75, 153, 161, 183, 147, 161, 166, + 164, 156, 77, 161, 164, 164, 147, 162, 170, 536, + 150, 161, 166, 153, 164, 155, 153, 75, 141, 874, + 164, 771, 162, 164, 163, 370, 75, 163, 164, 163, + 95, 598, 163, 163, 160, 163, 163, 156, 163, 163, + 162, 75, 162, 198, 775, 162, 162, 129, 203, 160, + 75, 166, 166, 162, 162, 77, 211, 212, 213, 908, + 215, 666, 217, 164, 183, 166, 32, 166, 150, 161, + 166, 153, 32, 155, 153, 227, 161, 239, 161, 164, + 66, 103, 161, 75, 203, 77, 98, 99, 153, 75, + 164, 77, 211, 212, 213, 267, 215, 147, 122, 98, + 99, 150, 122, 153, 153, 267, 673, 634, 675, 75, + 161, 77, 267, 161, 156, 519, 150, 77, 239, 153, + 147, 147, 284, 161, 286, 111, 153, 153, 161, 75, + 97, 98, 99, 161, 161, 161, 75, 299, 300, 75, + 75, 296, 77, 161, 657, 111, 267, 551, 552, 311, + 164, 313, 314, 165, 309, 559, 560, 684, 556, 563, + 75, 203, 163, 284, 150, 286, 165, 153, 32, 211, + 212, 213, 699, 215, 166, 161, 111, 65, 299, 300, + 166, 161, 337, 129, 150, 372, 147, 153, 340, 344, + 311, 147, 313, 314, 65, 161, 351, 53, 54, 75, + 166, 77, 660, 126, 150, 162, 163, 153, 75, 155, + 77, 97, 98, 99, 65, 150, 368, 368, 153, 65, + 368, 368, 70, 71, 65, 267, 161, 153, 75, 384, + 77, 166, 70, 71, 65, 111, 391, 103, 393, 401, + 51, 396, 163, 164, 111, 580, 122, 153, 583, 66, + 47, 48, 49, 372, 51, 898, 14, 15, 147, 594, + 147, 8, 167, 161, 111, 384, 567, 147, 153, 153, + 147, 126, 730, 87, 150, 75, 431, 153, 13, 13, + 807, 128, 809, 150, 163, 161, 153, 162, 660, 163, + 166, 75, 162, 162, 161, 337, 75, 164, 124, 166, + 124, 161, 167, 150, 167, 163, 153, 161, 463, 351, + 465, 8, 431, 95, 161, 13, 75, 844, 161, 166, + 111, 112, 113, 114, 115, 116, 474, 482, 483, 484, + 162, 479, 77, 488, 489, 490, 163, 162, 486, 494, + 647, 161, 384, 161, 463, 8, 465, 75, 875, 77, + 685, 652, 653, 508, 509, 162, 511, 13, 730, 125, + 515, 516, 164, 482, 483, 161, 167, 161, 161, 521, + 521, 75, 162, 521, 521, 161, 531, 904, 533, 167, + 161, 536, 167, 111, 556, 161, 541, 542, 161, 431, + 509, 162, 511, 167, 556, 167, 515, 516, 167, 153, + 75, 556, 13, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 147, 13, 163, 162, 104, + 162, 463, 150, 465, 109, 153, 111, 112, 113, 114, + 115, 116, 117, 161, 589, 556, 153, 164, 166, 8, + 482, 483, 484, 53, 54, 8, 488, 489, 490, 162, + 605, 606, 65, 65, 164, 790, 126, 163, 127, 13, + 163, 616, 163, 127, 8, 800, 75, 509, 167, 511, + 589, 161, 164, 515, 516, 630, 162, 109, 162, 634, + 165, 163, 817, 162, 639, 77, 821, 13, 162, 531, + 162, 162, 827, 126, 162, 830, 162, 162, 660, 75, + 835, 162, 657, 163, 839, 167, 77, 162, 26, 161, + 662, 13, 667, 665, 556, 161, 671, 167, 167, 163, + 672, 162, 677, 163, 679, 163, 127, 77, 13, 684, + 13, 13, 75, 164, 869, 164, 161, 26, 657, 660, + 814, 72, 163, 162, 699, 13, 164, 589, 667, 77, + 77, 13, 162, 163, 95, 163, 95, 164, 154, 711, + 165, 163, 147, 605, 163, 900, 721, 13, 730, 75, + 163, 75, 161, 26, 616, 163, 911, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 77, + 8, 739, 103, 344, 75, 75, 162, 745, 746, 509, + 111, 112, 113, 114, 115, 116, 611, 759, 611, 730, + 667, 468, 308, 590, 536, 657, 771, 53, 54, 530, + 797, 844, 777, 542, 349, 667, 81, 690, 746, 671, + 605, 604, 781, 203, 515, 677, 216, 679, 516, -1, + -1, 789, -1, -1, -1, -1, -1, 802, -1, -1, + -1, 806, 807, -1, 809, -1, 811, 44, 45, 46, + 47, 48, 49, -1, 51, -1, 14, 15, 823, -1, + -1, -1, -1, -1, -1, -1, -1, 25, -1, 721, + -1, 833, -1, 104, 836, -1, -1, -1, 109, 844, + 111, 112, 113, 114, 115, 116, 117, -1, -1, 854, + -1, -1, -1, 855, -1, 860, -1, 859, -1, -1, + -1, 863, -1, -1, 866, -1, 868, 865, 870, -1, + 875, -1, -1, 878, -1, -1, 162, 163, -1, -1, + -1, -1, -1, -1, -1, 777, -1, -1, 890, -1, + -1, -1, -1, 898, 165, -1, -1, -1, -1, 904, + -1, -1, -1, -1, 906, -1, -1, -1, -1, -1, + 802, 913, -1, -1, 806, -1, -1, -1, -1, 811, + 4, 5, -1, 7, 8, 9, 10, 11, 12, 13, + -1, 823, 16, 17, 18, 19, 20, 21, 22, 23, + 24, -1, 26, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, -1, 337, -1, -1, 156, -1, + 44, 45, 854, -1, -1, 49, -1, 51, 860, 351, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, -1, -1, -1, -1, 80, 81, - -1, -1, -1, -1, -1, 202, -1, -1, 771, -1, - 53, 54, -1, 210, 211, 212, -1, 214, -1, 653, - -1, -1, 53, 54, -1, -1, -1, -1, 662, -1, - -1, -1, 795, -1, -1, -1, 799, -1, -1, -1, - -1, 804, -1, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, 816, -1, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, -1, -1, 266, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, -1, -1, 847, -1, -1, -1, -1, 171, - 853, 173, -1, 175, 176, 53, 54, -1, 180, 181, - 182, -1, 184, -1, -1, -1, -1, -1, 871, -1, - 53, 54, -1, -1, -1, -1, -1, -1, -1, 162, - 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 163, 215, -1, -1, -1, 95, -1, -1, - -1, -1, -1, -1, -1, 227, -1, 229, -1, -1, - -1, -1, -1, -1, -1, 237, -1, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, -1, 382, -1, -1, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, -1, 284, -1, 286, 287, -1, -1, 290, 291, - 292, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 302, -1, 304, 11, -1, -1, -1, 309, -1, -1, - -1, -1, 429, -1, -1, -1, -1, 25, 320, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 344, 51, 461, -1, 463, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, - 51, -1, 479, 480, -1, -1, -1, 369, 370, 3, - 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, - -1, 383, -1, -1, -1, -1, -1, -1, -1, 506, - -1, 508, -1, -1, -1, 512, 513, -1, 32, -1, - -1, 403, -1, -1, -1, -1, -1, -1, -1, -1, - 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, - 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, - 64, 65, 66, 67, 68, -1, 553, -1, -1, 73, - 74, 75, 76, 77, -1, 447, -1, -1, -1, 83, - 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 585, 103, - -1, -1, -1, 475, -1, 477, 478, 111, -1, -1, - -1, -1, -1, -1, -1, 119, 120, -1, -1, -1, - -1, -1, -1, -1, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 144, -1, -1, -1, 516, -1, 150, 151, 152, 153, - -1, -1, -1, 157, 158, 527, 160, 161, -1, -1, - -1, -1, 166, -1, -1, -1, 653, -1, -1, -1, - -1, -1, -1, -1, -1, 662, 548, 549, -1, -1, - 552, -1, -1, -1, 556, 557, -1, -1, 560, -1, - -1, -1, 564, 565, -1, -1, -1, -1, -1, -1, - -1, 573, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, - 51, 3, 4, 5, 6, 7, -1, -1, -1, -1, - 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 619, -1, -1, + 23, 24, 104, -1, -1, -1, 878, 109, -1, 111, + 112, 113, 114, 115, 116, 117, 80, 81, -1, -1, + 9, 10, 11, -1, -1, 203, -1, -1, -1, -1, + 53, 54, -1, 211, 212, 213, 25, 215, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, 165, -1, 129, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, + -1, -1, -1, -1, 337, -1, -1, -1, -1, 267, + -1, -1, -1, -1, -1, -1, -1, -1, 351, -1, + -1, -1, -1, -1, -1, -1, 53, 54, 172, -1, + 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, + -1, 185, 484, -1, -1, -1, 488, 489, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 163, 51, -1, -1, -1, -1, -1, -1, 95, -1, + -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 228, -1, 230, -1, -1, 531, + -1, -1, -1, 162, 238, -1, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, -1, -1, -1, 384, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + -1, 285, -1, 287, 288, -1, -1, 291, 292, 293, + -1, 484, -1, -1, -1, 488, 489, 490, -1, 303, + -1, 305, -1, 307, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 431, 616, -1, -1, -1, 322, -1, + 44, 45, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, 531, -1, + -1, 65, 346, -1, -1, 463, -1, 465, -1, 73, + 74, 75, -1, -1, -1, -1, -1, -1, -1, 83, + -1, -1, 53, 54, 482, 483, -1, 371, 372, 671, + -1, -1, -1, -1, -1, 677, -1, 679, -1, -1, + -1, 385, -1, -1, -1, -1, -1, 111, -1, -1, + -1, 509, -1, 511, -1, -1, -1, 515, 516, -1, + -1, 405, -1, -1, -1, 129, 130, 131, 132, 133, + 134, -1, 605, -1, -1, -1, -1, -1, -1, 721, + 144, -1, -1, 616, -1, -1, 150, 151, 152, 153, + 9, 10, 11, 157, -1, -1, -1, -1, 556, -1, + -1, -1, -1, -1, -1, 449, 25, -1, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 589, 51, -1, 478, 777, 480, 481, 671, -1, + -1, -1, -1, -1, 677, -1, 679, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, - 52, 53, 54, 55, 56, 57, 648, 649, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, -1, 661, - -1, 73, 74, 75, 76, 77, -1, 79, -1, -1, - -1, 83, 84, 85, 86, 87, -1, 89, -1, 91, - -1, 93, -1, -1, 96, -1, -1, -1, 100, 101, - 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, - 112, 113, -1, -1, -1, -1, 118, 119, 120, 121, - 122, 123, -1, -1, -1, -1, 128, 129, 130, 131, - 132, 133, 134, -1, -1, 137, 138, -1, 140, -1, - -1, -1, 144, -1, -1, -1, -1, -1, 150, 151, - 152, 153, -1, 745, 156, 157, 158, -1, -1, 161, - -1, 163, 164, 165, 166, -1, -1, -1, -1, -1, - -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, - 12, -1, -1, -1, -1, -1, -1, 779, 29, 30, + 802, -1, -1, -1, 806, -1, -1, -1, -1, 811, + -1, -1, -1, -1, -1, 519, -1, -1, -1, -1, + -1, 823, -1, -1, -1, -1, 530, -1, 721, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 657, + -1, -1, -1, -1, -1, -1, -1, 551, 552, 667, + -1, 555, 854, -1, -1, 559, 560, -1, 860, 563, + -1, -1, -1, 567, 568, -1, -1, -1, -1, -1, + -1, -1, 576, -1, -1, -1, 878, -1, -1, -1, + -1, -1, -1, -1, 777, -1, 165, -1, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 802, + 51, -1, -1, 806, -1, -1, -1, -1, 811, 623, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 823, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 652, 653, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 854, 666, -1, -1, -1, -1, 860, -1, -1, + 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, + -1, -1, -1, -1, 25, 878, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, - 51, -1, 44, 45, -1, -1, -1, -1, 50, -1, - 52, 53, 54, 55, 56, 57, -1, 819, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, -1, -1, - -1, 73, 74, 75, 76, 77, -1, 79, -1, -1, - -1, 83, 84, 85, 86, 87, -1, 89, -1, 91, - -1, 93, -1, -1, 96, -1, -1, -1, 100, 101, - 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, - 112, 113, -1, -1, -1, -1, 118, 119, 120, 121, - 122, 123, -1, -1, -1, -1, 128, 129, 130, 131, - 132, 133, 134, -1, -1, 137, 138, -1, 140, -1, - -1, -1, 144, 3, 4, 5, 6, 7, 150, 151, - 152, 153, 12, -1, 156, 157, 158, -1, -1, 161, - -1, 163, 164, 165, 166, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, -1, 51, 44, 45, -1, -1, -1, -1, - 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - -1, -1, -1, 73, 74, 75, 76, 77, -1, 79, - -1, -1, -1, 83, 84, 85, 86, 87, -1, 89, - -1, 91, -1, 93, -1, -1, 96, -1, -1, -1, - 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, - 110, 111, 112, 113, -1, -1, -1, -1, 118, 119, - 120, 121, 122, 123, -1, -1, -1, -1, 128, 129, - 130, 131, 132, 133, 134, -1, -1, 137, 138, -1, - 140, -1, -1, -1, 144, 3, 4, 5, 6, 7, - 150, 151, 152, 153, 12, -1, 156, 157, 158, -1, - -1, 161, -1, 163, 164, -1, 166, -1, -1, -1, + 51, 44, 45, -1, -1, -1, -1, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, -1, -1, -1, + 73, 74, 75, 76, 77, -1, 79, 751, -1, -1, + 83, 84, 85, 86, 87, -1, 89, -1, 91, -1, + 93, -1, -1, 96, -1, -1, -1, 100, 101, 102, + 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, -1, 786, -1, -1, 118, 119, 120, 121, 122, + 123, -1, -1, -1, -1, 128, 129, 130, 131, 132, + 133, 134, -1, -1, 137, 138, -1, 140, -1, -1, + -1, 144, 3, 4, 5, 6, 7, 150, 151, 152, + 153, 12, 826, 156, 157, 158, -1, -1, 161, -1, + 163, 164, 165, 166, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, 44, 45, -1, -1, -1, -1, 50, + -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, -1, + -1, -1, 73, 74, 75, 76, 77, -1, 79, -1, + -1, -1, 83, 84, 85, 86, 87, -1, 89, -1, + 91, -1, 93, -1, -1, 96, -1, -1, -1, 100, + 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, + 111, 112, 113, -1, -1, -1, -1, 118, 119, 120, + 121, 122, 123, -1, -1, -1, -1, 128, 129, 130, + 131, 132, 133, 134, -1, -1, 137, 138, -1, 140, + -1, -1, -1, 144, 3, 4, 5, 6, 7, 150, + 151, 152, 153, 12, -1, 156, 157, 158, -1, -1, + 161, -1, 163, 164, 165, 166, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, -1, 51, 44, 45, -1, -1, -1, + -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, + -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, -1, -1, -1, 73, 74, 75, 76, 77, -1, + 79, -1, -1, -1, 83, 84, 85, 86, 87, -1, + 89, -1, 91, -1, 93, -1, -1, 96, -1, -1, + -1, 100, 101, 102, 103, 104, 105, 106, -1, 108, + 109, 110, 111, 112, 113, -1, -1, -1, -1, 118, + 119, 120, 121, 122, 123, -1, -1, -1, -1, 128, + 129, 130, 131, 132, 133, 134, -1, -1, 137, 138, + -1, 140, -1, -1, -1, 144, 3, 4, 5, 6, + 7, 150, 151, 152, 153, 12, -1, 156, 157, 158, + -1, -1, 161, -1, 163, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, - -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, - -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, -1, -1, -1, 73, 74, 75, 76, 77, - -1, 79, -1, -1, -1, 83, 84, 85, 86, 87, - -1, 89, -1, 91, -1, 93, -1, -1, 96, -1, - -1, -1, 100, 101, 102, 103, -1, 105, 106, -1, - 108, -1, 110, 111, 112, 113, -1, -1, -1, -1, - 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, - 128, 129, 130, 131, 132, 133, 134, -1, -1, 137, - 138, -1, 140, -1, -1, -1, 144, 3, 4, 5, - 6, 7, 150, 151, 152, 153, 12, -1, 156, 157, - 158, -1, -1, 161, -1, 163, 164, 165, 166, -1, + -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, + -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, + 57, -1, -1, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, + 77, -1, 79, -1, -1, -1, 83, 84, 85, 86, + 87, -1, 89, -1, 91, -1, 93, -1, -1, 96, + -1, -1, -1, 100, 101, 102, 103, -1, 105, 106, + -1, 108, -1, 110, 111, 112, 113, -1, -1, -1, + -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, + -1, 128, 129, 130, 131, 132, 133, 134, -1, -1, + 137, 138, -1, 140, -1, -1, -1, 144, 3, 4, + 5, 6, 7, 150, 151, 152, 153, 12, -1, 156, + 157, 158, -1, -1, 161, -1, 163, 164, 165, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, + 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, + 55, 56, 57, -1, -1, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, + 75, 76, 77, -1, 79, -1, -1, -1, 83, 84, + 85, 86, 87, -1, 89, -1, 91, -1, 93, -1, + -1, 96, -1, -1, -1, 100, 101, 102, 103, -1, + 105, 106, -1, 108, -1, 110, 111, 112, 113, -1, + -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, + -1, -1, -1, 128, 129, 130, 131, 132, 133, 134, + -1, -1, 137, 138, -1, 140, -1, -1, -1, 144, + 3, 4, 5, 6, 7, 150, 151, 152, 153, 12, + -1, 156, 157, 158, -1, -1, 161, -1, 163, 164, + 165, 166, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, -1, -1, -1, + 73, 74, 75, 76, 77, -1, 79, -1, -1, -1, + 83, 84, 85, 86, 87, 88, 89, -1, 91, -1, + 93, -1, -1, 96, -1, -1, -1, 100, 101, 102, + 103, -1, 105, 106, -1, 108, -1, 110, 111, 112, + 113, -1, -1, -1, -1, 118, 119, 120, 121, 122, + 123, -1, -1, -1, -1, 128, 129, 130, 131, 132, + 133, 134, -1, -1, 137, 138, -1, 140, -1, -1, + -1, 144, 3, 4, 5, 6, 7, 150, 151, 152, + 153, 12, -1, 156, 157, 158, -1, -1, 161, -1, + 163, 164, -1, 166, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, + -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, -1, + -1, -1, 73, 74, 75, 76, 77, -1, 79, -1, + -1, -1, 83, 84, 85, 86, 87, -1, 89, -1, + 91, -1, 93, 94, -1, 96, -1, -1, -1, 100, + 101, 102, 103, -1, 105, 106, -1, 108, -1, 110, + 111, 112, 113, -1, -1, -1, -1, 118, 119, 120, + 121, 122, 123, -1, -1, -1, -1, 128, 129, 130, + 131, 132, 133, 134, -1, -1, 137, 138, -1, 140, + -1, -1, -1, 144, 3, 4, 5, 6, 7, 150, + 151, 152, 153, 12, -1, 156, 157, 158, -1, -1, + 161, -1, 163, 164, -1, 166, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, + -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, + -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, -1, -1, -1, 73, 74, 75, 76, 77, -1, + 79, -1, -1, -1, 83, 84, 85, 86, 87, -1, + 89, -1, 91, -1, 93, -1, -1, 96, -1, -1, + -1, 100, 101, 102, 103, -1, 105, 106, -1, 108, + -1, 110, 111, 112, 113, -1, -1, -1, -1, 118, + 119, 120, 121, 122, 123, -1, -1, -1, -1, 128, + 129, 130, 131, 132, 133, 134, -1, -1, 137, 138, + -1, 140, -1, -1, -1, 144, 3, 4, 5, 6, + 7, 150, 151, 152, 153, 12, -1, 156, 157, 158, + -1, -1, 161, -1, 163, 164, 165, 166, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, + -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, + 57, -1, -1, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, + 77, -1, 79, -1, -1, -1, 83, 84, 85, 86, + 87, -1, 89, -1, 91, 92, 93, -1, -1, 96, + -1, -1, -1, 100, 101, 102, 103, -1, 105, 106, + -1, 108, -1, 110, 111, 112, 113, -1, -1, -1, + -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, + -1, 128, 129, 130, 131, 132, 133, 134, -1, -1, + 137, 138, -1, 140, -1, -1, -1, 144, 3, 4, + 5, 6, 7, 150, 151, 152, 153, 12, -1, 156, + 157, 158, -1, -1, 161, -1, 163, 164, -1, 166, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, + 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, + 55, 56, 57, -1, -1, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, + 75, 76, 77, -1, 79, -1, -1, -1, 83, 84, + 85, 86, 87, -1, 89, -1, 91, -1, 93, -1, + -1, 96, -1, -1, -1, 100, 101, 102, 103, -1, + 105, 106, -1, 108, -1, 110, 111, 112, 113, -1, + -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, + -1, -1, -1, 128, 129, 130, 131, 132, 133, 134, + -1, -1, 137, 138, -1, 140, -1, -1, -1, 144, + 3, 4, 5, 6, 7, 150, 151, 152, 153, 12, + -1, 156, 157, 158, -1, -1, 161, -1, 163, 164, + 165, 166, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, -1, -1, -1, + 73, 74, 75, 76, 77, -1, 79, -1, -1, -1, + 83, 84, 85, 86, 87, -1, 89, -1, 91, -1, + 93, -1, -1, 96, -1, -1, -1, 100, 101, 102, + 103, -1, 105, 106, -1, 108, -1, 110, 111, 112, + 113, -1, -1, -1, -1, 118, 119, 120, 121, 122, + 123, -1, -1, -1, -1, 128, 129, 130, 131, 132, + 133, 134, -1, -1, 137, 138, -1, 140, -1, -1, + -1, 144, 3, 4, 5, 6, 7, 150, 151, 152, + 153, 12, -1, 156, 157, 158, -1, -1, 161, -1, + 163, 164, 165, 166, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, + -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, -1, + -1, -1, 73, 74, 75, 76, 77, -1, 79, -1, + -1, -1, 83, 84, 85, 86, 87, -1, 89, 90, + 91, -1, 93, -1, -1, 96, -1, -1, -1, 100, + 101, 102, 103, -1, 105, 106, -1, 108, -1, 110, + 111, 112, 113, -1, -1, -1, -1, 118, 119, 120, + 121, 122, 123, -1, -1, -1, -1, 128, 129, 130, + 131, 132, 133, 134, -1, -1, 137, 138, -1, 140, + -1, -1, -1, 144, 3, 4, 5, 6, 7, 150, + 151, 152, 153, 12, -1, 156, 157, 158, -1, -1, + 161, -1, 163, 164, -1, 166, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, + -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, + -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, -1, -1, -1, 73, 74, 75, 76, 77, -1, + 79, -1, -1, -1, 83, 84, 85, 86, 87, -1, + 89, -1, 91, -1, 93, -1, -1, 96, -1, -1, + -1, 100, 101, 102, 103, -1, 105, 106, -1, 108, + -1, 110, 111, 112, 113, -1, -1, -1, -1, 118, + 119, 120, 121, 122, 123, -1, -1, -1, -1, 128, + 129, 130, 131, 132, 133, 134, -1, -1, 137, 138, + -1, 140, -1, -1, -1, 144, 3, 4, 5, 6, + 7, 150, 151, 152, 153, 12, -1, 156, 157, 158, + -1, -1, 161, -1, 163, 164, 165, 166, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, + -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, + 57, -1, -1, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, + 77, -1, 79, -1, -1, -1, 83, 84, 85, 86, + 87, -1, 89, -1, 91, -1, 93, -1, -1, 96, + -1, -1, -1, 100, 101, 102, 103, -1, 105, 106, + -1, 108, -1, 110, 111, 112, 113, -1, -1, -1, + -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, + -1, 128, 129, 130, 131, 132, 133, 134, -1, -1, + 137, 138, -1, 140, -1, -1, -1, 144, 3, 4, + 5, 6, 7, 150, 151, 152, 153, 12, -1, 156, + 157, 158, -1, -1, 161, -1, 163, 164, 165, 166, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, + 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, + 55, 56, 57, -1, -1, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, + 75, 76, 77, -1, 79, -1, -1, -1, 83, 84, + 85, 86, 87, -1, 89, -1, 91, -1, 93, -1, + -1, 96, -1, -1, -1, 100, 101, 102, 103, -1, + 105, 106, -1, 108, -1, 110, 111, 112, 113, -1, + -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, + -1, -1, -1, 128, 129, 130, 131, 132, 133, 134, + -1, -1, 137, 138, -1, 140, -1, -1, -1, 144, + 3, 4, 5, 6, 7, 150, 151, 152, 153, 12, + -1, 156, 157, 158, -1, -1, 161, -1, 163, 164, + 165, 166, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, -1, -1, -1, + 73, 74, 75, 76, 77, -1, 79, -1, -1, -1, + 83, 84, 85, 86, 87, -1, 89, -1, 91, -1, + 93, -1, -1, 96, -1, -1, -1, 100, 101, 102, + 103, -1, 105, 106, -1, 108, -1, 110, 111, 112, + 113, -1, -1, -1, -1, 118, 119, 120, 121, 122, + 123, -1, -1, -1, -1, 128, 129, 130, 131, 132, + 133, 134, -1, -1, 137, 138, -1, 140, -1, -1, + -1, 144, 3, 4, 5, 6, 7, 150, 151, 152, + 153, 12, -1, 156, 157, 158, -1, -1, 161, -1, + 163, 164, -1, 166, -1, 26, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, + -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, -1, + -1, -1, 73, 74, 75, 76, 77, -1, 79, -1, + -1, -1, 83, 84, 85, 86, 87, -1, 89, -1, + 91, -1, 93, -1, -1, 96, -1, -1, -1, 100, + 101, 102, 103, -1, 105, 106, -1, 108, -1, 110, + 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, + -1, -1, -1, -1, -1, -1, -1, 128, 129, 130, + 131, 132, 133, 134, -1, -1, 137, 138, -1, 140, + -1, -1, -1, 144, 3, 4, 5, 6, 7, 150, + 151, 152, 153, 12, -1, -1, 157, 158, -1, -1, + 161, -1, 163, 164, -1, 166, -1, 26, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, + -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, + -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, -1, -1, -1, 73, 74, 75, 76, 77, -1, + 79, -1, -1, -1, 83, 84, 85, 86, 87, -1, + 89, -1, 91, -1, 93, -1, -1, 96, -1, -1, + -1, 100, 101, 102, 103, -1, 105, 106, -1, 108, + -1, 110, 111, -1, -1, -1, -1, -1, -1, 118, + 119, 120, -1, -1, -1, -1, -1, -1, -1, 128, + 129, 130, 131, 132, 133, 134, -1, -1, 137, 138, + -1, 140, -1, -1, -1, 144, 3, 4, 5, 6, + 7, 150, 151, 152, 153, 12, -1, -1, 157, 158, + -1, -1, 161, -1, 163, 164, -1, 166, -1, 26, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, + -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, + 57, -1, -1, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, + 77, -1, 79, -1, -1, -1, 83, 84, 85, 86, + 87, -1, 89, -1, 91, -1, 93, -1, -1, 96, + -1, -1, -1, 100, 101, 102, 103, -1, 105, 106, + -1, 108, -1, 110, 111, -1, -1, -1, -1, -1, + -1, 118, 119, 120, -1, -1, -1, -1, -1, -1, + -1, 128, 129, 130, 131, 132, 133, 134, -1, -1, + 137, 138, -1, 140, -1, -1, -1, 144, 3, 4, + 5, 6, 7, 150, 151, 152, 153, 12, -1, -1, + 157, 158, -1, -1, 161, -1, 163, 164, -1, 166, + -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, + 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, + 55, 56, 57, -1, -1, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, + 75, 76, 77, -1, 79, -1, -1, -1, 83, 84, + 85, 86, 87, -1, 89, -1, 91, -1, 93, -1, + -1, 96, -1, -1, -1, 100, 101, 102, 103, -1, + 105, 106, -1, 108, -1, 110, 111, -1, -1, -1, + -1, -1, -1, 118, 119, 120, -1, -1, -1, -1, + -1, -1, -1, 128, 129, 130, 131, 132, 133, 134, + -1, -1, 137, 138, -1, 140, -1, -1, -1, 144, + 3, 4, 5, 6, 7, 150, 151, 152, 153, 12, + -1, -1, 157, 158, -1, -1, 161, -1, 163, 164, + -1, 166, -1, 26, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, -1, -1, -1, + 73, 74, 75, 76, 77, -1, 79, -1, -1, -1, + 83, 84, 85, 86, 87, -1, 89, -1, 91, -1, + 93, -1, -1, 96, -1, -1, -1, 100, 101, 102, + 103, -1, 105, 106, -1, 108, -1, 110, 111, -1, + -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, + -1, -1, -1, -1, -1, 128, 129, 130, 131, 132, + 133, 134, -1, -1, 137, 138, -1, 140, -1, -1, + -1, 144, 3, 4, 5, 6, 7, 150, 151, 152, + 153, 12, -1, -1, 157, 158, -1, -1, 161, -1, + 163, 164, -1, 166, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, + -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, -1, + -1, -1, 73, 74, 75, 76, 77, -1, 79, -1, + -1, -1, 83, 84, 85, 86, 87, -1, 89, -1, + 91, -1, 93, -1, -1, 96, -1, -1, -1, 100, + 101, 102, 103, -1, 105, 106, -1, 108, -1, 110, + 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, + -1, -1, -1, -1, -1, -1, -1, 128, 129, 130, + 131, 132, 133, 134, -1, -1, 137, 138, -1, 140, + -1, -1, -1, 144, 3, 4, 5, 6, 7, 150, + 151, 152, 153, 12, -1, -1, 157, 158, -1, -1, + 161, -1, 163, 164, -1, 166, -1, -1, -1, -1, + -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, + -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, + -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, + -1, -1, -1, -1, 73, 74, 75, 76, 77, -1, + -1, -1, -1, -1, 83, 84, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 103, 51, -1, -1, -1, -1, + -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, + 119, 120, -1, -1, -1, -1, -1, -1, -1, 128, + 129, 130, 131, 132, 133, 134, -1, 3, 4, 5, + 6, 7, -1, -1, -1, 144, 12, -1, -1, -1, + -1, 150, 151, 152, 153, -1, -1, -1, 157, 158, + -1, 160, 161, -1, -1, -1, 32, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, - 76, 77, -1, 79, -1, -1, -1, 83, 84, 85, - 86, 87, -1, 89, -1, 91, -1, 93, -1, -1, - 96, -1, -1, -1, 100, 101, 102, 103, -1, 105, - 106, -1, 108, -1, 110, 111, 112, 113, -1, -1, - -1, -1, 118, 119, 120, 121, 122, 123, -1, -1, + 66, 67, 68, -1, -1, -1, -1, 73, 74, 75, + 76, 77, -1, -1, -1, -1, -1, 83, 84, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, + -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, + -1, -1, -1, 119, 120, -1, -1, -1, -1, -1, -1, -1, 128, 129, 130, 131, 132, 133, 134, -1, - -1, 137, 138, -1, 140, -1, -1, -1, 144, 3, - 4, 5, 6, 7, 150, 151, 152, 153, 12, -1, - 156, 157, 158, -1, -1, 161, -1, 163, 164, 165, + 3, 4, 5, 6, 7, -1, -1, -1, 144, 12, + -1, -1, -1, -1, 150, 151, 152, 153, -1, -1, + -1, 157, 158, -1, -1, 161, -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, + 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, - 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, -1, -1, -1, 73, - 74, 75, 76, 77, -1, 79, -1, -1, -1, 83, - 84, 85, 86, 87, 88, 89, -1, 91, -1, 93, - -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, - -1, 105, 106, -1, 108, -1, 110, 111, 112, 113, - -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, - -1, -1, -1, -1, 128, 129, 130, 131, 132, 133, - 134, -1, -1, 137, 138, -1, 140, -1, -1, -1, - 144, 3, 4, 5, 6, 7, 150, 151, 152, 153, - 12, -1, 156, 157, 158, -1, -1, 161, -1, 163, - 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, - 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, -1, -1, - -1, 73, 74, 75, 76, 77, -1, 79, -1, -1, - -1, 83, 84, 85, 86, 87, -1, 89, -1, 91, - -1, 93, 94, -1, 96, -1, -1, -1, 100, 101, - 102, 103, -1, 105, 106, -1, 108, -1, 110, 111, - 112, 113, -1, -1, -1, -1, 118, 119, 120, 121, - 122, 123, -1, -1, -1, -1, 128, 129, 130, 131, - 132, 133, 134, -1, -1, 137, 138, -1, 140, -1, - -1, -1, 144, 3, 4, 5, 6, 7, 150, 151, - 152, 153, 12, -1, 156, 157, 158, -1, -1, 161, - -1, 163, 164, -1, 166, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, - 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - -1, -1, -1, 73, 74, 75, 76, 77, -1, 79, - -1, -1, -1, 83, 84, 85, 86, 87, -1, 89, - -1, 91, -1, 93, -1, -1, 96, -1, -1, -1, - 100, 101, 102, 103, -1, 105, 106, -1, 108, -1, - 110, 111, 112, 113, -1, -1, -1, -1, 118, 119, - 120, 121, 122, 123, -1, -1, -1, -1, 128, 129, - 130, 131, 132, 133, 134, -1, -1, 137, 138, -1, - 140, -1, -1, -1, 144, 3, 4, 5, 6, 7, - 150, 151, 152, 153, 12, -1, 156, 157, 158, -1, - -1, 161, -1, 163, 164, 165, 166, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, - -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, - -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, -1, -1, -1, 73, 74, 75, 76, 77, - -1, 79, -1, -1, -1, 83, 84, 85, 86, 87, - -1, 89, -1, 91, 92, 93, -1, -1, 96, -1, - -1, -1, 100, 101, 102, 103, -1, 105, 106, -1, - 108, -1, 110, 111, 112, 113, -1, -1, -1, -1, - 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, - 128, 129, 130, 131, 132, 133, 134, -1, -1, 137, - 138, -1, 140, -1, -1, -1, 144, 3, 4, 5, - 6, 7, 150, 151, 152, 153, 12, -1, 156, 157, - 158, -1, -1, 161, -1, 163, 164, -1, 166, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, - -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, - 56, 57, -1, -1, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, - 76, 77, -1, 79, -1, -1, -1, 83, 84, 85, - 86, 87, -1, 89, -1, 91, -1, 93, -1, -1, - 96, -1, -1, -1, 100, 101, 102, 103, -1, 105, - 106, -1, 108, -1, 110, 111, 112, 113, -1, -1, - -1, -1, 118, 119, 120, 121, 122, 123, -1, -1, - -1, -1, 128, 129, 130, 131, 132, 133, 134, -1, - -1, 137, 138, -1, 140, -1, -1, -1, 144, 3, - 4, 5, 6, 7, 150, 151, 152, 153, 12, -1, - 156, 157, 158, -1, -1, 161, -1, 163, 164, 165, - 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, - 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, -1, -1, -1, 73, - 74, 75, 76, 77, -1, 79, -1, -1, -1, 83, - 84, 85, 86, 87, -1, 89, -1, 91, -1, 93, - -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, - -1, 105, 106, -1, 108, -1, 110, 111, 112, 113, - -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, - -1, -1, -1, -1, 128, 129, 130, 131, 132, 133, - 134, -1, -1, 137, 138, -1, 140, -1, -1, -1, - 144, 3, 4, 5, 6, 7, 150, 151, 152, 153, - 12, -1, 156, 157, 158, -1, -1, 161, -1, 163, - 164, 165, 166, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, - 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, -1, -1, - -1, 73, 74, 75, 76, 77, -1, 79, -1, -1, - -1, 83, 84, 85, 86, 87, -1, 89, 90, 91, - -1, 93, -1, -1, 96, -1, -1, -1, 100, 101, - 102, 103, -1, 105, 106, -1, 108, -1, 110, 111, - 112, 113, -1, -1, -1, -1, 118, 119, 120, 121, - 122, 123, -1, -1, -1, -1, 128, 129, 130, 131, - 132, 133, 134, -1, -1, 137, 138, -1, 140, -1, - -1, -1, 144, 3, 4, 5, 6, 7, 150, 151, - 152, 153, 12, -1, 156, 157, 158, -1, -1, 161, - -1, 163, 164, -1, 166, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, - 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - -1, -1, -1, 73, 74, 75, 76, 77, -1, 79, - -1, -1, -1, 83, 84, 85, 86, 87, -1, 89, - -1, 91, -1, 93, -1, -1, 96, -1, -1, -1, - 100, 101, 102, 103, -1, 105, 106, -1, 108, -1, - 110, 111, 112, 113, -1, -1, -1, -1, 118, 119, - 120, 121, 122, 123, -1, -1, -1, -1, 128, 129, - 130, 131, 132, 133, 134, -1, -1, 137, 138, -1, - 140, -1, -1, -1, 144, 3, 4, 5, 6, 7, - 150, 151, 152, 153, 12, -1, 156, 157, 158, -1, - -1, 161, -1, 163, 164, 165, 166, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, - -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, - -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, -1, -1, -1, 73, 74, 75, 76, 77, - -1, 79, -1, -1, -1, 83, 84, 85, 86, 87, - -1, 89, -1, 91, -1, 93, -1, -1, 96, -1, - -1, -1, 100, 101, 102, 103, -1, 105, 106, -1, - 108, -1, 110, 111, 112, 113, -1, -1, -1, -1, - 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, - 128, 129, 130, 131, 132, 133, 134, -1, -1, 137, - 138, -1, 140, -1, -1, -1, 144, 3, 4, 5, - 6, 7, 150, 151, 152, 153, 12, -1, 156, 157, - 158, -1, -1, 161, -1, 163, 164, 165, 166, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, - -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, - 56, 57, -1, -1, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, - 76, 77, -1, 79, -1, -1, -1, 83, 84, 85, - 86, 87, -1, 89, -1, 91, -1, 93, -1, -1, - 96, -1, -1, -1, 100, 101, 102, 103, -1, 105, - 106, -1, 108, -1, 110, 111, 112, 113, -1, -1, - -1, -1, 118, 119, 120, 121, 122, 123, -1, -1, - -1, -1, 128, 129, 130, 131, 132, 133, 134, -1, - -1, 137, 138, -1, 140, -1, -1, -1, 144, 3, - 4, 5, 6, 7, 150, 151, 152, 153, 12, -1, - 156, 157, 158, -1, -1, 161, -1, 163, 164, 165, - 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, - 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, -1, -1, -1, 73, - 74, 75, 76, 77, -1, 79, -1, -1, -1, 83, - 84, 85, 86, 87, -1, 89, -1, 91, -1, 93, - -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, - -1, 105, 106, -1, 108, -1, 110, 111, 112, 113, - -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, - -1, -1, -1, -1, 128, 129, 130, 131, 132, 133, - 134, -1, -1, 137, 138, -1, 140, -1, -1, -1, - 144, 3, 4, 5, 6, 7, 150, 151, 152, 153, - 12, -1, 156, 157, 158, -1, -1, 161, -1, 163, - 164, -1, 166, -1, 26, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, - 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, -1, -1, - -1, 73, 74, 75, 76, 77, -1, 79, -1, -1, - -1, 83, 84, 85, 86, 87, -1, 89, -1, 91, - -1, 93, -1, -1, 96, -1, -1, -1, 100, 101, - 102, 103, -1, 105, 106, -1, 108, -1, 110, 111, - -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, - -1, -1, -1, -1, -1, -1, 128, 129, 130, 131, - 132, 133, 134, -1, -1, 137, 138, -1, 140, -1, - -1, -1, 144, 3, 4, 5, 6, 7, 150, 151, - 152, 153, 12, -1, -1, 157, 158, -1, -1, 161, - -1, 163, 164, -1, 166, -1, 26, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, - 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - -1, -1, -1, 73, 74, 75, 76, 77, -1, 79, - -1, -1, -1, 83, 84, 85, 86, 87, -1, 89, - -1, 91, -1, 93, -1, -1, 96, -1, -1, -1, - 100, 101, 102, 103, -1, 105, 106, -1, 108, -1, - 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, - 120, -1, -1, -1, -1, -1, -1, -1, 128, 129, - 130, 131, 132, 133, 134, -1, -1, 137, 138, -1, - 140, -1, -1, -1, 144, 3, 4, 5, 6, 7, - 150, 151, 152, 153, 12, -1, -1, 157, 158, -1, - -1, 161, -1, 163, 164, -1, 166, -1, 26, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, - -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, - -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, -1, -1, -1, 73, 74, 75, 76, 77, - -1, 79, -1, -1, -1, 83, 84, 85, 86, 87, - -1, 89, -1, 91, -1, 93, -1, -1, 96, -1, - -1, -1, 100, 101, 102, 103, -1, 105, 106, -1, - 108, -1, 110, 111, -1, -1, -1, -1, -1, -1, - 118, 119, 120, -1, -1, -1, -1, -1, -1, -1, - 128, 129, 130, 131, 132, 133, 134, -1, -1, 137, - 138, -1, 140, -1, -1, -1, 144, 3, 4, 5, - 6, 7, 150, 151, 152, 153, 12, -1, -1, 157, - 158, -1, -1, 161, -1, 163, 164, -1, 166, -1, - 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, - -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, - 56, 57, -1, -1, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, - 76, 77, -1, 79, -1, -1, -1, 83, 84, 85, - 86, 87, -1, 89, -1, 91, -1, 93, -1, -1, - 96, -1, -1, -1, 100, 101, 102, 103, -1, 105, - 106, -1, 108, -1, 110, 111, -1, -1, -1, -1, - -1, -1, 118, 119, 120, -1, -1, -1, -1, -1, - -1, -1, 128, 129, 130, 131, 132, 133, 134, -1, - -1, 137, 138, -1, 140, -1, -1, -1, 144, 3, - 4, 5, 6, 7, 150, 151, 152, 153, 12, -1, - -1, 157, 158, -1, -1, 161, -1, 163, 164, -1, - 166, -1, 26, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, - 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, -1, -1, -1, 73, - 74, 75, 76, 77, -1, 79, -1, -1, -1, 83, - 84, 85, 86, 87, -1, 89, -1, 91, -1, 93, - -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, - -1, 105, 106, -1, 108, -1, 110, 111, -1, -1, - -1, -1, -1, -1, 118, 119, 120, -1, -1, -1, - -1, -1, -1, -1, 128, 129, 130, 131, 132, 133, - 134, -1, -1, 137, 138, -1, 140, -1, -1, -1, - 144, 3, 4, 5, 6, 7, 150, 151, 152, 153, - 12, -1, -1, 157, 158, -1, -1, 161, -1, 163, - 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, - 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, -1, -1, - -1, 73, 74, 75, 76, 77, -1, 79, -1, -1, - -1, 83, 84, 85, 86, 87, -1, 89, -1, 91, - -1, 93, -1, -1, 96, -1, -1, -1, 100, 101, - 102, 103, -1, 105, 106, -1, 108, -1, 110, 111, - -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, - -1, -1, -1, -1, -1, -1, 128, 129, 130, 131, - 132, 133, 134, -1, -1, 137, 138, -1, 140, -1, - -1, -1, 144, 3, 4, 5, 6, 7, 150, 151, - 152, 153, 12, -1, -1, 157, 158, -1, -1, 161, - -1, 163, 164, -1, 166, -1, -1, -1, -1, -1, - -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, + 103, -1, -1, -1, -1, -1, -1, -1, 111, -1, + -1, -1, -1, -1, -1, -1, 119, 120, -1, -1, + -1, -1, -1, -1, -1, 128, 129, 130, 131, 132, + 133, 134, -1, 3, 4, 5, 6, 7, -1, -1, + -1, 144, 12, -1, -1, -1, -1, 150, 151, 152, + 153, -1, -1, -1, 157, 158, -1, -1, 161, -1, + 163, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, 73, 74, 75, 76, 77, -1, -1, - -1, -1, -1, 83, 84, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 103, 51, -1, -1, -1, -1, -1, + -1, -1, -1, 83, 84, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, -1, -1, -1, -1, -1, -1, 128, 129, 130, 131, 132, 133, 134, -1, 3, 4, 5, 6, 7, -1, -1, -1, 144, 12, -1, -1, -1, -1, 150, 151, 152, 153, -1, -1, -1, 157, 158, -1, - -1, 161, -1, -1, -1, -1, 166, -1, -1, -1, + -1, 161, -1, 163, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, 64, 65, 66, @@ -2301,7 +2356,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, 128, 129, 130, 131, 132, 133, 134, -1, 3, 4, 5, 6, 7, -1, -1, -1, 144, 12, -1, -1, -1, -1, 150, 151, 152, 153, - -1, -1, -1, 157, 158, -1, -1, 161, -1, 163, + -1, -1, -1, 157, 158, 26, -1, 161, 162, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, @@ -2315,7 +2370,7 @@ static const yytype_int16 yycheck[] = 131, 132, 133, 134, -1, 3, 4, 5, 6, 7, -1, -1, -1, 144, 12, -1, -1, -1, -1, 150, 151, 152, 153, -1, -1, -1, 157, 158, -1, -1, - 161, -1, 163, -1, -1, 166, -1, -1, -1, -1, + 161, -1, -1, -1, 32, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, @@ -2328,7 +2383,7 @@ static const yytype_int16 yycheck[] = 128, 129, 130, 131, 132, 133, 134, -1, 3, 4, 5, 6, 7, -1, -1, -1, 144, 12, -1, -1, -1, -1, 150, 151, 152, 153, -1, -1, -1, 157, - 158, 26, -1, 161, 162, -1, -1, -1, 166, -1, + 158, -1, -1, 161, -1, -1, -1, 32, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, 64, @@ -2368,7 +2423,7 @@ static const yytype_int16 yycheck[] = 129, 130, 131, 132, 133, 134, -1, 3, 4, 5, 6, 7, -1, -1, -1, 144, 12, -1, -1, -1, -1, 150, 151, 152, 153, -1, -1, -1, 157, 158, - -1, -1, 161, -1, -1, -1, 32, 166, -1, -1, + -1, -1, 161, -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, 63, 64, 65, @@ -2381,7 +2436,7 @@ static const yytype_int16 yycheck[] = -1, -1, 128, 129, 130, 131, 132, 133, 134, -1, 3, 4, 5, 6, 7, -1, -1, -1, 144, 12, -1, -1, -1, -1, 150, 151, 152, 153, -1, -1, - -1, 157, 158, -1, -1, 161, -1, -1, -1, 32, + -1, 157, 158, -1, -1, 161, -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, 60, 61, 62, @@ -2392,77 +2447,41 @@ static const yytype_int16 yycheck[] = 103, -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, -1, -1, -1, -1, -1, -1, 128, 129, 130, 131, 132, - 133, 134, -1, 3, 4, 5, 6, 7, -1, -1, - -1, 144, 12, -1, -1, -1, -1, 150, 151, 152, - 153, -1, -1, -1, 157, 158, -1, -1, 161, -1, - -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 44, 45, -1, -1, -1, -1, - 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, - 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, - -1, -1, -1, 73, 74, 75, 76, 77, -1, -1, - -1, -1, -1, 83, 84, -1, -1, -1, -1, -1, + 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, 150, 151, 152, + 153, 9, 10, 11, 157, 158, -1, -1, 161, -1, + -1, -1, -1, 166, -1, -1, -1, 25, -1, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, -1, 51, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, - -1, 111, -1, -1, -1, -1, -1, -1, -1, 119, - 120, -1, -1, -1, -1, -1, -1, -1, 128, 129, - 130, 131, 132, 133, 134, -1, 3, 4, 5, 6, - 7, -1, -1, -1, 144, 12, -1, -1, -1, -1, - 150, 151, 152, 153, -1, -1, -1, 157, 158, -1, - -1, 161, -1, -1, -1, -1, 166, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, - -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, - 57, -1, -1, 60, 61, 62, 63, 64, 65, 66, - 67, 68, -1, -1, -1, -1, 73, 74, 75, 76, - 77, -1, -1, -1, -1, -1, 83, 84, -1, -1, + 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, -1, 51, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, - -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, - -1, -1, 119, 120, -1, -1, -1, -1, -1, -1, - -1, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, - -1, -1, -1, 150, 151, 152, 153, 9, 10, 11, - 157, 158, -1, -1, 161, -1, -1, -1, -1, 166, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, + -1, -1, -1, -1, -1, -1, 25, 165, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, -1, 51, 9, 10, 11, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, - -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, -1, 51, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 9, 10, 11, -1, + 49, -1, 51, -1, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 25, 165, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, -1, 51, 9, + 165, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, 9, 10, + 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 165, 25, -1, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, + 51, -1, -1, -1, -1, -1, -1, -1, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 165, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - -1, 51, -1, -1, 9, 10, 11, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 165, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, -1, 51, -1, -1, -1, - -1, -1, -1, -1, -1, 9, 10, 11, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 25, 165, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, -1, 51, 9, 10, - 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 25, 165, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, - 51, 9, 10, 11, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 25, 163, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, -1, 51, -1, -1, -1, -1, -1, -1, - -1, -1, 9, 10, 11, -1, -1, -1, -1, -1, + -1, 51, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 163, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, @@ -2470,44 +2489,26 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 163, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, -1, 51, 9, 10, - 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 25, 163, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, - 51, -1, -1, -1, -1, -1, -1, -1, -1, 9, + 44, 45, 46, 47, 48, 49, -1, 51, -1, -1, + -1, -1, -1, -1, -1, -1, 9, 10, 11, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 25, 163, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, -1, 51, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 163, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - -1, 51, -1, 9, 10, 11, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 162, 25, - -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, -1, 51, 9, 10, 11, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 162, 25, -1, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, - -1, -1, -1, -1, -1, 9, 10, 11, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 25, 162, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, -1, 51, -1, 9, - 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 25, 162, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 25, 162, + -1, -1, -1, -1, -1, -1, -1, -1, 25, 163, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, -1, -1, -1, -1, - -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 25, 162, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, -1, 51, -1, 9, 10, 11, -1, -1, + -1, -1, 9, 10, 11, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 25, 162, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, -1, 51, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 162, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, @@ -2516,40 +2517,55 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, 25, 162, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, - 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 9, 10, 11, -1, - -1, -1, -1, -1, 162, -1, -1, -1, -1, -1, - -1, -1, 25, 127, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, -1, 51, 44, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, - 65, -1, -1, 9, 10, 11, -1, -1, 73, 74, - 75, -1, -1, -1, -1, -1, -1, -1, 83, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, -1, 51, 111, -1, -1, -1, - -1, -1, -1, -1, 127, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, -1, 9, 10, 11, -1, 144, - -1, -1, -1, -1, -1, 150, 151, 152, 153, -1, - -1, 25, 157, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, -1, 51, 10, 11, + 51, -1, -1, -1, -1, -1, -1, -1, 9, 10, + 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 25, 162, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, + 51, 9, 10, 11, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 25, 162, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, -1, 51, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 25, 51, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, -1, 51, 27, 28, 29, 30, 31, + 25, 162, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, -1, 51, -1, -1, -1, + -1, -1, -1, -1, 9, 10, 11, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 25, 162, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, -1, 51, -1, -1, -1, + -1, -1, -1, -1, -1, 9, 10, 11, -1, -1, + -1, -1, -1, -1, 162, -1, -1, -1, -1, -1, + -1, 25, 127, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 127, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - -1, 51, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, -1, 51 + -1, -1, -1, -1, -1, -1, 9, 10, 11, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 25, 127, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, -1, 51, 10, + 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 11, + 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, -1, 51, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, -1, 51, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2572,81 +2588,82 @@ static const yytype_uint16 yystos[] = 269, 269, 269, 269, 269, 269, 269, 75, 111, 150, 153, 161, 171, 254, 272, 273, 281, 272, 269, 269, 269, 269, 269, 269, 269, 269, 32, 269, 294, 295, - 150, 153, 171, 254, 256, 257, 281, 284, 285, 291, - 269, 161, 260, 161, 26, 65, 65, 245, 269, 178, - 161, 161, 161, 161, 161, 163, 269, 163, 269, 75, - 75, 163, 248, 269, 273, 164, 269, 153, 171, 173, - 174, 77, 166, 220, 221, 77, 222, 250, 122, 122, - 161, 161, 161, 161, 161, 161, 153, 164, 171, 171, - 248, 269, 273, 249, 269, 301, 176, 164, 153, 161, - 8, 163, 75, 75, 163, 32, 188, 65, 147, 9, - 10, 11, 25, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 51, 163, 53, 54, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 161, 147, 65, 126, 65, 164, 166, 285, - 65, 65, 65, 188, 269, 153, 171, 301, 147, 147, - 271, 273, 127, 167, 8, 267, 153, 171, 147, 161, - 261, 147, 126, 285, 162, 269, 269, 269, 287, 287, - 8, 163, 87, 269, 246, 247, 269, 248, 273, 75, - 202, 269, 163, 163, 163, 13, 163, 163, 176, 163, - 171, 95, 8, 163, 164, 270, 273, 8, 163, 13, - 8, 163, 188, 184, 185, 273, 273, 297, 273, 162, - 128, 273, 292, 293, 294, 171, 170, 163, 164, 161, - 127, 162, 162, 162, 121, 165, 177, 178, 186, 187, - 269, 75, 32, 160, 217, 218, 219, 269, 75, 124, - 192, 124, 194, 75, 161, 287, 75, 279, 285, 291, - 269, 269, 269, 26, 269, 269, 269, 269, 269, 269, + 122, 150, 153, 171, 254, 256, 257, 281, 284, 285, + 291, 269, 161, 260, 161, 26, 65, 65, 245, 269, + 178, 161, 161, 161, 161, 161, 163, 269, 163, 269, + 75, 75, 163, 248, 269, 273, 164, 269, 153, 171, + 173, 174, 77, 166, 220, 221, 77, 222, 250, 122, + 122, 161, 161, 161, 161, 161, 161, 153, 164, 171, + 171, 248, 269, 273, 249, 269, 301, 176, 164, 153, + 161, 8, 163, 75, 75, 163, 32, 188, 65, 147, + 9, 10, 11, 25, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 51, 163, 53, + 54, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 161, 147, 65, 126, 65, 164, 166, + 285, 65, 65, 65, 188, 269, 153, 171, 301, 147, + 147, 271, 273, 127, 167, 8, 267, 161, 261, 153, + 171, 147, 261, 147, 126, 285, 162, 269, 269, 269, + 287, 287, 8, 163, 87, 269, 246, 247, 269, 248, + 273, 75, 202, 269, 163, 163, 163, 13, 163, 163, + 176, 163, 171, 95, 8, 163, 164, 270, 273, 8, + 163, 13, 8, 163, 188, 184, 185, 273, 273, 297, + 273, 162, 128, 273, 292, 293, 294, 171, 170, 163, + 164, 161, 127, 162, 162, 162, 121, 165, 177, 178, + 186, 187, 269, 75, 32, 160, 217, 218, 219, 269, + 75, 124, 192, 124, 194, 75, 161, 287, 75, 279, + 285, 291, 269, 269, 269, 26, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, 256, 32, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 217, 75, 279, 287, 75, 164, 279, 288, - 289, 290, 287, 269, 287, 287, 287, 162, 171, 75, - 75, 32, 269, 32, 269, 171, 279, 217, 279, 288, - 162, 162, 167, 167, 269, 161, 162, 163, 8, 95, - 95, 13, 8, 162, 162, 44, 45, 65, 83, 129, - 150, 153, 171, 254, 262, 263, 264, 165, 95, 75, - 174, 269, 221, 263, 77, 161, 8, 162, 8, 162, - 162, 163, 161, 8, 162, 162, 161, 165, 170, 217, - 248, 273, 161, 165, 271, 269, 162, 8, 13, 150, - 153, 171, 255, 125, 195, 196, 255, 164, 161, 25, - 129, 155, 211, 212, 214, 215, 255, 167, 161, 161, - 285, 269, 26, 66, 273, 162, 161, 161, 167, 269, - 161, 276, 277, 278, 65, 164, 167, 165, 167, 167, - 167, 271, 271, 127, 162, 258, 26, 178, 269, 26, - 178, 206, 246, 269, 273, 32, 198, 273, 263, 75, - 26, 178, 201, 26, 164, 203, 263, 263, 263, 266, - 268, 161, 153, 171, 147, 107, 159, 180, 181, 183, - 75, 165, 13, 211, 185, 163, 273, 292, 293, 13, - 217, 165, 162, 162, 219, 263, 153, 171, 196, 164, - 8, 223, 211, 215, 162, 8, 32, 77, 160, 213, - 217, 217, 269, 256, 217, 217, 165, 217, 65, 65, - 274, 287, 269, 32, 269, 126, 259, 176, 207, 162, - 176, 163, 127, 197, 273, 197, 13, 176, 163, 204, - 163, 204, 127, 167, 8, 267, 266, 171, 75, 161, - 164, 181, 182, 183, 263, 162, 162, 269, 162, 163, - 171, 223, 255, 104, 109, 111, 112, 113, 114, 115, - 116, 117, 165, 224, 226, 239, 240, 241, 242, 244, - 162, 109, 251, 214, 213, 77, 13, 162, 162, 261, - 162, 162, 162, 287, 287, 126, 275, 167, 165, 271, - 288, 208, 70, 71, 209, 163, 88, 246, 198, 162, - 162, 263, 94, 204, 97, 98, 99, 204, 165, 263, - 263, 162, 255, 176, 251, 165, 75, 227, 255, 77, - 243, 250, 242, 8, 163, 26, 216, 161, 216, 32, - 213, 13, 263, 167, 167, 288, 70, 71, 210, 161, - 178, 163, 162, 26, 178, 200, 200, 163, 97, 163, - 269, 26, 163, 205, 165, 127, 77, 165, 216, 13, - 8, 163, 164, 228, 13, 8, 163, 225, 75, 214, - 164, 32, 77, 252, 164, 213, 13, 263, 278, 161, - 26, 72, 269, 26, 178, 199, 176, 163, 205, 176, - 263, 162, 164, 263, 255, 75, 229, 230, 231, 232, - 234, 235, 236, 255, 263, 77, 188, 13, 176, 77, - 8, 162, 176, 13, 263, 269, 176, 163, 162, 176, - 92, 176, 164, 176, 165, 231, 163, 95, 154, 163, - 147, 13, 75, 263, 165, 32, 77, 165, 263, 162, - 178, 90, 163, 176, 165, 237, 242, 233, 255, 75, - 263, 161, 77, 26, 163, 165, 75, 8, 211, 176, - 255, 162, 216, 163, 164, 238, 176, 165 + 256, 32, 269, 269, 269, 269, 269, 269, 269, 269, + 269, 269, 269, 269, 217, 75, 279, 287, 75, 164, + 279, 288, 289, 290, 287, 269, 287, 287, 287, 162, + 171, 75, 75, 32, 269, 32, 269, 217, 192, 171, + 279, 279, 288, 162, 162, 167, 167, 269, 161, 162, + 163, 8, 95, 95, 13, 8, 162, 162, 44, 45, + 65, 83, 129, 150, 153, 171, 254, 262, 263, 264, + 165, 95, 75, 174, 269, 221, 263, 77, 161, 8, + 162, 8, 162, 162, 163, 161, 8, 162, 162, 161, + 165, 170, 217, 248, 273, 161, 165, 271, 269, 162, + 8, 13, 150, 153, 171, 255, 125, 195, 196, 255, + 164, 161, 25, 129, 155, 211, 212, 214, 215, 255, + 167, 161, 161, 285, 269, 26, 66, 273, 162, 161, + 161, 167, 269, 161, 276, 277, 278, 65, 164, 167, + 165, 167, 167, 167, 271, 271, 127, 162, 195, 258, + 26, 178, 269, 26, 178, 206, 246, 269, 273, 32, + 198, 273, 263, 75, 26, 178, 201, 26, 164, 203, + 263, 263, 263, 266, 268, 161, 153, 171, 147, 107, + 159, 180, 181, 183, 75, 165, 13, 211, 185, 163, + 273, 292, 293, 13, 217, 165, 162, 162, 219, 263, + 153, 171, 196, 164, 8, 223, 211, 215, 162, 8, + 32, 77, 160, 213, 217, 217, 269, 256, 217, 217, + 165, 217, 65, 65, 274, 287, 269, 32, 269, 164, + 126, 259, 176, 207, 162, 176, 163, 127, 197, 273, + 197, 13, 176, 163, 204, 163, 204, 127, 167, 8, + 267, 266, 171, 75, 161, 164, 181, 182, 183, 263, + 162, 162, 269, 162, 163, 171, 223, 255, 104, 109, + 111, 112, 113, 114, 115, 116, 117, 165, 224, 226, + 239, 240, 241, 242, 244, 162, 109, 251, 214, 213, + 77, 13, 162, 162, 261, 162, 162, 162, 287, 287, + 126, 275, 167, 165, 271, 223, 288, 208, 70, 71, + 209, 163, 88, 246, 198, 162, 162, 263, 94, 204, + 97, 98, 99, 204, 165, 263, 263, 162, 255, 176, + 251, 165, 75, 227, 255, 77, 243, 250, 242, 8, + 163, 26, 216, 161, 216, 32, 213, 13, 263, 167, + 167, 288, 165, 70, 71, 210, 161, 178, 163, 162, + 26, 178, 200, 200, 163, 97, 163, 269, 26, 163, + 205, 165, 127, 77, 165, 216, 13, 8, 163, 164, + 228, 13, 8, 163, 225, 75, 214, 164, 32, 77, + 252, 164, 213, 13, 263, 278, 161, 26, 72, 269, + 26, 178, 199, 176, 163, 205, 176, 263, 162, 164, + 263, 255, 75, 229, 230, 231, 232, 234, 235, 236, + 255, 263, 77, 188, 13, 176, 77, 8, 162, 176, + 13, 263, 269, 176, 163, 162, 176, 92, 176, 164, + 176, 165, 231, 163, 95, 154, 163, 147, 13, 75, + 263, 165, 32, 77, 165, 263, 162, 178, 90, 163, + 176, 165, 237, 242, 233, 255, 75, 263, 161, 77, + 26, 163, 165, 75, 8, 211, 176, 255, 162, 216, + 163, 164, 238, 176, 165 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -2696,7 +2713,7 @@ static const yytype_uint16 yyr1[] = 293, 293, 294, 294, 295, 295, 295, 295, 295, 295, 295, 295, 296, 296, 296, 296, 296, 296, 296, 297, 297, 298, 298, 299, 299, 299, 299, 299, 300, 300, - 301, 302, 302 + 301, 301, 302, 302 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2746,7 +2763,7 @@ static const yytype_uint8 yyr2[] = 4, 0, 0, 2, 5, 3, 3, 1, 6, 4, 4, 2, 4, 4, 2, 2, 4, 2, 2, 1, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, - 3, 3, 3 + 3, 8, 3, 3 }; @@ -3435,7 +3452,7 @@ yyreduce: { *root = NNEW(n_PROGRAM)->appendChild((yyvsp[0])); } -#line 3439 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3456 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 3: @@ -3443,7 +3460,7 @@ yyreduce: { (yyval) = (yyvsp[-1])->appendChild((yyvsp[0])); } -#line 3447 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3464 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 4: @@ -3451,7 +3468,7 @@ yyreduce: { (yyval) = NNEW(n_STATEMENT_LIST); } -#line 3455 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3472 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 5: @@ -3459,7 +3476,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_SYMBOL_NAME); } -#line 3463 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3480 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 6: @@ -3467,7 +3484,7 @@ yyreduce: { (yyval) = NMORE((yyvsp[-2]), (yyvsp[0])); } -#line 3471 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3488 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 10: @@ -3477,7 +3494,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-3])); NMORE((yyval), (yyvsp[0])); } -#line 3481 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3498 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 11: @@ -3489,7 +3506,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-2])); NMORE((yyval), (yyvsp[0])); } -#line 3493 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3510 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 12: @@ -3500,7 +3517,7 @@ yyreduce: (yyvsp[-4])->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-4])); } -#line 3504 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3521 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 13: @@ -3513,7 +3530,7 @@ yyreduce: (yyvsp[-3])->appendChild((yyvsp[-1])); (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-3])); } -#line 3517 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3534 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 14: @@ -3523,7 +3540,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3527 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3544 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 15: @@ -3532,7 +3549,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3536 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3553 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 16: @@ -3540,7 +3557,7 @@ yyreduce: { (yyval) = (yyvsp[-2])->appendChild((yyvsp[0])); } -#line 3544 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3561 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 17: @@ -3549,7 +3566,7 @@ yyreduce: (yyval) = NNEW(n_USE_LIST); (yyval)->appendChild((yyvsp[0])); } -#line 3553 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3570 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 18: @@ -3559,7 +3576,7 @@ yyreduce: (yyval)->appendChild((yyvsp[0])); (yyval)->appendChild(NNEW(n_EMPTY)); } -#line 3563 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3580 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 19: @@ -3570,7 +3587,7 @@ yyreduce: NTYPE((yyvsp[0]), n_STRING); (yyval)->appendChild((yyvsp[0])); } -#line 3574 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3591 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 20: @@ -3581,7 +3598,7 @@ yyreduce: (yyval)->appendChild((yyvsp[0])); (yyval)->appendChild(NNEW(n_EMPTY)); } -#line 3585 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3602 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 21: @@ -3593,7 +3610,7 @@ yyreduce: NTYPE((yyvsp[0]), n_STRING); (yyval)->appendChild((yyvsp[0])); } -#line 3597 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3614 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 22: @@ -3605,7 +3622,7 @@ yyreduce: ->appendChild(NTYPE((yyvsp[-2]), n_STRING)) ->appendChild((yyvsp[0]))); } -#line 3609 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3626 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 23: @@ -3617,7 +3634,7 @@ yyreduce: ->appendChild(NTYPE((yyvsp[-2]), n_STRING)) ->appendChild((yyvsp[0]))); } -#line 3621 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3638 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 24: @@ -3625,7 +3642,7 @@ yyreduce: { (yyval) = (yyvsp[-1])->appendChild((yyvsp[0])); } -#line 3629 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3646 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 25: @@ -3633,7 +3650,7 @@ yyreduce: { (yyval) = NNEW(n_STATEMENT_LIST); } -#line 3637 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3654 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 29: @@ -3643,7 +3660,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-3])); NMORE((yyval), (yyvsp[0])); } -#line 3647 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3664 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 31: @@ -3654,7 +3671,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3658 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3675 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 32: @@ -3662,7 +3679,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_OPEN_TAG); } -#line 3666 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3683 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 33: @@ -3670,7 +3687,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_OPEN_TAG); } -#line 3674 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3691 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 34: @@ -3678,7 +3695,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_CLOSE_TAG); } -#line 3682 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3699 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 35: @@ -3686,7 +3703,7 @@ yyreduce: { (yyval) = NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 3690 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3707 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 36: @@ -3721,7 +3738,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyval)); } -#line 3725 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3742 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 37: @@ -3741,7 +3758,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyval)); NMORE((yyval), (yyvsp[0])); } -#line 3745 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3762 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 38: @@ -3753,7 +3770,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-4])); } -#line 3757 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3774 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 39: @@ -3766,7 +3783,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-6])); NMORE((yyval), (yyvsp[0])); } -#line 3770 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3787 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 40: @@ -3784,7 +3801,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-8])); } -#line 3788 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3805 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 41: @@ -3796,7 +3813,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-4])); } -#line 3800 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3817 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 42: @@ -3808,7 +3825,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3812 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3829 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 43: @@ -3820,7 +3837,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-2])); NMORE((yyval), (yyvsp[0])); } -#line 3824 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3841 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 44: @@ -3832,7 +3849,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3836 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3853 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 45: @@ -3844,7 +3861,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-2])); NMORE((yyval), (yyvsp[0])); } -#line 3848 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3865 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 46: @@ -3856,7 +3873,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3860 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3877 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 47: @@ -3868,7 +3885,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-2])); NMORE((yyval), (yyvsp[0])); } -#line 3872 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3889 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 48: @@ -3880,7 +3897,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-2])); NMORE((yyval), (yyvsp[0])); } -#line 3884 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3901 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 49: @@ -3890,7 +3907,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3894 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3911 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 50: @@ -3900,7 +3917,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3904 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3921 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 51: @@ -3910,7 +3927,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3914 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3931 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 52: @@ -3919,7 +3936,7 @@ yyreduce: NTYPE((yyvsp[0]), n_INLINE_HTML); (yyval) = (yyvsp[0]); } -#line 3923 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3940 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 53: @@ -3928,7 +3945,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3932 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3949 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 54: @@ -3937,7 +3954,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 3941 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3958 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 55: @@ -3948,7 +3965,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-2])); NMORE((yyval), (yyvsp[0])); } -#line 3952 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3969 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 56: @@ -3970,7 +3987,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-7])); } -#line 3974 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 3991 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 57: @@ -3991,7 +4008,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-7])); } -#line 3995 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4012 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 58: @@ -4002,7 +4019,7 @@ yyreduce: (yyvsp[-4])->appendChild((yyvsp[0])); (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-4])); } -#line 4006 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4023 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 59: @@ -4011,7 +4028,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild(NNEW(n_EMPTY)); NMORE((yyval), (yyvsp[0])); } -#line 4015 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4032 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 60: @@ -4025,7 +4042,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-5])); } -#line 4029 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4046 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 61: @@ -4039,7 +4056,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-4])); } -#line 4043 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4060 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 62: @@ -4052,7 +4069,7 @@ yyreduce: NMORE((yyval), (yyvsp[0])); } -#line 4056 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4073 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 63: @@ -4065,7 +4082,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-2])); NMORE((yyval), (yyvsp[0])); } -#line 4069 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4086 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 64: @@ -4074,7 +4091,7 @@ yyreduce: (yyvsp[-1])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-1]); } -#line 4078 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4095 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 65: @@ -4083,7 +4100,7 @@ yyreduce: (yyval) = NNEW(n_CATCH_LIST); (yyval)->appendChild((yyvsp[0])); } -#line 4087 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4104 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 66: @@ -4096,7 +4113,7 @@ yyreduce: NMORE((yyvsp[-7]), (yyvsp[0])); (yyval) = (yyvsp[-7]); } -#line 4100 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4117 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 67: @@ -4104,7 +4121,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4108 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4125 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 69: @@ -4115,7 +4132,7 @@ yyreduce: NMORE((yyvsp[-3]), (yyvsp[0])); (yyval) = (yyvsp[-3]); } -#line 4119 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4136 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 70: @@ -4124,7 +4141,7 @@ yyreduce: (yyval) = NNEW(n_UNSET_LIST); (yyval)->appendChild((yyvsp[0])); } -#line 4128 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4145 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 71: @@ -4133,7 +4150,7 @@ yyreduce: (yyvsp[-2])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-2]); } -#line 4137 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4154 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 75: @@ -4141,7 +4158,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4145 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4162 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 76: @@ -4149,7 +4166,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_REFERENCE); } -#line 4153 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4170 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 77: @@ -4166,7 +4183,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-9])); } -#line 4170 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4187 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 78: @@ -4182,7 +4199,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyval)); } -#line 4186 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4203 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 79: @@ -4199,7 +4216,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyval)); } -#line 4203 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4220 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 80: @@ -4208,7 +4225,7 @@ yyreduce: NTYPE((yyvsp[0]), n_CLASS_ATTRIBUTES); (yyval) = (yyvsp[0]); } -#line 4212 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4229 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 81: @@ -4220,7 +4237,7 @@ yyreduce: (yyval) = (yyvsp[0]); } -#line 4224 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4241 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 82: @@ -4232,7 +4249,7 @@ yyreduce: (yyval) = (yyvsp[0]); } -#line 4236 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4253 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 83: @@ -4241,7 +4258,7 @@ yyreduce: (yyval) = NNEW(n_CLASS_ATTRIBUTES); (yyval)->appendChild(NTYPE((yyvsp[0]), n_STRING)); } -#line 4245 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4262 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 84: @@ -4249,7 +4266,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4253 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4270 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 85: @@ -4257,7 +4274,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[-1]), n_EXTENDS_LIST)->appendChild((yyvsp[0])); } -#line 4261 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4278 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 87: @@ -4265,7 +4282,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4269 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4286 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 88: @@ -4275,7 +4292,7 @@ yyreduce: (yyvsp[-1])->appendChildren((yyvsp[0])); (yyval) = (yyvsp[-1]); } -#line 4279 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4296 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 89: @@ -4283,7 +4300,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4287 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4304 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 90: @@ -4293,7 +4310,7 @@ yyreduce: (yyvsp[-1])->appendChildren((yyvsp[0])); (yyval) = (yyvsp[-1]); } -#line 4297 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4314 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 91: @@ -4301,7 +4318,7 @@ yyreduce: { (yyval) = NNEW(n_IMPLEMENTS_LIST)->appendChild((yyvsp[0])); } -#line 4305 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4322 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 92: @@ -4309,7 +4326,7 @@ yyreduce: { (yyval) = (yyvsp[-2])->appendChild((yyvsp[0])); } -#line 4313 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4330 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 93: @@ -4317,7 +4334,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4321 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4338 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 94: @@ -4325,7 +4342,7 @@ yyreduce: { (yyval) = (yyvsp[0]); } -#line 4329 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4346 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 96: @@ -4335,7 +4352,7 @@ yyreduce: (yyvsp[-1])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-1]); } -#line 4339 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4356 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 98: @@ -4345,7 +4362,7 @@ yyreduce: NMORE((yyvsp[-2]), (yyvsp[0])); (yyval) = (yyvsp[-2]); } -#line 4349 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4366 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 100: @@ -4355,7 +4372,7 @@ yyreduce: NMORE((yyvsp[-2]), (yyvsp[0])); (yyval) = (yyvsp[-2]); } -#line 4359 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4376 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 102: @@ -4365,7 +4382,7 @@ yyreduce: NMORE((yyvsp[-2]), (yyvsp[0])); (yyval) = (yyvsp[-2]); } -#line 4369 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4386 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 103: @@ -4376,7 +4393,7 @@ yyreduce: (yyval)->appendChild((yyvsp[0])); (yyval) = NNEW(n_DECLARE_DECLARATION_LIST)->appendChild((yyval)); } -#line 4380 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4397 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 104: @@ -4389,7 +4406,7 @@ yyreduce: (yyvsp[-4])->appendChild((yyval)); (yyval) = (yyvsp[-4]); } -#line 4393 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4410 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 105: @@ -4397,7 +4414,7 @@ yyreduce: { (yyval) = NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 4401 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4418 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 106: @@ -4412,7 +4429,7 @@ yyreduce: (yyval)->appendChildren((yyvsp[-1])); NEXPAND((yyvsp[-3]), (yyval), (yyvsp[0])); } -#line 4416 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4433 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 107: @@ -4422,7 +4439,7 @@ yyreduce: NMORE((yyvsp[-2]), (yyvsp[-3])); (yyval) = (yyvsp[-2]); } -#line 4426 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4443 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 108: @@ -4436,7 +4453,7 @@ yyreduce: NMORE((yyval), (yyvsp[0])); NMORE((yyval), (yyvsp[-4])); } -#line 4440 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4457 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 109: @@ -4444,7 +4461,7 @@ yyreduce: { (yyval) = NNEW(n_STATEMENT_LIST); } -#line 4448 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4465 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 110: @@ -4457,7 +4474,7 @@ yyreduce: (yyvsp[-4])->appendChild((yyvsp[-3])); (yyval) = (yyvsp[-4]); } -#line 4461 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4478 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 111: @@ -4469,7 +4486,7 @@ yyreduce: (yyvsp[-3])->appendChild((yyvsp[-2])); (yyval) = (yyvsp[-3]); } -#line 4473 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4490 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 115: @@ -4479,7 +4496,7 @@ yyreduce: NMORE((yyvsp[-2]), (yyvsp[-3])); (yyval) = (yyvsp[-2]); } -#line 4483 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4500 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 116: @@ -4487,7 +4504,7 @@ yyreduce: { (yyval) = NNEW(n_CONDITION_LIST); } -#line 4491 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4508 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 117: @@ -4499,7 +4516,7 @@ yyreduce: (yyval) = (yyvsp[-5])->appendChild((yyvsp[-4])); } -#line 4503 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4520 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 118: @@ -4507,7 +4524,7 @@ yyreduce: { (yyval) = NNEW(n_CONDITION_LIST); } -#line 4511 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4528 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 119: @@ -4519,7 +4536,7 @@ yyreduce: (yyval) = (yyvsp[-6])->appendChild((yyvsp[-5])); } -#line 4523 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4540 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 120: @@ -4527,7 +4544,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4531 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4548 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 121: @@ -4537,7 +4554,7 @@ yyreduce: (yyvsp[-1])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-1]); } -#line 4541 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4558 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 122: @@ -4545,7 +4562,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4549 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4566 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 123: @@ -4555,7 +4572,7 @@ yyreduce: (yyvsp[-2])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-2]); } -#line 4559 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4576 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 125: @@ -4563,7 +4580,7 @@ yyreduce: { (yyval) = NNEW(n_DECLARATION_PARAMETER_LIST); } -#line 4567 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4584 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 126: @@ -4576,7 +4593,7 @@ yyreduce: (yyval) = NNEW(n_DECLARATION_PARAMETER_LIST)->appendChild((yyval)); } -#line 4580 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4597 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 127: @@ -4590,7 +4607,7 @@ yyreduce: (yyval) = NNEW(n_DECLARATION_PARAMETER_LIST)->appendChild((yyval)); } -#line 4594 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4611 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 128: @@ -4604,7 +4621,7 @@ yyreduce: (yyval) = NNEW(n_DECLARATION_PARAMETER_LIST)->appendChild((yyval)); } -#line 4608 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4625 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 129: @@ -4617,7 +4634,7 @@ yyreduce: (yyval) = NNEW(n_DECLARATION_PARAMETER_LIST)->appendChild((yyval)); } -#line 4621 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4638 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 130: @@ -4630,7 +4647,7 @@ yyreduce: (yyval) = (yyvsp[-3])->appendChild((yyval)); } -#line 4634 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4651 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 131: @@ -4644,7 +4661,7 @@ yyreduce: (yyval) = (yyvsp[-4])->appendChild((yyval)); } -#line 4648 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4665 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 132: @@ -4658,7 +4675,7 @@ yyreduce: (yyval) = (yyvsp[-6])->appendChild((yyval)); } -#line 4662 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4679 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 133: @@ -4671,7 +4688,7 @@ yyreduce: (yyval) = (yyvsp[-5])->appendChild((yyval)); } -#line 4675 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4692 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 134: @@ -4680,7 +4697,7 @@ yyreduce: (yyval) = NTYPE((yyvsp[-1]), n_UNPACK); (yyval)->appendChild(NTYPE((yyvsp[0]), n_VARIABLE)); } -#line 4684 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4701 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 135: @@ -4688,7 +4705,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_VARIABLE); } -#line 4692 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4709 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 136: @@ -4696,7 +4713,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4700 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4717 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 138: @@ -4705,7 +4722,7 @@ yyreduce: (yyval) = NNEW(n_NULLABLE_TYPE); (yyval)->appendChild((yyvsp[0])); } -#line 4709 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4726 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 139: @@ -4713,7 +4730,7 @@ yyreduce: { (yyval) = (yyvsp[0]); } -#line 4717 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4734 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 140: @@ -4721,7 +4738,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_TYPE_NAME); } -#line 4725 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4742 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 141: @@ -4729,7 +4746,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_TYPE_NAME); } -#line 4733 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4750 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 142: @@ -4737,7 +4754,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4741 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4758 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 143: @@ -4746,7 +4763,7 @@ yyreduce: (yyval) = NNEW(n_DECLARATION_RETURN); (yyval)->appendChild((yyvsp[0])); } -#line 4750 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4767 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 145: @@ -4754,7 +4771,7 @@ yyreduce: { (yyval) = NNEW(n_CALL_PARAMETER_LIST); } -#line 4758 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4775 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 146: @@ -4762,7 +4779,7 @@ yyreduce: { (yyval) = NNEW(n_CALL_PARAMETER_LIST)->appendChild((yyvsp[0])); } -#line 4766 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4783 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 147: @@ -4770,7 +4787,7 @@ yyreduce: { (yyval) = (yyvsp[-2])->appendChild((yyvsp[0])); } -#line 4774 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4791 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 149: @@ -4778,7 +4795,7 @@ yyreduce: { (yyval) = NNEW(n_UNPACK)->appendChild((yyvsp[-1])); } -#line 4782 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4799 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 150: @@ -4787,7 +4804,7 @@ yyreduce: NTYPE((yyvsp[-1]), n_VARIABLE_REFERENCE); (yyval) = (yyvsp[-1])->appendChild((yyvsp[0])); } -#line 4791 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4808 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 151: @@ -4796,7 +4813,7 @@ yyreduce: (yyvsp[-2])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-2]); } -#line 4800 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4817 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 152: @@ -4805,7 +4822,7 @@ yyreduce: (yyval) = NNEW(n_GLOBAL_DECLARATION_LIST); (yyval)->appendChild((yyvsp[0])); } -#line 4809 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4826 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 153: @@ -4813,7 +4830,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_VARIABLE); } -#line 4817 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4834 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 154: @@ -4822,7 +4839,7 @@ yyreduce: (yyval) = NTYPE((yyvsp[-1]), n_VARIABLE_VARIABLE); (yyval)->appendChild((yyvsp[0])); } -#line 4826 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4843 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 155: @@ -4831,7 +4848,7 @@ yyreduce: (yyval) = NTYPE((yyvsp[-3]), n_VARIABLE_VARIABLE); (yyval)->appendChild((yyvsp[-1])); } -#line 4835 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4852 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 156: @@ -4844,7 +4861,7 @@ yyreduce: (yyval) = (yyvsp[-2])->appendChild((yyval)); } -#line 4848 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4865 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 157: @@ -4857,7 +4874,7 @@ yyreduce: (yyval) = (yyvsp[-4])->appendChild((yyval)); } -#line 4861 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4878 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 158: @@ -4870,7 +4887,7 @@ yyreduce: (yyval) = NNEW(n_STATIC_DECLARATION_LIST)->appendChild((yyval)); } -#line 4874 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4891 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 159: @@ -4883,7 +4900,7 @@ yyreduce: (yyval) = NNEW(n_STATIC_DECLARATION_LIST)->appendChild((yyval)); } -#line 4887 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4904 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 160: @@ -4891,7 +4908,7 @@ yyreduce: { (yyval) = (yyvsp[-1])->appendChild((yyvsp[0])); } -#line 4895 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4912 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 161: @@ -4899,7 +4916,7 @@ yyreduce: { (yyval) = NNEW(n_STATEMENT_LIST); } -#line 4903 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4920 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 162: @@ -4912,7 +4929,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyval)); NMORE((yyval), (yyvsp[0])); } -#line 4916 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4933 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 163: @@ -4921,7 +4938,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 4925 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4942 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 164: @@ -4929,7 +4946,7 @@ yyreduce: { (yyval) = (yyvsp[0]); } -#line 4933 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4950 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 165: @@ -4937,7 +4954,7 @@ yyreduce: { /* empty */ } -#line 4941 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4958 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 166: @@ -4955,7 +4972,7 @@ yyreduce: (yyval) = NNEW(n_STATEMENT)->appendChild((yyval)); } -#line 4959 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4976 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 167: @@ -4965,7 +4982,7 @@ yyreduce: (yyval)->appendChildren((yyvsp[-1])); (yyval)->appendChild((yyvsp[0])); } -#line 4969 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4986 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 168: @@ -4973,7 +4990,7 @@ yyreduce: { (yyval) = NNEW(n_TRAIT_USE_LIST)->appendChild((yyvsp[0])); } -#line 4977 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 4994 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 169: @@ -4981,7 +4998,7 @@ yyreduce: { (yyval) = (yyvsp[-2])->appendChild((yyvsp[0])); } -#line 4985 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5002 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 170: @@ -4989,7 +5006,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 4993 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5010 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 171: @@ -4997,7 +5014,7 @@ yyreduce: { (yyval) = NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 5001 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5018 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 172: @@ -5005,7 +5022,7 @@ yyreduce: { (yyval) = NNEW(n_TRAIT_ADAPTATION_LIST); } -#line 5009 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5026 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 173: @@ -5013,7 +5030,7 @@ yyreduce: { (yyval) = (yyvsp[0]); } -#line 5017 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5034 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 174: @@ -5022,7 +5039,7 @@ yyreduce: (yyval) = NNEW(n_TRAIT_ADAPTATION_LIST); (yyval)->appendChild((yyvsp[0])); } -#line 5026 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5043 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 175: @@ -5031,7 +5048,7 @@ yyreduce: (yyvsp[-1])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-1]); } -#line 5035 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5052 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 176: @@ -5039,7 +5056,7 @@ yyreduce: { (yyval) = NMORE((yyvsp[-1]), (yyvsp[0])); } -#line 5043 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5060 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 177: @@ -5047,7 +5064,7 @@ yyreduce: { (yyval) = NMORE((yyvsp[-1]), (yyvsp[0])); } -#line 5051 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5068 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 178: @@ -5057,7 +5074,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-2])); (yyval)->appendChild((yyvsp[0])); } -#line 5061 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5078 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 179: @@ -5066,7 +5083,7 @@ yyreduce: (yyval) = NNEW(n_TRAIT_REFERENCE_LIST); (yyval)->appendChild((yyvsp[0])); } -#line 5070 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5087 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 180: @@ -5075,7 +5092,7 @@ yyreduce: (yyvsp[-2])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-2]); } -#line 5079 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5096 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 181: @@ -5084,7 +5101,7 @@ yyreduce: (yyval) = NNEW(n_TRAIT_METHOD_REFERENCE); (yyval)->appendChild(NTYPE((yyvsp[0]), n_STRING)); } -#line 5088 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5105 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 182: @@ -5092,7 +5109,7 @@ yyreduce: { (yyval) = (yyvsp[0]); } -#line 5096 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5113 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 183: @@ -5102,7 +5119,7 @@ yyreduce: NEXPAND((yyvsp[-2]), (yyvsp[-1]), NTYPE((yyvsp[0]), n_STRING)); (yyval) = (yyvsp[-1]); } -#line 5106 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5123 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 184: @@ -5113,7 +5130,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); (yyval)->appendChild(NTYPE((yyvsp[0]), n_STRING)); } -#line 5117 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5134 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 185: @@ -5124,7 +5141,7 @@ yyreduce: (yyval)->appendChild((yyvsp[0])); (yyval)->appendChild(NNEW(n_EMPTY)); } -#line 5128 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5145 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 186: @@ -5132,7 +5149,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 5136 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5153 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 187: @@ -5141,7 +5158,7 @@ yyreduce: (yyval) = NNEW(n_METHOD_MODIFIER_LIST); (yyval)->appendChild(NTYPE((yyvsp[0]), n_STRING)); } -#line 5145 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5162 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 188: @@ -5149,7 +5166,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 5153 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5170 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 189: @@ -5157,7 +5174,7 @@ yyreduce: { (yyval) = NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 5161 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5178 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 191: @@ -5166,7 +5183,7 @@ yyreduce: (yyval) = NNEW(n_CLASS_MEMBER_MODIFIER_LIST); (yyval)->appendChild(NTYPE((yyvsp[0]), n_STRING)); } -#line 5170 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5187 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 192: @@ -5174,7 +5191,7 @@ yyreduce: { (yyval) = NNEW(n_METHOD_MODIFIER_LIST); } -#line 5178 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5195 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 193: @@ -5183,7 +5200,7 @@ yyreduce: NTYPE((yyvsp[0]), n_METHOD_MODIFIER_LIST); (yyval) = (yyvsp[0]); } -#line 5187 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5204 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 194: @@ -5192,7 +5209,7 @@ yyreduce: (yyval) = NNEW(n_CLASS_MEMBER_MODIFIER_LIST); (yyval)->appendChild(NTYPE((yyvsp[0]), n_STRING)); } -#line 5196 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5213 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 195: @@ -5200,7 +5217,7 @@ yyreduce: { (yyval) = (yyvsp[-1])->appendChild(NTYPE((yyvsp[0]), n_STRING)); } -#line 5204 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5221 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 202: @@ -5212,7 +5229,7 @@ yyreduce: (yyval) = (yyvsp[-2])->appendChild((yyval)); } -#line 5216 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5233 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 203: @@ -5224,7 +5241,7 @@ yyreduce: (yyval) = (yyvsp[-4])->appendChild((yyval)); } -#line 5228 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5245 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 204: @@ -5236,7 +5253,7 @@ yyreduce: (yyval) = NNEW(n_CLASS_MEMBER_DECLARATION_LIST)->appendChild((yyval)); } -#line 5240 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5257 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 205: @@ -5248,7 +5265,7 @@ yyreduce: (yyval) = NNEW(n_CLASS_MEMBER_DECLARATION_LIST)->appendChild((yyval)); } -#line 5252 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5269 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 206: @@ -5262,7 +5279,7 @@ yyreduce: (yyval) = (yyvsp[-4]); } -#line 5266 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5283 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 207: @@ -5276,7 +5293,7 @@ yyreduce: (yyval) = (yyvsp[-3]); } -#line 5280 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5297 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 208: @@ -5284,7 +5301,7 @@ yyreduce: { (yyvsp[-2])->appendChild((yyvsp[0])); } -#line 5288 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5305 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 209: @@ -5293,7 +5310,7 @@ yyreduce: (yyval) = NNEW(n_ECHO_LIST); (yyval)->appendChild((yyvsp[0])); } -#line 5297 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5314 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 210: @@ -5301,7 +5318,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 5305 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5322 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 212: @@ -5309,7 +5326,7 @@ yyreduce: { (yyvsp[-2])->appendChild((yyvsp[0])); } -#line 5313 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5330 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 213: @@ -5318,7 +5335,7 @@ yyreduce: (yyval) = NNEW(n_EXPRESSION_LIST); (yyval)->appendChild((yyvsp[0])); } -#line 5322 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5339 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 214: @@ -5331,7 +5348,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5335 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5352 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 215: @@ -5342,7 +5359,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5346 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5363 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 216: @@ -5357,7 +5374,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); } -#line 5361 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5378 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 217: @@ -5376,7 +5393,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-3])); } -#line 5380 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5397 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 218: @@ -5386,7 +5403,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5390 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5407 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 219: @@ -5397,7 +5414,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5401 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5418 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 220: @@ -5408,7 +5425,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5412 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5429 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 221: @@ -5419,7 +5436,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5423 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5440 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 222: @@ -5430,7 +5447,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5434 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5451 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 223: @@ -5441,7 +5458,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5445 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5462 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 224: @@ -5452,7 +5469,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5456 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5473 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 225: @@ -5463,7 +5480,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5467 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5484 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 226: @@ -5474,7 +5491,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5478 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5495 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 227: @@ -5485,7 +5502,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5489 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5506 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 228: @@ -5496,7 +5513,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5500 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5517 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 229: @@ -5507,7 +5524,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5511 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5528 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 230: @@ -5517,7 +5534,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); (yyval)->appendChild(NTYPE((yyvsp[0]), n_OPERATOR)); } -#line 5521 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5538 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 231: @@ -5527,7 +5544,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5531 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5548 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 232: @@ -5537,7 +5554,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); (yyval)->appendChild(NTYPE((yyvsp[0]), n_OPERATOR)); } -#line 5541 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5558 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 233: @@ -5547,7 +5564,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5551 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5568 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 234: @@ -5558,7 +5575,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5562 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5579 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 235: @@ -5569,7 +5586,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5573 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5590 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 236: @@ -5580,7 +5597,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5584 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5601 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 237: @@ -5591,7 +5608,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5595 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5612 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 238: @@ -5602,7 +5619,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5606 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5623 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 239: @@ -5613,7 +5630,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5617 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5634 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 240: @@ -5624,7 +5641,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5628 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5645 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 241: @@ -5635,7 +5652,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5639 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5656 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 242: @@ -5666,7 +5683,7 @@ yyreduce: (yyval)->appendChild((yyvsp[0])); } } -#line 5670 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5687 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 243: @@ -5677,7 +5694,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5681 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5698 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 244: @@ -5688,7 +5705,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5692 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5709 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 245: @@ -5699,7 +5716,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5703 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5720 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 246: @@ -5710,7 +5727,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5714 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5731 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 247: @@ -5721,7 +5738,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5725 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5742 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 248: @@ -5732,7 +5749,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5736 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5753 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 249: @@ -5743,7 +5760,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5747 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5764 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 250: @@ -5753,7 +5770,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5757 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5774 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 251: @@ -5763,7 +5780,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5767 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5784 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 252: @@ -5773,7 +5790,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5777 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5794 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 253: @@ -5783,7 +5800,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5787 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5804 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 254: @@ -5794,7 +5811,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5798 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5815 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 255: @@ -5805,7 +5822,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5809 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5826 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 256: @@ -5816,7 +5833,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5820 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5837 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 257: @@ -5827,7 +5844,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5831 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5848 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 258: @@ -5838,7 +5855,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5842 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5859 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 259: @@ -5849,7 +5866,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5853 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5870 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 260: @@ -5860,7 +5877,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5864 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5881 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 261: @@ -5871,7 +5888,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5875 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5892 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 262: @@ -5882,7 +5899,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5886 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5903 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 263: @@ -5893,7 +5910,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5897 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5914 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 266: @@ -5906,7 +5923,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5910 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5927 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 267: @@ -5919,7 +5936,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5923 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5940 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 268: @@ -5930,7 +5947,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 5934 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5951 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 270: @@ -5940,7 +5957,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_CAST)); (yyval)->appendChild((yyvsp[0])); } -#line 5944 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5961 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 271: @@ -5950,7 +5967,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_CAST)); (yyval)->appendChild((yyvsp[0])); } -#line 5954 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5971 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 272: @@ -5960,7 +5977,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_CAST)); (yyval)->appendChild((yyvsp[0])); } -#line 5964 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5981 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 273: @@ -5970,7 +5987,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_CAST)); (yyval)->appendChild((yyvsp[0])); } -#line 5974 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 5991 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 274: @@ -5980,7 +5997,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_CAST)); (yyval)->appendChild((yyvsp[0])); } -#line 5984 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6001 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 275: @@ -5990,7 +6007,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_CAST)); (yyval)->appendChild((yyvsp[0])); } -#line 5994 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6011 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 276: @@ -6000,7 +6017,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_CAST)); (yyval)->appendChild((yyvsp[0])); } -#line 6004 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6021 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 277: @@ -6010,7 +6027,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 6014 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6031 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 278: @@ -6020,7 +6037,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 6024 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6041 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 279: @@ -6029,7 +6046,7 @@ yyreduce: NTYPE((yyvsp[0]), n_BACKTICKS_EXPRESSION); (yyval) = (yyvsp[0]); } -#line 6033 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6050 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 283: @@ -6039,7 +6056,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 6043 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6060 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 284: @@ -6050,7 +6067,7 @@ yyreduce: (yyvsp[0])->appendChild(NNEW(n_EMPTY)); (yyval) = (yyvsp[0]); } -#line 6054 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6071 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 285: @@ -6067,7 +6084,7 @@ yyreduce: (yyval) = (yyvsp[-9]); } -#line 6071 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6088 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 286: @@ -6090,7 +6107,7 @@ yyreduce: (yyval) = (yyvsp[-9]); } -#line 6094 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6111 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 287: @@ -6101,7 +6118,7 @@ yyreduce: (yyvsp[-1])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-1]); } -#line 6105 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6122 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 288: @@ -6112,7 +6129,7 @@ yyreduce: (yyvsp[-1])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-1]); } -#line 6116 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6133 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 289: @@ -6123,7 +6140,7 @@ yyreduce: (yyvsp[-3])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-3]); } -#line 6127 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6144 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 290: @@ -6134,7 +6151,7 @@ yyreduce: (yyvsp[-3])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-3]); } -#line 6138 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6155 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 292: @@ -6142,7 +6159,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 6146 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6163 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 293: @@ -6152,7 +6169,7 @@ yyreduce: (yyvsp[-3])->appendChildren((yyvsp[-1])); (yyval) = (yyvsp[-3]); } -#line 6156 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6173 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 294: @@ -6160,7 +6177,7 @@ yyreduce: { (yyval) = (yyvsp[-2])->appendChild(NTYPE((yyvsp[0]), n_VARIABLE)); } -#line 6164 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6181 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 295: @@ -6170,7 +6187,7 @@ yyreduce: (yyvsp[-1])->appendChild(NTYPE((yyvsp[0]), n_VARIABLE)); (yyval) = (yyvsp[-3])->appendChild((yyvsp[-1])); } -#line 6174 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6191 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 296: @@ -6179,7 +6196,7 @@ yyreduce: (yyval) = NNEW(n_LEXICAL_VARIABLE_LIST); (yyval)->appendChild(NTYPE((yyvsp[0]), n_VARIABLE)); } -#line 6183 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6200 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 297: @@ -6190,7 +6207,7 @@ yyreduce: (yyval) = NNEW(n_LEXICAL_VARIABLE_LIST); (yyval)->appendChild((yyvsp[-1])); } -#line 6194 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6211 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 298: @@ -6200,7 +6217,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-3])); (yyval)->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); } -#line 6204 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6221 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 299: @@ -6211,7 +6228,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-3])); (yyval)->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); } -#line 6215 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6232 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 300: @@ -6222,7 +6239,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-3])); (yyval)->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); } -#line 6226 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6243 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 301: @@ -6235,7 +6252,7 @@ yyreduce: (yyval) = NNEW(n_FUNCTION_CALL)->appendChild((yyval)); (yyval)->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); } -#line 6239 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6256 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 302: @@ -6248,7 +6265,7 @@ yyreduce: (yyval) = NNEW(n_FUNCTION_CALL)->appendChild((yyval)); (yyval)->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); } -#line 6252 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6269 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 303: @@ -6261,7 +6278,7 @@ yyreduce: (yyval) = NNEW(n_FUNCTION_CALL)->appendChild((yyval)); (yyval)->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); } -#line 6265 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6282 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 304: @@ -6274,7 +6291,7 @@ yyreduce: (yyval) = NNEW(n_FUNCTION_CALL)->appendChild((yyval)); (yyval)->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); } -#line 6278 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6295 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 305: @@ -6284,7 +6301,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-3])); (yyval)->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); } -#line 6288 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6305 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 306: @@ -6292,7 +6309,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_CLASS_NAME); } -#line 6296 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6313 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 307: @@ -6300,7 +6317,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_CLASS_NAME); } -#line 6304 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6321 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 308: @@ -6309,7 +6326,7 @@ yyreduce: NMORE((yyvsp[0]), (yyvsp[-2])); (yyval) = NTYPE((yyvsp[0]), n_CLASS_NAME); } -#line 6313 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6330 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 309: @@ -6318,7 +6335,7 @@ yyreduce: NMORE((yyvsp[0]), (yyvsp[-1])); (yyval) = NTYPE((yyvsp[0]), n_CLASS_NAME); } -#line 6322 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6339 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 310: @@ -6326,7 +6343,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_CLASS_NAME); } -#line 6330 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6347 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 311: @@ -6335,7 +6352,7 @@ yyreduce: NMORE((yyvsp[0]), (yyvsp[-2])); (yyval) = NTYPE((yyvsp[0]), n_CLASS_NAME); } -#line 6339 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6356 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 312: @@ -6344,7 +6361,7 @@ yyreduce: NMORE((yyvsp[0]), (yyvsp[-1])); (yyval) = NTYPE((yyvsp[0]), n_CLASS_NAME); } -#line 6348 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6365 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 315: @@ -6361,7 +6378,7 @@ yyreduce: (yyval)->appendChild(*ii); } } -#line 6365 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6382 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 317: @@ -6369,7 +6386,7 @@ yyreduce: { (yyval) = (yyvsp[-1])->appendChild((yyvsp[0])); } -#line 6373 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6390 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 318: @@ -6377,7 +6394,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 6381 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6398 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 319: @@ -6385,7 +6402,7 @@ yyreduce: { (yyval) = (yyvsp[0]); } -#line 6389 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6406 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 320: @@ -6393,7 +6410,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 6397 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6414 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 321: @@ -6402,7 +6419,7 @@ yyreduce: NSPAN((yyvsp[-1]), n_EMPTY, (yyvsp[0])); (yyval) = (yyvsp[-1]); } -#line 6406 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6423 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 322: @@ -6412,7 +6429,7 @@ yyreduce: (yyvsp[-2])->appendChild((yyvsp[-1])); (yyval) = (yyvsp[-2]); } -#line 6416 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6433 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 323: @@ -6420,7 +6437,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 6424 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6441 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 324: @@ -6428,7 +6445,7 @@ yyreduce: { (yyval) = NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 6432 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6449 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 325: @@ -6436,7 +6453,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_NUMERIC_SCALAR); } -#line 6440 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6457 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 326: @@ -6444,7 +6461,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_NUMERIC_SCALAR); } -#line 6448 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6465 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 327: @@ -6452,7 +6469,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_STRING_SCALAR); } -#line 6456 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6473 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 328: @@ -6460,7 +6477,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_MAGIC_SCALAR); } -#line 6464 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6481 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 329: @@ -6468,7 +6485,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_MAGIC_SCALAR); } -#line 6472 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6489 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 330: @@ -6476,7 +6493,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_MAGIC_SCALAR); } -#line 6480 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6497 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 331: @@ -6484,7 +6501,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_MAGIC_SCALAR); } -#line 6488 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6505 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 332: @@ -6492,7 +6509,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_MAGIC_SCALAR); } -#line 6496 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6513 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 333: @@ -6500,7 +6517,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_MAGIC_SCALAR); } -#line 6504 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6521 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 334: @@ -6508,7 +6525,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_MAGIC_SCALAR); } -#line 6512 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6529 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 335: @@ -6516,7 +6533,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_MAGIC_SCALAR); } -#line 6520 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6537 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 336: @@ -6524,7 +6541,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_HEREDOC); } -#line 6528 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6545 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 339: @@ -6533,7 +6550,7 @@ yyreduce: NMORE((yyvsp[0]), (yyvsp[-2])); (yyval) = (yyvsp[0]); } -#line 6537 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6554 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 340: @@ -6542,7 +6559,7 @@ yyreduce: NMORE((yyvsp[0]), (yyvsp[-1])); (yyval) = (yyvsp[0]); } -#line 6546 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6563 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 341: @@ -6552,7 +6569,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 6556 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6573 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 342: @@ -6562,7 +6579,7 @@ yyreduce: (yyval)->appendChild(NTYPE((yyvsp[-1]), n_OPERATOR)); (yyval)->appendChild((yyvsp[0])); } -#line 6566 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6583 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 343: @@ -6572,7 +6589,7 @@ yyreduce: (yyvsp[-3])->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); (yyval) = (yyvsp[-3]); } -#line 6576 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6593 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 344: @@ -6582,7 +6599,7 @@ yyreduce: (yyvsp[-2])->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); (yyval) = (yyvsp[-2]); } -#line 6586 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6603 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 346: @@ -6592,7 +6609,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-2])); (yyval)->appendChild(NTYPE((yyvsp[0]), n_STRING)); } -#line 6596 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6613 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 350: @@ -6600,7 +6617,7 @@ yyreduce: { (yyval) = NMORE((yyvsp[0]), (yyvsp[-2])); } -#line 6604 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6621 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 351: @@ -6608,7 +6625,7 @@ yyreduce: { (yyval) = NMORE((yyvsp[0]), (yyvsp[-1])); } -#line 6612 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6629 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 353: @@ -6616,7 +6633,7 @@ yyreduce: { (yyval) = NNEW(n_ARRAY_VALUE_LIST); } -#line 6620 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6637 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 354: @@ -6624,7 +6641,7 @@ yyreduce: { (yyval) = NMORE((yyvsp[-1]), (yyvsp[0])); } -#line 6628 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6645 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 355: @@ -6632,7 +6649,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 6636 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6653 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 357: @@ -6644,7 +6661,7 @@ yyreduce: (yyval) = (yyvsp[-4])->appendChild((yyval)); } -#line 6648 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6665 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 358: @@ -6656,7 +6673,7 @@ yyreduce: (yyval) = (yyvsp[-2])->appendChild((yyval)); } -#line 6660 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6677 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 359: @@ -6668,7 +6685,7 @@ yyreduce: (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval)); } -#line 6672 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6689 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 360: @@ -6680,7 +6697,7 @@ yyreduce: (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval)); } -#line 6684 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6701 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 366: @@ -6708,7 +6725,7 @@ yyreduce: } } } -#line 6712 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6729 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 368: @@ -6716,7 +6733,7 @@ yyreduce: { (yyval) = (yyvsp[-1])->appendChildren((yyvsp[0])); } -#line 6720 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6737 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 369: @@ -6724,7 +6741,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 6728 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6745 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 370: @@ -6736,7 +6753,7 @@ yyreduce: (yyval)->appendChild((yyvsp[0])); } } -#line 6740 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6757 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 371: @@ -6747,7 +6764,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 6751 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6768 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 372: @@ -6758,7 +6775,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 6762 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6779 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 373: @@ -6766,7 +6783,7 @@ yyreduce: { (yyval) = NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 6770 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6787 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 376: @@ -6774,7 +6791,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 6778 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6795 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 378: @@ -6791,7 +6808,7 @@ yyreduce: (yyval) = (yyvsp[-1]); } -#line 6795 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6812 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 379: @@ -6801,7 +6818,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-2])); (yyval)->appendChild((yyvsp[0])); } -#line 6805 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6822 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 380: @@ -6811,7 +6828,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-2])); (yyval)->appendChild((yyvsp[0])); } -#line 6815 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6832 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 382: @@ -6822,7 +6839,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 6826 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6843 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 383: @@ -6833,7 +6850,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 6837 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6854 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 388: @@ -6841,7 +6858,7 @@ yyreduce: { (yyval) = NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 6845 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6862 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 389: @@ -6858,7 +6875,7 @@ yyreduce: (yyval) = (yyvsp[-1]); } -#line 6862 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6879 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 391: @@ -6869,7 +6886,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 6873 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6890 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 392: @@ -6880,7 +6897,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 6884 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6901 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 394: @@ -6888,7 +6905,7 @@ yyreduce: { NTYPE((yyvsp[0]), n_VARIABLE); } -#line 6892 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6909 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 395: @@ -6898,7 +6915,7 @@ yyreduce: (yyvsp[-3])->appendChild((yyvsp[-1])); (yyval) = (yyvsp[-3]); } -#line 6902 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6919 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 396: @@ -6906,7 +6923,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 6910 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6927 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 397: @@ -6914,7 +6931,7 @@ yyreduce: { (yyval) = (yyvsp[0]); } -#line 6918 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6935 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 400: @@ -6925,7 +6942,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 6929 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6946 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 401: @@ -6936,7 +6953,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 6940 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6957 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 403: @@ -6945,7 +6962,7 @@ yyreduce: NTYPE((yyvsp[0]), n_STRING); (yyval) = (yyvsp[0]); } -#line 6949 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6966 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 404: @@ -6953,7 +6970,7 @@ yyreduce: { (yyval) = NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 6957 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6974 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 405: @@ -6961,7 +6978,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[0]), n_VARIABLE_VARIABLE); } -#line 6965 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6982 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 406: @@ -6978,7 +6995,7 @@ yyreduce: (yyval) = (yyvsp[-1]); } -#line 6982 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 6999 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 407: @@ -6986,7 +7003,7 @@ yyreduce: { (yyval) = (yyvsp[-2])->appendChild((yyvsp[0])); } -#line 6990 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7007 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 408: @@ -6995,7 +7012,7 @@ yyreduce: (yyval) = NNEW(n_ASSIGNMENT_LIST); (yyval)->appendChild((yyvsp[0])); } -#line 6999 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7016 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 410: @@ -7004,7 +7021,7 @@ yyreduce: (yyval) = NNEW(n_LIST); (yyval)->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); } -#line 7008 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7025 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 411: @@ -7012,7 +7029,7 @@ yyreduce: { (yyval) = NNEW(n_EMPTY); } -#line 7016 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7033 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 412: @@ -7020,7 +7037,7 @@ yyreduce: { (yyval) = NNEW(n_ARRAY_VALUE_LIST); } -#line 7024 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7041 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 413: @@ -7028,7 +7045,7 @@ yyreduce: { (yyval) = NMORE((yyvsp[-1]), (yyvsp[0])); } -#line 7032 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7049 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 414: @@ -7040,7 +7057,7 @@ yyreduce: (yyval) = (yyvsp[-4])->appendChild((yyval)); } -#line 7044 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7061 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 415: @@ -7052,7 +7069,7 @@ yyreduce: (yyval) = (yyvsp[-2])->appendChild((yyval)); } -#line 7056 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7073 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 416: @@ -7064,7 +7081,7 @@ yyreduce: (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval)); } -#line 7068 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7085 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 417: @@ -7076,7 +7093,7 @@ yyreduce: (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval)); } -#line 7080 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7097 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 418: @@ -7088,7 +7105,7 @@ yyreduce: (yyval) = (yyvsp[-5])->appendChild((yyval)); } -#line 7092 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7109 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 419: @@ -7100,7 +7117,7 @@ yyreduce: (yyval) = (yyvsp[-3])->appendChild((yyval)); } -#line 7104 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7121 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 420: @@ -7112,7 +7129,7 @@ yyreduce: (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval)); } -#line 7116 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7133 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 421: @@ -7124,7 +7141,7 @@ yyreduce: (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval)); } -#line 7128 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7145 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 422: @@ -7139,7 +7156,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-3])); (yyval)->appendChild((yyvsp[-2])); } -#line 7143 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7160 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 423: @@ -7154,7 +7171,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-3])); (yyval)->appendChild((yyvsp[-2])); } -#line 7158 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7175 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 424: @@ -7162,7 +7179,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[-1]), n_INCLUDE_FILE)->appendChild((yyvsp[0])); } -#line 7166 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7183 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 425: @@ -7170,7 +7187,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[-1]), n_INCLUDE_FILE)->appendChild((yyvsp[0])); } -#line 7174 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7191 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 426: @@ -7185,7 +7202,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-3])); (yyval)->appendChild((yyvsp[-2])); } -#line 7189 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7206 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 427: @@ -7193,7 +7210,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[-1]), n_INCLUDE_FILE)->appendChild((yyvsp[0])); } -#line 7197 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7214 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 428: @@ -7201,7 +7218,7 @@ yyreduce: { (yyval) = NTYPE((yyvsp[-1]), n_INCLUDE_FILE)->appendChild((yyvsp[0])); } -#line 7205 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7222 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 429: @@ -7210,7 +7227,7 @@ yyreduce: (yyval) = NNEW(n_EMPTY); (yyval)->appendChild((yyvsp[0])); } -#line 7214 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7231 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 430: @@ -7218,7 +7235,7 @@ yyreduce: { (yyval) = (yyvsp[-2])->appendChild((yyvsp[0])); } -#line 7222 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7239 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 431: @@ -7228,7 +7245,7 @@ yyreduce: (yyvsp[-2])->appendChild((yyvsp[-1])); (yyval) = (yyvsp[-2]); } -#line 7232 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7249 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 432: @@ -7236,7 +7253,7 @@ yyreduce: { (yyval) = NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 7240 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7257 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 433: @@ -7247,7 +7264,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 7251 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7268 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 434: @@ -7258,7 +7275,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 7262 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7279 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 435: @@ -7269,7 +7286,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 7273 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7290 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 436: @@ -7280,7 +7297,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 7284 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7301 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 437: @@ -7291,7 +7308,7 @@ yyreduce: (yyval)->appendChild((yyvsp[-1])); NMORE((yyval), (yyvsp[0])); } -#line 7295 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7312 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 438: @@ -7301,7 +7318,7 @@ yyreduce: (yyvsp[-3])->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); (yyval) = (yyvsp[-3]); } -#line 7305 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7322 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 439: @@ -7311,7 +7328,7 @@ yyreduce: (yyvsp[-2])->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); (yyval) = (yyvsp[-2]); } -#line 7315 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7332 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 440: @@ -7322,31 +7339,50 @@ yyreduce: (yyvsp[-2])->appendChild((yyvsp[0])); (yyval) = (yyvsp[-2]); } -#line 7326 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7343 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 441: -#line 2752 "parser.y" /* yacc.c:1646 */ +#line 2750 "parser.y" /* yacc.c:1646 */ { - (yyval) = NNEW(n_CLASS_STATIC_ACCESS); - (yyval)->appendChild((yyvsp[-2])); - (yyval)->appendChild(NTYPE((yyvsp[0]), n_STRING)); + (yyval) = NNEW(n_CLASS_DECLARATION); + (yyval)->appendChild((yyvsp[-6])); + (yyval)->appendChild(NNEW(n_EMPTY)); + (yyval)->appendChild((yyvsp[-4])); + (yyval)->appendChild((yyvsp[-3])); + (yyval)->appendChild(NEXPAND((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]))); + NMORE((yyval), (yyvsp[0])); + + NTYPE((yyvsp[-7]), n_NEW); + (yyvsp[-7])->appendChild((yyval)); + (yyvsp[-7])->appendChild((yyvsp[-5])); + (yyval) = (yyvsp[-7]); } -#line 7336 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7362 "parser.yacc.cpp" /* yacc.c:1646 */ break; case 442: -#line 2757 "parser.y" /* yacc.c:1646 */ +#line 2767 "parser.y" /* yacc.c:1646 */ { (yyval) = NNEW(n_CLASS_STATIC_ACCESS); (yyval)->appendChild((yyvsp[-2])); (yyval)->appendChild(NTYPE((yyvsp[0]), n_STRING)); } -#line 7346 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7372 "parser.yacc.cpp" /* yacc.c:1646 */ + break; + + case 443: +#line 2772 "parser.y" /* yacc.c:1646 */ + { + (yyval) = NNEW(n_CLASS_STATIC_ACCESS); + (yyval)->appendChild((yyvsp[-2])); + (yyval)->appendChild(NTYPE((yyvsp[0]), n_STRING)); + } +#line 7382 "parser.yacc.cpp" /* yacc.c:1646 */ break; -#line 7350 "parser.yacc.cpp" /* yacc.c:1646 */ +#line 7386 "parser.yacc.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -7574,7 +7610,7 @@ yyreturn: #endif return yyresult; } -#line 2764 "parser.y" /* yacc.c:1906 */ +#line 2779 "parser.y" /* yacc.c:1906 */ const char* yytokname(int tok) { diff --git a/support/xhpast/scanner.lex.cpp b/support/xhpast/scanner.lex.cpp index 68bc3a6c..644ff1eb 100644 --- a/support/xhpast/scanner.lex.cpp +++ b/support/xhpast/scanner.lex.cpp @@ -8,12 +8,234 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif +#ifdef yy_create_buffer +#define xhpast_create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer xhpast_create_buffer +#endif + +#ifdef yy_delete_buffer +#define xhpast_delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer xhpast_delete_buffer +#endif + +#ifdef yy_scan_buffer +#define xhpast_scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer xhpast_scan_buffer +#endif + +#ifdef yy_scan_string +#define xhpast_scan_string_ALREADY_DEFINED +#else +#define yy_scan_string xhpast_scan_string +#endif + +#ifdef yy_scan_bytes +#define xhpast_scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes xhpast_scan_bytes +#endif + +#ifdef yy_init_buffer +#define xhpast_init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer xhpast_init_buffer +#endif + +#ifdef yy_flush_buffer +#define xhpast_flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer xhpast_flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define xhpast_load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state xhpast_load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define xhpast_switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer xhpast_switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define xhpastpush_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state xhpastpush_buffer_state +#endif + +#ifdef yypop_buffer_state +#define xhpastpop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state xhpastpop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define xhpastensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack xhpastensure_buffer_stack +#endif + +#ifdef yylex +#define xhpastlex_ALREADY_DEFINED +#else +#define yylex xhpastlex +#endif + +#ifdef yyrestart +#define xhpastrestart_ALREADY_DEFINED +#else +#define yyrestart xhpastrestart +#endif + +#ifdef yylex_init +#define xhpastlex_init_ALREADY_DEFINED +#else +#define yylex_init xhpastlex_init +#endif + +#ifdef yylex_init_extra +#define xhpastlex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra xhpastlex_init_extra +#endif + +#ifdef yylex_destroy +#define xhpastlex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy xhpastlex_destroy +#endif + +#ifdef yyget_debug +#define xhpastget_debug_ALREADY_DEFINED +#else +#define yyget_debug xhpastget_debug +#endif + +#ifdef yyset_debug +#define xhpastset_debug_ALREADY_DEFINED +#else +#define yyset_debug xhpastset_debug +#endif + +#ifdef yyget_extra +#define xhpastget_extra_ALREADY_DEFINED +#else +#define yyget_extra xhpastget_extra +#endif + +#ifdef yyset_extra +#define xhpastset_extra_ALREADY_DEFINED +#else +#define yyset_extra xhpastset_extra +#endif + +#ifdef yyget_in +#define xhpastget_in_ALREADY_DEFINED +#else +#define yyget_in xhpastget_in +#endif + +#ifdef yyset_in +#define xhpastset_in_ALREADY_DEFINED +#else +#define yyset_in xhpastset_in +#endif + +#ifdef yyget_out +#define xhpastget_out_ALREADY_DEFINED +#else +#define yyget_out xhpastget_out +#endif + +#ifdef yyset_out +#define xhpastset_out_ALREADY_DEFINED +#else +#define yyset_out xhpastset_out +#endif + +#ifdef yyget_leng +#define xhpastget_leng_ALREADY_DEFINED +#else +#define yyget_leng xhpastget_leng +#endif + +#ifdef yyget_text +#define xhpastget_text_ALREADY_DEFINED +#else +#define yyget_text xhpastget_text +#endif + +#ifdef yyget_lineno +#define xhpastget_lineno_ALREADY_DEFINED +#else +#define yyget_lineno xhpastget_lineno +#endif + +#ifdef yyset_lineno +#define xhpastset_lineno_ALREADY_DEFINED +#else +#define yyset_lineno xhpastset_lineno +#endif + +#ifdef yyget_column +#define xhpastget_column_ALREADY_DEFINED +#else +#define yyget_column xhpastget_column +#endif + +#ifdef yyset_column +#define xhpastset_column_ALREADY_DEFINED +#else +#define yyset_column xhpastset_column +#endif + +#ifdef yywrap +#define xhpastwrap_ALREADY_DEFINED +#else +#define yywrap xhpastwrap +#endif + +#ifdef yyget_lval +#define xhpastget_lval_ALREADY_DEFINED +#else +#define yyget_lval xhpastget_lval +#endif + +#ifdef yyset_lval +#define xhpastset_lval_ALREADY_DEFINED +#else +#define yyset_lval xhpastset_lval +#endif + +#ifdef yyalloc +#define xhpastalloc_ALREADY_DEFINED +#else +#define yyalloc xhpastalloc +#endif + +#ifdef yyrealloc +#define xhpastrealloc_ALREADY_DEFINED +#else +#define yyrealloc xhpastrealloc +#endif + +#ifdef yyfree +#define xhpastfree_ALREADY_DEFINED +#else +#define yyfree xhpastfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -84,40 +306,32 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ -#ifdef __cplusplus +/* begin standard C++ headers. */ -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T @@ -141,20 +355,16 @@ typedef void* yyscan_t; * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE xhpastrestart(yyin ,yyscanner ) - +#define YY_NEW_FILE yyrestart( yyin , yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -179,11 +389,17 @@ typedef void* yyscan_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -198,14 +414,8 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -218,7 +428,7 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -246,7 +456,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -263,7 +473,7 @@ struct yy_buffer_state * possible backing-up. * * When we actually see the EOF, we change the status to "new" - * (via xhpastrestart()), so that the user can continue scanning by + * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 @@ -280,73 +490,67 @@ struct yy_buffer_state #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] -void xhpastrestart (FILE *input_file ,yyscan_t yyscanner ); -void xhpast_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -YY_BUFFER_STATE xhpast_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); -void xhpast_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void xhpast_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void xhpastpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -void xhpastpop_buffer_state (yyscan_t yyscanner ); +void yyrestart ( FILE *input_file , yyscan_t yyscanner ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner ); +void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); +void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); +void yypop_buffer_state ( yyscan_t yyscanner ); -static void xhpastensure_buffer_stack (yyscan_t yyscanner ); -static void xhpast_load_buffer_state (yyscan_t yyscanner ); -static void xhpast_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); +static void yyensure_buffer_stack ( yyscan_t yyscanner ); +static void yy_load_buffer_state ( yyscan_t yyscanner ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner) -#define YY_FLUSH_BUFFER xhpast_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner ); -YY_BUFFER_STATE xhpast_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); -YY_BUFFER_STATE xhpast_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE xhpast_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); - -void *xhpastalloc (yy_size_t ,yyscan_t yyscanner ); -void *xhpastrealloc (void *,yy_size_t ,yyscan_t yyscanner ); -void xhpastfree (void * ,yyscan_t yyscanner ); - -#define yy_new_buffer xhpast_create_buffer +void *yyalloc ( yy_size_t , yyscan_t yyscanner ); +void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner ); +void yyfree ( void * , yyscan_t yyscanner ); +#define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ - xhpastensure_buffer_stack (yyscanner); \ + yyensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ - xhpast_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ - xhpastensure_buffer_stack (yyscanner); \ + yyensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ - xhpast_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ + yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ -#define xhpastwrap(n) 1 +#define xhpastwrap(yyscanner) (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -typedef yyconst struct yy_trans_info *yy_state_type; +typedef const struct yy_trans_info *yy_state_type; #define yytext_ptr yytext_r -static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); -static int yy_get_next_buffer (yyscan_t yyscanner ); -static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); +static yy_state_type yy_get_previous_state ( yyscan_t yyscanner ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state , yyscan_t yyscanner); +static int yy_get_next_buffer ( yyscan_t yyscanner ); +static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -354,11 +558,10 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyg->yytext_ptr -= yyg->yy_more_len; \ - yyleng = (size_t) (yy_cp - yyg->yytext_ptr); \ + yyleng = (int) (yy_cp - yyg->yytext_ptr); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; - #define YY_NUM_RULES 143 #define YY_END_OF_BUFFER 144 struct yy_trans_info @@ -366,7 +569,7 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst struct yy_trans_info yy_transition[109294] = +static const struct yy_trans_info yy_transition[109294] = { { 0, 0 }, { 0,109038 }, { 0, 4 }, { 0,109036 }, { 1,5676 }, { 2,5676 }, { 3,5676 }, { 4,5676 }, { 5,5676 }, { 6,5676 }, @@ -24358,7 +24561,7 @@ static yyconst struct yy_trans_info yy_transition[109294] = { 254,-91865 }, { 255,-91865 }, { 0, 0 }, { 257, 144 }, { 1, 0 }, }; -static yyconst struct yy_trans_info *yy_start_state_list[23] = +static const struct yy_trans_info *yy_start_state_list[23] = { &yy_transition[1], &yy_transition[3], @@ -24422,9 +24625,11 @@ const char* yytokname(int tok); static int yy_token(int tok, struct yyguts_t* yyg); static void yy_scan_newlines(const char* text, struct yyguts_t* yyg); -/* PHP allows IF or if */ -/* The different lexing states. Note that the transitions are done either -* in the lex actions, or in a generic manner in yy_token(). */ +#line 24629 "scanner.lex.cpp" +#line 35 "scanner.l" + /* PHP allows IF or if */ + /* The different lexing states. Note that the transitions are done either + * in the lex actions, or in a generic manner in yy_token(). */ @@ -24435,7 +24640,7 @@ static void yy_scan_newlines(const char* text, struct yyguts_t* yyg); -#line 24439 "scanner.lex.cpp" +#line 24644 "scanner.lex.cpp" #define INITIAL 0 #define PHP 1 @@ -24497,48 +24702,52 @@ struct yyguts_t }; /* end struct yyguts_t */ -static int yy_init_globals (yyscan_t yyscanner ); +static int yy_init_globals ( yyscan_t yyscanner ); /* This must go here because YYSTYPE and YYLTYPE are included * from bison output in section 1.*/ # define yylval yyg->yylval_r -int xhpastlex_init (yyscan_t* scanner); +int yylex_init (yyscan_t* scanner); -int xhpastlex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); +int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int xhpastlex_destroy (yyscan_t yyscanner ); +int yylex_destroy ( yyscan_t yyscanner ); -int xhpastget_debug (yyscan_t yyscanner ); +int yyget_debug ( yyscan_t yyscanner ); -void xhpastset_debug (int debug_flag ,yyscan_t yyscanner ); +void yyset_debug ( int debug_flag , yyscan_t yyscanner ); -YY_EXTRA_TYPE xhpastget_extra (yyscan_t yyscanner ); +YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner ); -void xhpastset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); +void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner ); -FILE *xhpastget_in (yyscan_t yyscanner ); +FILE *yyget_in ( yyscan_t yyscanner ); -void xhpastset_in (FILE * in_str ,yyscan_t yyscanner ); +void yyset_in ( FILE * _in_str , yyscan_t yyscanner ); -FILE *xhpastget_out (yyscan_t yyscanner ); +FILE *yyget_out ( yyscan_t yyscanner ); -void xhpastset_out (FILE * out_str ,yyscan_t yyscanner ); +void yyset_out ( FILE * _out_str , yyscan_t yyscanner ); -int xhpastget_leng (yyscan_t yyscanner ); + int yyget_leng ( yyscan_t yyscanner ); -char *xhpastget_text (yyscan_t yyscanner ); +char *yyget_text ( yyscan_t yyscanner ); -int xhpastget_lineno (yyscan_t yyscanner ); +int yyget_lineno ( yyscan_t yyscanner ); -void xhpastset_lineno (int line_number ,yyscan_t yyscanner ); +void yyset_lineno ( int _line_number , yyscan_t yyscanner ); -YYSTYPE * xhpastget_lval (yyscan_t yyscanner ); +int yyget_column ( yyscan_t yyscanner ); -void xhpastset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); +void yyset_column ( int _column_no , yyscan_t yyscanner ); + +YYSTYPE * yyget_lval ( yyscan_t yyscanner ); + +void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -24546,37 +24755,40 @@ void xhpastset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int xhpastwrap (yyscan_t yyscanner ); +extern "C" int yywrap ( yyscan_t yyscanner ); #else -extern int xhpastwrap (yyscan_t yyscanner ); +extern int yywrap ( yyscan_t yyscanner ); #endif #endif - static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner); +#ifndef YY_NO_UNPUT + static void yyunput ( int c, char *buf_ptr , yyscan_t yyscanner); + +#endif + #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +static int yy_flex_strlen ( const char * , yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT - #ifdef __cplusplus -static int yyinput (yyscan_t yyscanner ); +static int yyinput ( yyscan_t yyscanner ); #else -static int input (yyscan_t yyscanner ); +static int input ( yyscan_t yyscanner ); #endif #endif - static void yy_push_state (int new_state ,yyscan_t yyscanner); + static void yy_push_state ( int _new_state , yyscan_t yyscanner); - static void yy_pop_state (yyscan_t yyscanner ); + static void yy_pop_state ( yyscan_t yyscanner ); - static int yy_top_state (yyscan_t yyscanner ); + static int yy_top_state ( yyscan_t yyscanner ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE @@ -24593,7 +24805,7 @@ static int input (yyscan_t yyscanner ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -24602,7 +24814,7 @@ static int input (yyscan_t yyscanner ); #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ errno=0; \ - while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \ + while ( (result = (int) read( fileno(yyin), buf, (yy_size_t) max_size )) < 0 ) \ { \ if( errno != EINTR) \ { \ @@ -24642,10 +24854,10 @@ static int input (yyscan_t yyscanner ); #ifndef YY_DECL #define YY_DECL_IS_OURS 1 -extern int xhpastlex \ - (YYSTYPE * yylval_param ,yyscan_t yyscanner); +extern int yylex \ + (YYSTYPE * yylval_param , yyscan_t yyscanner); -#define YY_DECL int xhpastlex \ +#define YY_DECL int yylex \ (YYSTYPE * yylval_param , yyscan_t yyscanner) #endif /* !YY_DECL */ @@ -24658,7 +24870,7 @@ extern int xhpastlex \ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -24668,17 +24880,11 @@ extern int xhpastlex \ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 67 "scanner.l" - - - /* Open / close PHP + inline HTML */ -#line 24681 "scanner.lex.cpp" - yylval = yylval_param; if ( !yyg->yy_init ) @@ -24699,20 +24905,27 @@ YY_DECL yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { - xhpastensure_buffer_stack (yyscanner); + yyensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = - xhpast_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); } - xhpast_load_buffer_state(yyscanner ); + yy_load_buffer_state( yyscanner ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 68 "scanner.l" + + + /* Open / close PHP + inline HTML */ +#line 24922 "scanner.lex.cpp" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yyg->yy_more_len = 0; if ( yyg->yy_more_flag ) { - yyg->yy_more_len = yyg->yy_c_buf_p - yyg->yytext_ptr; + yyg->yy_more_len = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr); yyg->yy_more_flag = 0; } yy_cp = yyg->yy_c_buf_p; @@ -24728,12 +24941,12 @@ YY_DECL yy_current_state = yy_start_state_list[yyg->yy_start]; yy_match: { - register yyconst struct yy_trans_info *yy_trans_info; + const struct yy_trans_info *yy_trans_info; - register YY_CHAR yy_c; + YY_CHAR yy_c; for ( yy_c = YY_SC_TO_UI(*yy_cp); - (yy_trans_info = &yy_current_state[(unsigned int) yy_c])-> + (yy_trans_info = &yy_current_state[yy_c])-> yy_verify == yy_c; yy_c = YY_SC_TO_UI(*++yy_cp) ) { @@ -24766,10 +24979,11 @@ do_action: /* This label is used only to access EOF actions. */ case 1: /* rule 1 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ +YY_LINENO_REWIND_TO(yy_bp + 5); yyg->yy_c_buf_p = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 71 "scanner.l" +#line 72 "scanner.l" { yy_scan_newlines(yytext + 5, yyg); // the state transition will be done in yy_token() @@ -24778,14 +24992,14 @@ YY_RULE_SETUP YY_BREAK case 2: YY_RULE_SETUP -#line 76 "scanner.l" +#line 77 "scanner.l" { tok(T_OPEN_TAG); } YY_BREAK case 3: YY_RULE_SETUP -#line 79 "scanner.l" +#line 80 "scanner.l" { tok(T_OPEN_TAG_WITH_ECHO); } @@ -24793,7 +25007,7 @@ YY_RULE_SETUP case 4: /* rule 4 can match eol */ YY_RULE_SETUP -#line 82 "scanner.l" +#line 83 "scanner.l" { yy_scan_newlines(yytext, yyg); tok(T_INLINE_HTML); @@ -24804,7 +25018,7 @@ YY_RULE_SETUP case 5: /* rule 5 can match eol */ YY_RULE_SETUP -#line 88 "scanner.l" +#line 89 "scanner.l" { yy_scan_newlines(yytext + 2, yyg); tok(T_CLOSE_TAG); @@ -24815,7 +25029,7 @@ YY_RULE_SETUP case 6: YY_RULE_SETUP -#line 96 "scanner.l" +#line 97 "scanner.l" { push_state(PHP_EOL_COMMENT); yymore(); @@ -24824,7 +25038,7 @@ YY_RULE_SETUP case 7: /* rule 7 can match eol */ YY_RULE_SETUP -#line 100 "scanner.l" +#line 101 "scanner.l" { yy_scan_newlines(yytext + 3, yyg); push_state(PHP_DOC_COMMENT); @@ -24833,7 +25047,7 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 105 "scanner.l" +#line 106 "scanner.l" { push_state(PHP_COMMENT); yymore(); @@ -24842,7 +25056,7 @@ YY_RULE_SETUP case 9: /* rule 9 can match eol */ YY_RULE_SETUP -#line 109 "scanner.l" +#line 110 "scanner.l" { yy_scan_newlines(yytext, yyg); ptok(T_WHITESPACE); @@ -24850,7 +25064,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(PHP_EOL_COMMENT): -#line 114 "scanner.l" +#line 115 "scanner.l" { ptok(T_COMMENT); pop_state(); @@ -24860,7 +25074,7 @@ case YY_STATE_EOF(PHP_EOL_COMMENT): case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 119 "scanner.l" +#line 120 "scanner.l" { ++yyextra->lineno; ptok(T_COMMENT); @@ -24869,12 +25083,12 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 124 "scanner.l" +#line 125 "scanner.l" yymore(); YY_BREAK case 12: YY_RULE_SETUP -#line 125 "scanner.l" +#line 126 "scanner.l" { yyless(yyleng - 2); ptok(T_COMMENT); @@ -24883,7 +25097,7 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 130 "scanner.l" +#line 131 "scanner.l" yymore(); YY_BREAK @@ -24891,7 +25105,7 @@ yymore(); case 14: /* rule 14 can match eol */ YY_RULE_SETUP -#line 133 "scanner.l" +#line 134 "scanner.l" { ++yyextra->lineno; yymore(); @@ -24899,20 +25113,20 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 137 "scanner.l" +#line 138 "scanner.l" yymore(); YY_BREAK case 16: YY_RULE_SETUP -#line 139 "scanner.l" +#line 140 "scanner.l" { ptok(T_DOC_COMMENT); pop_state(); } YY_BREAK case YY_STATE_EOF(PHP_DOC_COMMENT): -#line 143 "scanner.l" +#line 144 "scanner.l" { ptok(T_DOC_COMMENT); pop_state(); @@ -24920,14 +25134,14 @@ case YY_STATE_EOF(PHP_DOC_COMMENT): YY_BREAK case 17: YY_RULE_SETUP -#line 147 "scanner.l" +#line 148 "scanner.l" { ptok(T_COMMENT); pop_state(); } YY_BREAK case YY_STATE_EOF(PHP_COMMENT): -#line 151 "scanner.l" +#line 152 "scanner.l" { ptok(T_COMMENT); pop_state(); @@ -24937,372 +25151,372 @@ case YY_STATE_EOF(PHP_COMMENT): case 18: YY_RULE_SETUP -#line 158 "scanner.l" +#line 159 "scanner.l" tok(T_INCLUDE); YY_BREAK case 19: YY_RULE_SETUP -#line 159 "scanner.l" +#line 160 "scanner.l" tok(T_INCLUDE_ONCE); YY_BREAK case 20: YY_RULE_SETUP -#line 160 "scanner.l" +#line 161 "scanner.l" tok(T_EVAL); YY_BREAK case 21: YY_RULE_SETUP -#line 161 "scanner.l" +#line 162 "scanner.l" tok(T_REQUIRE); YY_BREAK case 22: YY_RULE_SETUP -#line 162 "scanner.l" +#line 163 "scanner.l" tok(T_REQUIRE_ONCE); YY_BREAK case 23: YY_RULE_SETUP -#line 163 "scanner.l" +#line 164 "scanner.l" tok(T_LOGICAL_OR); YY_BREAK case 24: YY_RULE_SETUP -#line 164 "scanner.l" +#line 165 "scanner.l" tok(T_LOGICAL_XOR); YY_BREAK case 25: YY_RULE_SETUP -#line 165 "scanner.l" +#line 166 "scanner.l" tok(T_LOGICAL_AND); YY_BREAK case 26: YY_RULE_SETUP -#line 166 "scanner.l" +#line 167 "scanner.l" tok(T_PRINT); YY_BREAK case 27: YY_RULE_SETUP -#line 167 "scanner.l" +#line 168 "scanner.l" tok(T_INSTANCEOF); YY_BREAK case 28: YY_RULE_SETUP -#line 168 "scanner.l" +#line 169 "scanner.l" tok(T_NEW); YY_BREAK case 29: YY_RULE_SETUP -#line 169 "scanner.l" +#line 170 "scanner.l" tok(T_CLONE); YY_BREAK case 30: YY_RULE_SETUP -#line 170 "scanner.l" +#line 171 "scanner.l" tok(T_EXIT); YY_BREAK case 31: YY_RULE_SETUP -#line 171 "scanner.l" +#line 172 "scanner.l" tok(T_IF); YY_BREAK case 32: YY_RULE_SETUP -#line 172 "scanner.l" +#line 173 "scanner.l" tok(T_ELSEIF); YY_BREAK case 33: YY_RULE_SETUP -#line 173 "scanner.l" +#line 174 "scanner.l" tok(T_ELSE); YY_BREAK case 34: YY_RULE_SETUP -#line 174 "scanner.l" +#line 175 "scanner.l" tok(T_ENDIF); YY_BREAK case 35: YY_RULE_SETUP -#line 175 "scanner.l" +#line 176 "scanner.l" tok(T_ECHO); YY_BREAK case 36: YY_RULE_SETUP -#line 176 "scanner.l" +#line 177 "scanner.l" tok(T_DO); YY_BREAK case 37: YY_RULE_SETUP -#line 177 "scanner.l" +#line 178 "scanner.l" tok(T_WHILE); YY_BREAK case 38: YY_RULE_SETUP -#line 178 "scanner.l" +#line 179 "scanner.l" tok(T_ENDWHILE); YY_BREAK case 39: YY_RULE_SETUP -#line 179 "scanner.l" +#line 180 "scanner.l" tok(T_FOR); YY_BREAK case 40: YY_RULE_SETUP -#line 180 "scanner.l" +#line 181 "scanner.l" tok(T_ENDFOR); YY_BREAK case 41: YY_RULE_SETUP -#line 181 "scanner.l" +#line 182 "scanner.l" tok(T_FOREACH); YY_BREAK case 42: YY_RULE_SETUP -#line 182 "scanner.l" +#line 183 "scanner.l" tok(T_ENDFOREACH); YY_BREAK case 43: YY_RULE_SETUP -#line 183 "scanner.l" +#line 184 "scanner.l" tok(T_DECLARE); YY_BREAK case 44: YY_RULE_SETUP -#line 184 "scanner.l" +#line 185 "scanner.l" tok(T_ENDDECLARE); YY_BREAK case 45: YY_RULE_SETUP -#line 185 "scanner.l" +#line 186 "scanner.l" tok(T_AS); YY_BREAK case 46: YY_RULE_SETUP -#line 186 "scanner.l" +#line 187 "scanner.l" tok(T_SWITCH); YY_BREAK case 47: YY_RULE_SETUP -#line 187 "scanner.l" +#line 188 "scanner.l" tok(T_ENDSWITCH); YY_BREAK case 48: YY_RULE_SETUP -#line 188 "scanner.l" +#line 189 "scanner.l" tok(T_CASE); YY_BREAK case 49: YY_RULE_SETUP -#line 189 "scanner.l" +#line 190 "scanner.l" tok(T_DEFAULT); YY_BREAK case 50: YY_RULE_SETUP -#line 190 "scanner.l" +#line 191 "scanner.l" tok(T_BREAK); YY_BREAK case 51: YY_RULE_SETUP -#line 191 "scanner.l" +#line 192 "scanner.l" tok(T_CONTINUE); YY_BREAK case 52: YY_RULE_SETUP -#line 192 "scanner.l" +#line 193 "scanner.l" tok(T_GOTO); YY_BREAK case 53: YY_RULE_SETUP -#line 193 "scanner.l" +#line 194 "scanner.l" tok(T_FUNCTION); YY_BREAK case 54: YY_RULE_SETUP -#line 194 "scanner.l" +#line 195 "scanner.l" tok(T_CONST); YY_BREAK case 55: YY_RULE_SETUP -#line 195 "scanner.l" +#line 196 "scanner.l" tok(T_RETURN); YY_BREAK case 56: YY_RULE_SETUP -#line 196 "scanner.l" +#line 197 "scanner.l" tok(T_TRY); YY_BREAK case 57: YY_RULE_SETUP -#line 197 "scanner.l" +#line 198 "scanner.l" tok(T_CATCH); YY_BREAK case 58: YY_RULE_SETUP -#line 198 "scanner.l" +#line 199 "scanner.l" tok(T_THROW); YY_BREAK case 59: YY_RULE_SETUP -#line 199 "scanner.l" +#line 200 "scanner.l" tok(T_USE); YY_BREAK case 60: YY_RULE_SETUP -#line 200 "scanner.l" +#line 201 "scanner.l" tok(T_GLOBAL); YY_BREAK case 61: YY_RULE_SETUP -#line 201 "scanner.l" +#line 202 "scanner.l" tok(T_STATIC); YY_BREAK case 62: YY_RULE_SETUP -#line 202 "scanner.l" +#line 203 "scanner.l" tok(T_ABSTRACT); YY_BREAK case 63: YY_RULE_SETUP -#line 203 "scanner.l" +#line 204 "scanner.l" tok(T_FINAL); YY_BREAK case 64: YY_RULE_SETUP -#line 204 "scanner.l" +#line 205 "scanner.l" tok(T_PRIVATE); YY_BREAK case 65: YY_RULE_SETUP -#line 205 "scanner.l" +#line 206 "scanner.l" tok(T_PROTECTED); YY_BREAK case 66: YY_RULE_SETUP -#line 206 "scanner.l" +#line 207 "scanner.l" tok(T_PUBLIC); YY_BREAK case 67: YY_RULE_SETUP -#line 207 "scanner.l" +#line 208 "scanner.l" tok(T_VAR); YY_BREAK case 68: YY_RULE_SETUP -#line 208 "scanner.l" +#line 209 "scanner.l" tok(T_UNSET); YY_BREAK case 69: YY_RULE_SETUP -#line 209 "scanner.l" +#line 210 "scanner.l" tok(T_ISSET); YY_BREAK case 70: YY_RULE_SETUP -#line 210 "scanner.l" +#line 211 "scanner.l" tok(T_EMPTY); YY_BREAK case 71: YY_RULE_SETUP -#line 211 "scanner.l" +#line 212 "scanner.l" tok(T_HALT_COMPILER); YY_BREAK case 72: YY_RULE_SETUP -#line 212 "scanner.l" +#line 213 "scanner.l" tok(T_CLASS); YY_BREAK case 73: YY_RULE_SETUP -#line 213 "scanner.l" +#line 214 "scanner.l" tok(T_INTERFACE); YY_BREAK case 74: YY_RULE_SETUP -#line 214 "scanner.l" +#line 215 "scanner.l" tok(T_EXTENDS); YY_BREAK case 75: YY_RULE_SETUP -#line 215 "scanner.l" +#line 216 "scanner.l" tok(T_IMPLEMENTS); YY_BREAK case 76: YY_RULE_SETUP -#line 216 "scanner.l" +#line 217 "scanner.l" tok(T_LIST); YY_BREAK case 77: YY_RULE_SETUP -#line 217 "scanner.l" +#line 218 "scanner.l" tok(T_ARRAY); YY_BREAK case 78: YY_RULE_SETUP -#line 218 "scanner.l" +#line 219 "scanner.l" tok(T_CLASS_C); YY_BREAK case 79: YY_RULE_SETUP -#line 219 "scanner.l" +#line 220 "scanner.l" tok(T_METHOD_C); YY_BREAK case 80: YY_RULE_SETUP -#line 220 "scanner.l" +#line 221 "scanner.l" tok(T_FUNC_C); YY_BREAK case 81: YY_RULE_SETUP -#line 221 "scanner.l" +#line 222 "scanner.l" tok(T_LINE); YY_BREAK case 82: YY_RULE_SETUP -#line 222 "scanner.l" +#line 223 "scanner.l" tok(T_FILE); YY_BREAK case 83: YY_RULE_SETUP -#line 223 "scanner.l" +#line 224 "scanner.l" tok(T_NAMESPACE); YY_BREAK case 84: YY_RULE_SETUP -#line 224 "scanner.l" +#line 225 "scanner.l" tok(T_NS_C); YY_BREAK case 85: YY_RULE_SETUP -#line 225 "scanner.l" +#line 226 "scanner.l" tok(T_DIR); YY_BREAK case 86: YY_RULE_SETUP -#line 226 "scanner.l" +#line 227 "scanner.l" tok(T_INSTEADOF); YY_BREAK case 87: YY_RULE_SETUP -#line 227 "scanner.l" +#line 228 "scanner.l" tok(T_CALLABLE); YY_BREAK case 88: YY_RULE_SETUP -#line 228 "scanner.l" +#line 229 "scanner.l" tok(T_TRAIT); YY_BREAK case 89: YY_RULE_SETUP -#line 229 "scanner.l" +#line 230 "scanner.l" tok(T_TRAIT_C); YY_BREAK case 90: YY_RULE_SETUP -#line 230 "scanner.l" +#line 231 "scanner.l" tok(T_YIELD); YY_BREAK case 91: YY_RULE_SETUP -#line 231 "scanner.l" +#line 232 "scanner.l" tok(T_FINALLY); YY_BREAK @@ -25310,152 +25524,152 @@ tok(T_FINALLY); case 92: YY_RULE_SETUP -#line 236 "scanner.l" +#line 237 "scanner.l" tok(T_PLUS_EQUAL); YY_BREAK case 93: YY_RULE_SETUP -#line 237 "scanner.l" +#line 238 "scanner.l" tok(T_MINUS_EQUAL); YY_BREAK case 94: YY_RULE_SETUP -#line 238 "scanner.l" +#line 239 "scanner.l" tok(T_MUL_EQUAL); YY_BREAK case 95: YY_RULE_SETUP -#line 239 "scanner.l" +#line 240 "scanner.l" tok(T_DIV_EQUAL); YY_BREAK case 96: YY_RULE_SETUP -#line 240 "scanner.l" +#line 241 "scanner.l" tok(T_CONCAT_EQUAL); YY_BREAK case 97: YY_RULE_SETUP -#line 241 "scanner.l" +#line 242 "scanner.l" tok(T_MOD_EQUAL); YY_BREAK case 98: YY_RULE_SETUP -#line 242 "scanner.l" +#line 243 "scanner.l" tok(T_AND_EQUAL); YY_BREAK case 99: YY_RULE_SETUP -#line 243 "scanner.l" +#line 244 "scanner.l" tok(T_OR_EQUAL); YY_BREAK case 100: YY_RULE_SETUP -#line 244 "scanner.l" +#line 245 "scanner.l" tok(T_XOR_EQUAL); YY_BREAK case 101: YY_RULE_SETUP -#line 245 "scanner.l" +#line 246 "scanner.l" tok(T_SL_EQUAL); YY_BREAK case 102: YY_RULE_SETUP -#line 246 "scanner.l" +#line 247 "scanner.l" tok(T_SR_EQUAL); YY_BREAK case 103: YY_RULE_SETUP -#line 247 "scanner.l" +#line 248 "scanner.l" tok(T_BOOLEAN_OR); YY_BREAK case 104: YY_RULE_SETUP -#line 248 "scanner.l" +#line 249 "scanner.l" tok(T_BOOLEAN_AND); YY_BREAK case 105: YY_RULE_SETUP -#line 249 "scanner.l" +#line 250 "scanner.l" tok(T_IS_EQUAL); YY_BREAK case 106: YY_RULE_SETUP -#line 250 "scanner.l" +#line 251 "scanner.l" tok(T_IS_NOT_EQUAL); YY_BREAK case 107: YY_RULE_SETUP -#line 251 "scanner.l" +#line 252 "scanner.l" tok(T_IS_IDENTICAL); YY_BREAK case 108: YY_RULE_SETUP -#line 252 "scanner.l" +#line 253 "scanner.l" tok(T_IS_NOT_IDENTICAL); YY_BREAK case 109: YY_RULE_SETUP -#line 253 "scanner.l" +#line 254 "scanner.l" tok(T_IS_SMALLER_OR_EQUAL); YY_BREAK case 110: YY_RULE_SETUP -#line 254 "scanner.l" +#line 255 "scanner.l" tok(T_IS_GREATER_OR_EQUAL); YY_BREAK case 111: YY_RULE_SETUP -#line 255 "scanner.l" +#line 256 "scanner.l" tok(T_SL); YY_BREAK case 112: YY_RULE_SETUP -#line 256 "scanner.l" +#line 257 "scanner.l" tok(T_SR); YY_BREAK case 113: YY_RULE_SETUP -#line 257 "scanner.l" +#line 258 "scanner.l" tok(T_INC); YY_BREAK case 114: YY_RULE_SETUP -#line 258 "scanner.l" +#line 259 "scanner.l" tok(T_DEC); YY_BREAK case 115: YY_RULE_SETUP -#line 259 "scanner.l" +#line 260 "scanner.l" tok(T_OBJECT_OPERATOR); YY_BREAK case 116: YY_RULE_SETUP -#line 260 "scanner.l" +#line 261 "scanner.l" tok(T_DOUBLE_ARROW); YY_BREAK case 117: YY_RULE_SETUP -#line 261 "scanner.l" +#line 262 "scanner.l" tok(T_PAAMAYIM_NEKUDOTAYIM); YY_BREAK case 118: YY_RULE_SETUP -#line 262 "scanner.l" +#line 263 "scanner.l" tok(T_NS_SEPARATOR); YY_BREAK case 119: YY_RULE_SETUP -#line 263 "scanner.l" +#line 264 "scanner.l" tok(T_ELLIPSIS); YY_BREAK case 120: YY_RULE_SETUP -#line 264 "scanner.l" +#line 265 "scanner.l" tok(T_COALESCE); YY_BREAK case 121: YY_RULE_SETUP -#line 265 "scanner.l" +#line 266 "scanner.l" tok(T_SPACESHIP); YY_BREAK @@ -25463,37 +25677,37 @@ tok(T_SPACESHIP); case 122: YY_RULE_SETUP -#line 270 "scanner.l" +#line 271 "scanner.l" tok(T_INT_CAST); YY_BREAK case 123: YY_RULE_SETUP -#line 271 "scanner.l" +#line 272 "scanner.l" tok(T_DOUBLE_CAST); YY_BREAK case 124: YY_RULE_SETUP -#line 272 "scanner.l" +#line 273 "scanner.l" tok(T_STRING_CAST); YY_BREAK case 125: YY_RULE_SETUP -#line 273 "scanner.l" +#line 274 "scanner.l" tok(T_ARRAY_CAST); YY_BREAK case 126: YY_RULE_SETUP -#line 274 "scanner.l" +#line 275 "scanner.l" tok(T_OBJECT_CAST); YY_BREAK case 127: YY_RULE_SETUP -#line 275 "scanner.l" +#line 276 "scanner.l" tok(T_BOOL_CAST); YY_BREAK case 128: YY_RULE_SETUP -#line 276 "scanner.l" +#line 277 "scanner.l" tok(T_UNSET_CAST); YY_BREAK @@ -25502,28 +25716,28 @@ tok(T_UNSET_CAST); case 129: YY_RULE_SETUP -#line 282 "scanner.l" +#line 283 "scanner.l" tok(T_LNUMBER); YY_BREAK case 130: YY_RULE_SETUP -#line 283 "scanner.l" +#line 284 "scanner.l" tok(T_DNUMBER); YY_BREAK case 131: YY_RULE_SETUP -#line 284 "scanner.l" +#line 285 "scanner.l" tok(T_STRING); YY_BREAK case 132: YY_RULE_SETUP -#line 285 "scanner.l" +#line 286 "scanner.l" tok(T_VARIABLE); YY_BREAK case 133: /* rule 133 can match eol */ YY_RULE_SETUP -#line 286 "scanner.l" +#line 287 "scanner.l" { yy_scan_newlines(yytext, yyg); tok(T_CONSTANT_ENCAPSED_STRING); @@ -25532,7 +25746,7 @@ YY_RULE_SETUP case 134: /* rule 134 can match eol */ YY_RULE_SETUP -#line 290 "scanner.l" +#line 291 "scanner.l" { yy_scan_newlines(yytext, yyg); tok(T_BACKTICKS_EXPR); @@ -25542,7 +25756,7 @@ YY_RULE_SETUP /* (HERE|NOW)DOC's */ case 135: YY_RULE_SETUP -#line 297 "scanner.l" +#line 298 "scanner.l" { push_state(PHP_HEREDOC_START); yyextra->heredoc_yyleng = yyleng; @@ -25552,7 +25766,7 @@ YY_RULE_SETUP case 136: YY_RULE_SETUP -#line 303 "scanner.l" +#line 304 "scanner.l" { // Create a new string for the heredoc label. Since we're using yymore above // yytext will actually start at the "<<<" and not the label. Use of @@ -25568,7 +25782,7 @@ YY_RULE_SETUP YY_BREAK case 137: YY_RULE_SETUP -#line 315 "scanner.l" +#line 316 "scanner.l" { yyextra->heredoc_label = string(yytext + yyextra->heredoc_yyleng); set_state(PHP_HEREDOC_NSTART); @@ -25580,7 +25794,7 @@ YY_RULE_SETUP case 138: /* rule 138 can match eol */ YY_RULE_SETUP -#line 322 "scanner.l" +#line 323 "scanner.l" { yyextra->heredoc_yyleng = yyleng; set_state(PHP_HEREDOC_NEWLINE); @@ -25591,7 +25805,7 @@ YY_RULE_SETUP case 139: /* rule 139 can match eol */ YY_RULE_SETUP -#line 328 "scanner.l" +#line 329 "scanner.l" { if (strncmp( yyextra->heredoc_label.c_str(), @@ -25615,7 +25829,7 @@ YY_RULE_SETUP YY_BREAK case 140: YY_RULE_SETUP -#line 348 "scanner.l" +#line 349 "scanner.l" { yyextra->heredoc_yyleng = yyleng; yymore(); @@ -25624,7 +25838,7 @@ YY_RULE_SETUP case 141: /* rule 141 can match eol */ YY_RULE_SETUP -#line 352 "scanner.l" +#line 353 "scanner.l" { ++yyextra->lineno; yyextra->heredoc_yyleng = yyleng; @@ -25636,7 +25850,7 @@ YY_RULE_SETUP case 142: /* rule 142 can match eol */ YY_RULE_SETUP -#line 360 "scanner.l" +#line 361 "scanner.l" { tok(yytext[0]); // fix unused function warnings @@ -25646,10 +25860,10 @@ YY_RULE_SETUP YY_BREAK case 143: YY_RULE_SETUP -#line 367 "scanner.l" +#line 368 "scanner.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 25653 "scanner.lex.cpp" +#line 25867 "scanner.lex.cpp" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(PHP): case YY_STATE_EOF(PHP_HEREDOC_START): @@ -25674,7 +25888,7 @@ case YY_STATE_EOF(PHP_): /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called - * xhpastlex(). If so, then we have to assure + * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a @@ -25734,7 +25948,7 @@ case YY_STATE_EOF(PHP_): { yyg->yy_did_buffer_switch_on_eof = 0; - if ( xhpastwrap(yyscanner ) ) + if ( yywrap( yyscanner ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up @@ -25787,7 +26001,8 @@ case YY_STATE_EOF(PHP_): "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ -} /* end of xhpastlex */ + } /* end of user's declarations */ +} /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -25799,9 +26014,9 @@ case YY_STATE_EOF(PHP_): static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = yyg->yytext_ptr; - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = yyg->yytext_ptr; + int number_to_move, i; int ret_val; if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) @@ -25830,7 +26045,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -25850,7 +26065,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); @@ -25866,11 +26081,12 @@ static int yy_get_next_buffer (yyscan_t yyscanner) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - xhpastrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) , yyscanner ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -25888,7 +26104,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + yyg->yy_n_chars, num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } @@ -25898,7 +26114,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - xhpastrestart(yyin ,yyscanner); + yyrestart( yyin , yyscanner); } else @@ -25912,12 +26128,15 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) xhpastrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner ); + int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } yyg->yy_n_chars += number_to_move; @@ -25933,8 +26152,8 @@ static int yy_get_next_buffer (yyscan_t yyscanner) static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_current_state = yy_start_state_list[yyg->yy_start]; @@ -25959,12 +26178,12 @@ static int yy_get_next_buffer (yyscan_t yyscanner) */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) { - register int yy_is_jam; + int yy_is_jam; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ - register char *yy_cp = yyg->yy_c_buf_p; + char *yy_cp = yyg->yy_c_buf_p; - register int yy_c = 256; - register yyconst struct yy_trans_info *yy_trans_info; + int yy_c = 256; + const struct yy_trans_info *yy_trans_info; yy_trans_info = &yy_current_state[(unsigned int) yy_c]; yy_current_state += yy_trans_info->yy_nxt; @@ -25979,12 +26198,15 @@ static int yy_get_next_buffer (yyscan_t yyscanner) } } + (void)yyg; return yy_is_jam ? 0 : yy_current_state; } - static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner) +#ifndef YY_NO_UNPUT + + static void yyunput (int c, char * yy_bp , yyscan_t yyscanner) { - register char *yy_cp; + char *yy_cp; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_cp = yyg->yy_c_buf_p; @@ -25995,10 +26217,10 @@ static int yy_get_next_buffer (yyscan_t yyscanner) if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register int number_to_move = yyg->yy_n_chars + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + int number_to_move = yyg->yy_n_chars + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = + char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) @@ -26007,7 +26229,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + yyg->yy_n_chars = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -26020,6 +26242,8 @@ static int yy_get_next_buffer (yyscan_t yyscanner) yyg->yy_c_buf_p = yy_cp; } +#endif + #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) @@ -26045,7 +26269,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr); ++yyg->yy_c_buf_p; switch ( yy_get_next_buffer( yyscanner ) ) @@ -26062,14 +26286,14 @@ static int yy_get_next_buffer (yyscan_t yyscanner) */ /* Reset buffer status. */ - xhpastrestart(yyin ,yyscanner); + yyrestart( yyin , yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( xhpastwrap(yyscanner ) ) - return EOF; + if ( yywrap( yyscanner ) ) + return 0; if ( ! yyg->yy_did_buffer_switch_on_eof ) YY_NEW_FILE; @@ -26100,34 +26324,34 @@ static int yy_get_next_buffer (yyscan_t yyscanner) * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ - void xhpastrestart (FILE * input_file , yyscan_t yyscanner) + void yyrestart (FILE * input_file , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( ! YY_CURRENT_BUFFER ){ - xhpastensure_buffer_stack (yyscanner); + yyensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = - xhpast_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); + yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); } - xhpast_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); - xhpast_load_buffer_state(yyscanner ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner); + yy_load_buffer_state( yyscanner ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ - void xhpast_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* TODO. We should be able to replace this entire function body * with - * xhpastpop_buffer_state(); - * xhpastpush_buffer_state(new_buffer); + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); */ - xhpastensure_buffer_stack (yyscanner); + yyensure_buffer_stack (yyscanner); if ( YY_CURRENT_BUFFER == new_buffer ) return; @@ -26140,17 +26364,17 @@ static int yy_get_next_buffer (yyscan_t yyscanner) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - xhpast_load_buffer_state(yyscanner ); + yy_load_buffer_state( yyscanner ); /* We don't actually know whether we did this switch during - * EOF (xhpastwrap()) processing, but the only time this flag - * is looked at is after xhpastwrap() is called, so it's safe + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } -static void xhpast_load_buffer_state (yyscan_t yyscanner) +static void yy_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; @@ -26165,35 +26389,35 @@ static void xhpast_load_buffer_state (yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the allocated buffer state. */ - YY_BUFFER_STATE xhpast_create_buffer (FILE * file, int size , yyscan_t yyscanner) + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) xhpastalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in xhpast_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) xhpastalloc(b->yy_buf_size + 2 ,yyscanner ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner ); if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in xhpast_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - xhpast_init_buffer(b,file ,yyscanner); + yy_init_buffer( b, file , yyscanner); return b; } /** Destroy the buffer. - * @param b a buffer created with xhpast_create_buffer() + * @param b a buffer created with yy_create_buffer() * @param yyscanner The scanner object. */ - void xhpast_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) + void yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; @@ -26204,32 +26428,28 @@ static void xhpast_load_buffer_state (yyscan_t yyscanner) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - xhpastfree((void *) b->yy_ch_buf ,yyscanner ); + yyfree( (void *) b->yy_ch_buf , yyscanner ); - xhpastfree((void *) b ,yyscanner ); + yyfree( (void *) b , yyscanner ); } -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, - * such as during a xhpastrestart() or at EOF. + * such as during a yyrestart() or at EOF. */ - static void xhpast_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - xhpast_flush_buffer(b ,yyscanner); + yy_flush_buffer( b , yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; - /* If b is the current buffer, then xhpast_init_buffer was _probably_ - * called from xhpastrestart() or through yy_get_next_buffer. + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ @@ -26246,7 +26466,7 @@ extern int isatty (int ); * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ - void xhpast_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) + void yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( ! b ) @@ -26267,7 +26487,7 @@ extern int isatty (int ); b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - xhpast_load_buffer_state(yyscanner ); + yy_load_buffer_state( yyscanner ); } /** Pushes the new state onto the stack. The new state becomes @@ -26276,15 +26496,15 @@ extern int isatty (int ); * @param new_buffer The new state. * @param yyscanner The scanner object. */ -void xhpastpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (new_buffer == NULL) return; - xhpastensure_buffer_stack(yyscanner); + yyensure_buffer_stack(yyscanner); - /* This block is copied from xhpast_switch_to_buffer. */ + /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ @@ -26298,8 +26518,8 @@ void xhpastpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; - /* copied from xhpast_switch_to_buffer. */ - xhpast_load_buffer_state(yyscanner ); + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( yyscanner ); yyg->yy_did_buffer_switch_on_eof = 1; } @@ -26307,19 +26527,19 @@ void xhpastpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) * The next element becomes the new top. * @param yyscanner The scanner object. */ -void xhpastpop_buffer_state (yyscan_t yyscanner) +void yypop_buffer_state (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!YY_CURRENT_BUFFER) return; - xhpast_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); + yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { - xhpast_load_buffer_state(yyscanner ); + yy_load_buffer_state( yyscanner ); yyg->yy_did_buffer_switch_on_eof = 1; } } @@ -26327,9 +26547,9 @@ void xhpastpop_buffer_state (yyscan_t yyscanner) /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void xhpastensure_buffer_stack (yyscan_t yyscanner) +static void yyensure_buffer_stack (yyscan_t yyscanner) { - int num_to_alloc; + yy_size_t num_to_alloc; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!yyg->yy_buffer_stack) { @@ -26338,15 +26558,15 @@ static void xhpastensure_buffer_stack (yyscan_t yyscanner) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - yyg->yy_buffer_stack = (struct yy_buffer_state**)xhpastalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) , yyscanner); if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in xhpastensure_buffer_stack()" ); - + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; @@ -26355,15 +26575,15 @@ static void xhpastensure_buffer_stack (yyscan_t yyscanner) if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; - yyg->yy_buffer_stack = (struct yy_buffer_state**)xhpastrealloc + yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof(struct yy_buffer_state*) , yyscanner); if ( ! yyg->yy_buffer_stack ) - YY_FATAL_ERROR( "out of dynamic memory in xhpastensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -26375,9 +26595,9 @@ static void xhpastensure_buffer_stack (yyscan_t yyscanner) * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE xhpast_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) { YY_BUFFER_STATE b; @@ -26385,49 +26605,49 @@ YY_BUFFER_STATE xhpast_scan_buffer (char * base, yy_size_t size , yyscan_t yys base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; - b = (YY_BUFFER_STATE) xhpastalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in xhpast_scan_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - xhpast_switch_to_buffer(b ,yyscanner ); + yy_switch_to_buffer( b , yyscanner ); return b; } -/** Setup the input buffer state to scan a string. The next call to xhpastlex() will +/** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use - * xhpast_scan_bytes() instead. + * yy_scan_bytes() instead. */ -YY_BUFFER_STATE xhpast_scan_string (yyconst char * yystr , yyscan_t yyscanner) +YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner) { - return xhpast_scan_bytes(yystr,strlen(yystr) ,yyscanner); + return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner); } -/** Setup the input buffer state to scan the given bytes. The next call to xhpastlex() will +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE xhpast_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len , yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; @@ -26435,19 +26655,19 @@ YY_BUFFER_STATE xhpast_scan_bytes (yyconst char * yybytes, int _yybytes_len , int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) xhpastalloc(n ,yyscanner ); + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n , yyscanner ); if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in xhpast_scan_bytes()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = xhpast_scan_buffer(buf,n ,yyscanner); + b = yy_scan_buffer( buf, n , yyscanner); if ( ! b ) - YY_FATAL_ERROR( "bad buffer in xhpast_scan_bytes()" ); + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. @@ -26457,7 +26677,7 @@ YY_BUFFER_STATE xhpast_scan_bytes (yyconst char * yybytes, int _yybytes_len , return b; } - static void yy_push_state (int new_state , yyscan_t yyscanner) + static void yy_push_state (int _new_state , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth ) @@ -26465,13 +26685,14 @@ YY_BUFFER_STATE xhpast_scan_bytes (yyconst char * yybytes, int _yybytes_len , yy_size_t new_size; yyg->yy_start_stack_depth += YY_START_STACK_INCR; - new_size = yyg->yy_start_stack_depth * sizeof( int ); + new_size = (yy_size_t) yyg->yy_start_stack_depth * sizeof( int ); if ( ! yyg->yy_start_stack ) - yyg->yy_start_stack = (int *) xhpastalloc(new_size ,yyscanner ); + yyg->yy_start_stack = (int *) yyalloc( new_size , yyscanner ); else - yyg->yy_start_stack = (int *) xhpastrealloc((void *) yyg->yy_start_stack,new_size ,yyscanner ); + yyg->yy_start_stack = (int *) yyrealloc( + (void *) yyg->yy_start_stack, new_size , yyscanner ); if ( ! yyg->yy_start_stack ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -26479,7 +26700,7 @@ YY_BUFFER_STATE xhpast_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } static void yy_pop_state (yyscan_t yyscanner) @@ -26501,9 +26722,11 @@ YY_BUFFER_STATE xhpast_scan_bytes (yyconst char * yybytes, int _yybytes_len , #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) +static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner) { - (void) fprintf( stderr, "%s\n", msg ); + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -26529,7 +26752,7 @@ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ -YY_EXTRA_TYPE xhpastget_extra (yyscan_t yyscanner) +YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyextra; @@ -26538,10 +26761,10 @@ YY_EXTRA_TYPE xhpastget_extra (yyscan_t yyscanner) /** Get the current line number. * @param yyscanner The scanner object. */ -int xhpastget_lineno (yyscan_t yyscanner) +int yyget_lineno (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - + if (! YY_CURRENT_BUFFER) return 0; @@ -26551,10 +26774,10 @@ int xhpastget_lineno (yyscan_t yyscanner) /** Get the current column number. * @param yyscanner The scanner object. */ -int xhpastget_column (yyscan_t yyscanner) +int yyget_column (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - + if (! YY_CURRENT_BUFFER) return 0; @@ -26564,7 +26787,7 @@ int xhpastget_column (yyscan_t yyscanner) /** Get the input stream. * @param yyscanner The scanner object. */ -FILE *xhpastget_in (yyscan_t yyscanner) +FILE *yyget_in (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyin; @@ -26573,7 +26796,7 @@ FILE *xhpastget_in (yyscan_t yyscanner) /** Get the output stream. * @param yyscanner The scanner object. */ -FILE *xhpastget_out (yyscan_t yyscanner) +FILE *yyget_out (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyout; @@ -26582,7 +26805,7 @@ FILE *xhpastget_out (yyscan_t yyscanner) /** Get the length of the current token. * @param yyscanner The scanner object. */ -int xhpastget_leng (yyscan_t yyscanner) +int yyget_leng (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyleng; @@ -26592,7 +26815,7 @@ int xhpastget_leng (yyscan_t yyscanner) * @param yyscanner The scanner object. */ -char *xhpastget_text (yyscan_t yyscanner) +char *yyget_text (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yytext; @@ -26602,81 +26825,81 @@ char *xhpastget_text (yyscan_t yyscanner) * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ -void xhpastset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +void yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyextra = user_defined ; } /** Set the current line number. - * @param line_number + * @param _line_number line number * @param yyscanner The scanner object. */ -void xhpastset_lineno (int line_number , yyscan_t yyscanner) +void yyset_lineno (int _line_number , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* lineno is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "xhpastset_lineno called with no buffer" , yyscanner); + YY_FATAL_ERROR( "yyset_lineno called with no buffer" ); - yylineno = line_number; + yylineno = _line_number; } /** Set the current column. - * @param line_number + * @param _column_no column number * @param yyscanner The scanner object. */ -void xhpastset_column (int column_no , yyscan_t yyscanner) +void yyset_column (int _column_no , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* column is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "xhpastset_column called with no buffer" , yyscanner); + YY_FATAL_ERROR( "yyset_column called with no buffer" ); - yycolumn = column_no; + yycolumn = _column_no; } /** Set the input stream. This does not discard the current * input buffer. - * @param in_str A readable stream. + * @param _in_str A readable stream. * @param yyscanner The scanner object. - * @see xhpast_switch_to_buffer + * @see yy_switch_to_buffer */ -void xhpastset_in (FILE * in_str , yyscan_t yyscanner) +void yyset_in (FILE * _in_str , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyin = in_str ; + yyin = _in_str ; } -void xhpastset_out (FILE * out_str , yyscan_t yyscanner) +void yyset_out (FILE * _out_str , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyout = out_str ; + yyout = _out_str ; } -int xhpastget_debug (yyscan_t yyscanner) +int yyget_debug (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yy_flex_debug; } -void xhpastset_debug (int bdebug , yyscan_t yyscanner) +void yyset_debug (int _bdebug , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yy_flex_debug = bdebug ; + yy_flex_debug = _bdebug ; } /* Accessor methods for yylval and yylloc */ -YYSTYPE * xhpastget_lval (yyscan_t yyscanner) +YYSTYPE * yyget_lval (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yylval; } -void xhpastset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner) +void yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yylval = yylval_param; @@ -26684,20 +26907,18 @@ void xhpastset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner) /* User-visible API */ -/* xhpastlex_init is special because it creates the scanner itself, so it is +/* yylex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ - -int xhpastlex_init(yyscan_t* ptr_yy_globals) - +int yylex_init(yyscan_t* ptr_yy_globals) { if (ptr_yy_globals == NULL){ errno = EINVAL; return 1; } - *ptr_yy_globals = (yyscan_t) xhpastalloc ( sizeof( struct yyguts_t ), NULL ); + *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL ); if (*ptr_yy_globals == NULL){ errno = ENOMEM; @@ -26710,39 +26931,37 @@ int xhpastlex_init(yyscan_t* ptr_yy_globals) return yy_init_globals ( *ptr_yy_globals ); } -/* xhpastlex_init_extra has the same functionality as xhpastlex_init, but follows the +/* yylex_init_extra has the same functionality as yylex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). - * The user defined value in the first argument will be available to xhpastalloc in + * The user defined value in the first argument will be available to yyalloc in * the yyextra field. */ - -int xhpastlex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals ) - +int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals ) { struct yyguts_t dummy_yyguts; - xhpastset_extra (yy_user_defined, &dummy_yyguts); + yyset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL){ errno = EINVAL; return 1; } - - *ptr_yy_globals = (yyscan_t) xhpastalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); - + + *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); + if (*ptr_yy_globals == NULL){ errno = ENOMEM; return 1; } - + /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); - - xhpastset_extra (yy_user_defined, *ptr_yy_globals); - + + yyset_extra (yy_user_defined, *ptr_yy_globals); + return yy_init_globals ( *ptr_yy_globals ); } @@ -26750,13 +26969,13 @@ static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* Initialization is the same as for the non-reentrant scanner. - * This function is called from xhpastlex_destroy(), so don't allocate here. + * This function is called from yylex_destroy(), so don't allocate here. */ - yyg->yy_buffer_stack = 0; + yyg->yy_buffer_stack = NULL; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; - yyg->yy_c_buf_p = (char *) 0; + yyg->yy_c_buf_p = NULL; yyg->yy_init = 0; yyg->yy_start = 0; @@ -26769,42 +26988,42 @@ static int yy_init_globals (yyscan_t yyscanner) yyin = stdin; yyout = stdout; #else - yyin = (FILE *) 0; - yyout = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by - * xhpastlex_init() + * yylex_init() */ return 0; } -/* xhpastlex_destroy is for both reentrant and non-reentrant scanners. */ -int xhpastlex_destroy (yyscan_t yyscanner) +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - xhpast_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); + yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner ); YY_CURRENT_BUFFER_LVALUE = NULL; - xhpastpop_buffer_state(yyscanner); + yypop_buffer_state(yyscanner); } /* Destroy the stack itself. */ - xhpastfree(yyg->yy_buffer_stack ,yyscanner); + yyfree(yyg->yy_buffer_stack , yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ - xhpastfree(yyg->yy_start_stack ,yyscanner ); + yyfree( yyg->yy_start_stack , yyscanner ); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time - * xhpastlex() is called, initialization will occur. */ + * yylex() is called, initialization will occur. */ yy_init_globals( yyscanner); /* Destroy the main struct (reentrant only). */ - xhpastfree ( yyscanner , yyscanner ); + yyfree ( yyscanner , yyscanner ); yyscanner = NULL; return 0; } @@ -26814,18 +27033,21 @@ int xhpastlex_destroy (yyscan_t yyscanner) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) +static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner) { - register int i; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) +static int yy_flex_strlen (const char * s , yyscan_t yyscanner) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -26833,13 +27055,18 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) } #endif -void *xhpastalloc (yy_size_t size , yyscan_t yyscanner) +void *yyalloc (yy_size_t size , yyscan_t yyscanner) { - return (void *) malloc( size ); + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + return malloc(size); } -void *xhpastrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) +void *yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) { + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -26847,18 +27074,19 @@ void *xhpastrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void xhpastfree (void * ptr , yyscan_t yyscanner) +void yyfree (void * ptr , yyscan_t yyscanner) { - free( (char *) ptr ); /* see xhpastrealloc() for (char *) cast */ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" -#line 367 "scanner.l" - +#line 368 "scanner.l" #ifdef DEBUG diff --git a/support/xhpast/scanner.lex.hpp b/support/xhpast/scanner.lex.hpp index 77cf202f..d2150518 100644 --- a/support/xhpast/scanner.lex.hpp +++ b/support/xhpast/scanner.lex.hpp @@ -12,12 +12,234 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif +#ifdef yy_create_buffer +#define xhpast_create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer xhpast_create_buffer +#endif + +#ifdef yy_delete_buffer +#define xhpast_delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer xhpast_delete_buffer +#endif + +#ifdef yy_scan_buffer +#define xhpast_scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer xhpast_scan_buffer +#endif + +#ifdef yy_scan_string +#define xhpast_scan_string_ALREADY_DEFINED +#else +#define yy_scan_string xhpast_scan_string +#endif + +#ifdef yy_scan_bytes +#define xhpast_scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes xhpast_scan_bytes +#endif + +#ifdef yy_init_buffer +#define xhpast_init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer xhpast_init_buffer +#endif + +#ifdef yy_flush_buffer +#define xhpast_flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer xhpast_flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define xhpast_load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state xhpast_load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define xhpast_switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer xhpast_switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define xhpastpush_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state xhpastpush_buffer_state +#endif + +#ifdef yypop_buffer_state +#define xhpastpop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state xhpastpop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define xhpastensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack xhpastensure_buffer_stack +#endif + +#ifdef yylex +#define xhpastlex_ALREADY_DEFINED +#else +#define yylex xhpastlex +#endif + +#ifdef yyrestart +#define xhpastrestart_ALREADY_DEFINED +#else +#define yyrestart xhpastrestart +#endif + +#ifdef yylex_init +#define xhpastlex_init_ALREADY_DEFINED +#else +#define yylex_init xhpastlex_init +#endif + +#ifdef yylex_init_extra +#define xhpastlex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra xhpastlex_init_extra +#endif + +#ifdef yylex_destroy +#define xhpastlex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy xhpastlex_destroy +#endif + +#ifdef yyget_debug +#define xhpastget_debug_ALREADY_DEFINED +#else +#define yyget_debug xhpastget_debug +#endif + +#ifdef yyset_debug +#define xhpastset_debug_ALREADY_DEFINED +#else +#define yyset_debug xhpastset_debug +#endif + +#ifdef yyget_extra +#define xhpastget_extra_ALREADY_DEFINED +#else +#define yyget_extra xhpastget_extra +#endif + +#ifdef yyset_extra +#define xhpastset_extra_ALREADY_DEFINED +#else +#define yyset_extra xhpastset_extra +#endif + +#ifdef yyget_in +#define xhpastget_in_ALREADY_DEFINED +#else +#define yyget_in xhpastget_in +#endif + +#ifdef yyset_in +#define xhpastset_in_ALREADY_DEFINED +#else +#define yyset_in xhpastset_in +#endif + +#ifdef yyget_out +#define xhpastget_out_ALREADY_DEFINED +#else +#define yyget_out xhpastget_out +#endif + +#ifdef yyset_out +#define xhpastset_out_ALREADY_DEFINED +#else +#define yyset_out xhpastset_out +#endif + +#ifdef yyget_leng +#define xhpastget_leng_ALREADY_DEFINED +#else +#define yyget_leng xhpastget_leng +#endif + +#ifdef yyget_text +#define xhpastget_text_ALREADY_DEFINED +#else +#define yyget_text xhpastget_text +#endif + +#ifdef yyget_lineno +#define xhpastget_lineno_ALREADY_DEFINED +#else +#define yyget_lineno xhpastget_lineno +#endif + +#ifdef yyset_lineno +#define xhpastset_lineno_ALREADY_DEFINED +#else +#define yyset_lineno xhpastset_lineno +#endif + +#ifdef yyget_column +#define xhpastget_column_ALREADY_DEFINED +#else +#define yyget_column xhpastget_column +#endif + +#ifdef yyset_column +#define xhpastset_column_ALREADY_DEFINED +#else +#define yyset_column xhpastset_column +#endif + +#ifdef yywrap +#define xhpastwrap_ALREADY_DEFINED +#else +#define yywrap xhpastwrap +#endif + +#ifdef yyget_lval +#define xhpastget_lval_ALREADY_DEFINED +#else +#define yyget_lval xhpastget_lval +#endif + +#ifdef yyset_lval +#define xhpastset_lval_ALREADY_DEFINED +#else +#define yyset_lval xhpastset_lval +#endif + +#ifdef yyalloc +#define xhpastalloc_ALREADY_DEFINED +#else +#define yyalloc xhpastalloc +#endif + +#ifdef yyrealloc +#define xhpastrealloc_ALREADY_DEFINED +#else +#define yyrealloc xhpastrealloc +#endif + +#ifdef yyfree +#define xhpastfree_ALREADY_DEFINED +#else +#define yyfree xhpastfree +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -88,29 +310,23 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ -#ifdef __cplusplus +/* begin standard C++ headers. */ -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* An opaque pointer. */ @@ -165,7 +381,7 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -193,7 +409,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -204,25 +420,25 @@ struct yy_buffer_state }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ -void xhpastrestart (FILE *input_file ,yyscan_t yyscanner ); -void xhpast_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -YY_BUFFER_STATE xhpast_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); -void xhpast_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void xhpast_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); -void xhpastpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); -void xhpastpop_buffer_state (yyscan_t yyscanner ); +void yyrestart ( FILE *input_file , yyscan_t yyscanner ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner ); +void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); +void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); +void yypop_buffer_state ( yyscan_t yyscanner ); -YY_BUFFER_STATE xhpast_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); -YY_BUFFER_STATE xhpast_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE xhpast_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner ); -void *xhpastalloc (yy_size_t ,yyscan_t yyscanner ); -void *xhpastrealloc (void *,yy_size_t ,yyscan_t yyscanner ); -void xhpastfree (void * ,yyscan_t yyscanner ); +void *yyalloc ( yy_size_t , yyscan_t yyscanner ); +void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner ); +void yyfree ( void * , yyscan_t yyscanner ); /* Begin user sect3 */ -#define xhpastwrap(n) 1 +#define xhpastwrap(yyscanner) (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP #define yytext_ptr yytext_r @@ -254,42 +470,46 @@ void xhpastfree (void * ,yyscan_t yyscanner ); #define YY_EXTRA_TYPE void * #endif -int xhpastlex_init (yyscan_t* scanner); +int yylex_init (yyscan_t* scanner); -int xhpastlex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); +int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int xhpastlex_destroy (yyscan_t yyscanner ); +int yylex_destroy ( yyscan_t yyscanner ); -int xhpastget_debug (yyscan_t yyscanner ); +int yyget_debug ( yyscan_t yyscanner ); -void xhpastset_debug (int debug_flag ,yyscan_t yyscanner ); +void yyset_debug ( int debug_flag , yyscan_t yyscanner ); -YY_EXTRA_TYPE xhpastget_extra (yyscan_t yyscanner ); +YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner ); -void xhpastset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); +void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner ); -FILE *xhpastget_in (yyscan_t yyscanner ); +FILE *yyget_in ( yyscan_t yyscanner ); -void xhpastset_in (FILE * in_str ,yyscan_t yyscanner ); +void yyset_in ( FILE * _in_str , yyscan_t yyscanner ); -FILE *xhpastget_out (yyscan_t yyscanner ); +FILE *yyget_out ( yyscan_t yyscanner ); -void xhpastset_out (FILE * out_str ,yyscan_t yyscanner ); +void yyset_out ( FILE * _out_str , yyscan_t yyscanner ); -int xhpastget_leng (yyscan_t yyscanner ); + int yyget_leng ( yyscan_t yyscanner ); -char *xhpastget_text (yyscan_t yyscanner ); +char *yyget_text ( yyscan_t yyscanner ); -int xhpastget_lineno (yyscan_t yyscanner ); +int yyget_lineno ( yyscan_t yyscanner ); -void xhpastset_lineno (int line_number ,yyscan_t yyscanner ); +void yyset_lineno ( int _line_number , yyscan_t yyscanner ); -YYSTYPE * xhpastget_lval (yyscan_t yyscanner ); +int yyget_column ( yyscan_t yyscanner ); -void xhpastset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); +void yyset_column ( int _column_no , yyscan_t yyscanner ); + +YYSTYPE * yyget_lval ( yyscan_t yyscanner ); + +void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -297,18 +517,18 @@ void xhpastset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int xhpastwrap (yyscan_t yyscanner ); +extern "C" int yywrap ( yyscan_t yyscanner ); #else -extern int xhpastwrap (yyscan_t yyscanner ); +extern int yywrap ( yyscan_t yyscanner ); #endif #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); +static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); +static int yy_flex_strlen ( const char * , yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT @@ -336,10 +556,10 @@ static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); #ifndef YY_DECL #define YY_DECL_IS_OURS 1 -extern int xhpastlex \ - (YYSTYPE * yylval_param ,yyscan_t yyscanner); +extern int yylex \ + (YYSTYPE * yylval_param , yyscan_t yyscanner); -#define YY_DECL int xhpastlex \ +#define YY_DECL int yylex \ (YYSTYPE * yylval_param , yyscan_t yyscanner) #endif /* !YY_DECL */ @@ -357,10 +577,155 @@ extern int xhpastlex \ #undef YY_DECL #endif -#line 367 "scanner.l" +#ifndef xhpast_create_buffer_ALREADY_DEFINED +#undef yy_create_buffer +#endif +#ifndef xhpast_delete_buffer_ALREADY_DEFINED +#undef yy_delete_buffer +#endif +#ifndef xhpast_scan_buffer_ALREADY_DEFINED +#undef yy_scan_buffer +#endif +#ifndef xhpast_scan_string_ALREADY_DEFINED +#undef yy_scan_string +#endif +#ifndef xhpast_scan_bytes_ALREADY_DEFINED +#undef yy_scan_bytes +#endif +#ifndef xhpast_init_buffer_ALREADY_DEFINED +#undef yy_init_buffer +#endif +#ifndef xhpast_flush_buffer_ALREADY_DEFINED +#undef yy_flush_buffer +#endif +#ifndef xhpast_load_buffer_state_ALREADY_DEFINED +#undef yy_load_buffer_state +#endif +#ifndef xhpast_switch_to_buffer_ALREADY_DEFINED +#undef yy_switch_to_buffer +#endif +#ifndef xhpastpush_buffer_state_ALREADY_DEFINED +#undef yypush_buffer_state +#endif +#ifndef xhpastpop_buffer_state_ALREADY_DEFINED +#undef yypop_buffer_state +#endif +#ifndef xhpastensure_buffer_stack_ALREADY_DEFINED +#undef yyensure_buffer_stack +#endif +#ifndef xhpastlex_ALREADY_DEFINED +#undef yylex +#endif +#ifndef xhpastrestart_ALREADY_DEFINED +#undef yyrestart +#endif +#ifndef xhpastlex_init_ALREADY_DEFINED +#undef yylex_init +#endif +#ifndef xhpastlex_init_extra_ALREADY_DEFINED +#undef yylex_init_extra +#endif +#ifndef xhpastlex_destroy_ALREADY_DEFINED +#undef yylex_destroy +#endif +#ifndef xhpastget_debug_ALREADY_DEFINED +#undef yyget_debug +#endif +#ifndef xhpastset_debug_ALREADY_DEFINED +#undef yyset_debug +#endif +#ifndef xhpastget_extra_ALREADY_DEFINED +#undef yyget_extra +#endif +#ifndef xhpastset_extra_ALREADY_DEFINED +#undef yyset_extra +#endif +#ifndef xhpastget_in_ALREADY_DEFINED +#undef yyget_in +#endif +#ifndef xhpastset_in_ALREADY_DEFINED +#undef yyset_in +#endif +#ifndef xhpastget_out_ALREADY_DEFINED +#undef yyget_out +#endif +#ifndef xhpastset_out_ALREADY_DEFINED +#undef yyset_out +#endif +#ifndef xhpastget_leng_ALREADY_DEFINED +#undef yyget_leng +#endif +#ifndef xhpastget_text_ALREADY_DEFINED +#undef yyget_text +#endif +#ifndef xhpastget_lineno_ALREADY_DEFINED +#undef yyget_lineno +#endif +#ifndef xhpastset_lineno_ALREADY_DEFINED +#undef yyset_lineno +#endif +#ifndef xhpastget_column_ALREADY_DEFINED +#undef yyget_column +#endif +#ifndef xhpastset_column_ALREADY_DEFINED +#undef yyset_column +#endif +#ifndef xhpastwrap_ALREADY_DEFINED +#undef yywrap +#endif +#ifndef xhpastget_lval_ALREADY_DEFINED +#undef yyget_lval +#endif +#ifndef xhpastset_lval_ALREADY_DEFINED +#undef yyset_lval +#endif +#ifndef xhpastget_lloc_ALREADY_DEFINED +#undef yyget_lloc +#endif +#ifndef xhpastset_lloc_ALREADY_DEFINED +#undef yyset_lloc +#endif +#ifndef xhpastalloc_ALREADY_DEFINED +#undef yyalloc +#endif +#ifndef xhpastrealloc_ALREADY_DEFINED +#undef yyrealloc +#endif +#ifndef xhpastfree_ALREADY_DEFINED +#undef yyfree +#endif +#ifndef xhpasttext_ALREADY_DEFINED +#undef yytext +#endif +#ifndef xhpastleng_ALREADY_DEFINED +#undef yyleng +#endif +#ifndef xhpastin_ALREADY_DEFINED +#undef yyin +#endif +#ifndef xhpastout_ALREADY_DEFINED +#undef yyout +#endif +#ifndef xhpast_flex_debug_ALREADY_DEFINED +#undef yy_flex_debug +#endif +#ifndef xhpastlineno_ALREADY_DEFINED +#undef yylineno +#endif +#ifndef xhpasttables_fload_ALREADY_DEFINED +#undef yytables_fload +#endif +#ifndef xhpasttables_destroy_ALREADY_DEFINED +#undef yytables_destroy +#endif +#ifndef xhpastTABLES_NAME_ALREADY_DEFINED +#undef yyTABLES_NAME +#endif + +#line 368 "scanner.l" -#line 364 "scanner.lex.hpp" +#line 729 "scanner.lex.hpp" #undef xhpastIN_HEADER #endif /* xhpastHEADER_H */ /* @generated */ diff --git a/support/xhpast/xhpast.cpp b/support/xhpast/xhpast.cpp index 3462ab78..2770cf16 100644 --- a/support/xhpast/xhpast.cpp +++ b/support/xhpast/xhpast.cpp @@ -12,7 +12,7 @@ void print_node(xhpast::Node *node); int main(int argc, char* argv[]) { if (argc != 1) { // Coupling: modify also src/parser/xhpast/bin/PhutilXHPASTBinary.php - cout << "7.1.2\n"; + cout << "7.1.3\n"; return 0; }