/* file contains automatically generated code, DO NOT MODIFY *
 *
 * The code in this file implements a function that determines whether
 * or not a given identifier is really an SQL keyword.  The same thing
 * might be implemented more directly using a hand-written hash table.
 * But by using this automatically generated code, the size of the code
 * is substantially reduced.  This is important for embedded applications
 * on platforms with limited memory.
 *
 * This code has been copied from SQLite's mkkeywordhash.c file and modified.
 * to read the SQL keywords from a file instead of static ones
 */

/* Parsed keywords
 *
 * From line: abort
 * KEYWORD: 'abort'
 *
 * From line: absolute
 * KEYWORD: 'absolute'
 *
 * From line: access
 * KEYWORD: 'access'
 *
 * From line: action
 * KEYWORD: 'action'
 *
 * From line: add
 * KEYWORD: 'add'
 *
 * From line: admin
 * KEYWORD: 'admin'
 *
 * From line: after
 * KEYWORD: 'after'
 *
 * From line: aggregate
 * KEYWORD: 'aggregate'
 *
 * From line: all
 * KEYWORD: 'all'
 *
 * From line: also
 * KEYWORD: 'also'
 *
 * From line: alter
 * KEYWORD: 'alter'
 *
 * From line: analyse
 * KEYWORD: 'analyse'
 *
 * From line: analyze
 * KEYWORD: 'analyze'
 *
 * From line: and
 * KEYWORD: 'and'
 *
 * From line: any
 * KEYWORD: 'any'
 *
 * From line: array
 * KEYWORD: 'array'
 *
 * From line: as
 * KEYWORD: 'as'
 *
 * From line: asc
 * KEYWORD: 'asc'
 *
 * From line: assertion
 * KEYWORD: 'assertion'
 *
 * From line: assignment
 * KEYWORD: 'assignment'
 *
 * From line: asymmetric
 * KEYWORD: 'asymmetric'
 *
 * From line: at
 * KEYWORD: 'at'
 *
 * From line: authorization
 * KEYWORD: 'authorization'
 *
 * From line: backward
 * KEYWORD: 'backward'
 *
 * From line: before
 * KEYWORD: 'before'
 *
 * From line: begin
 * KEYWORD: 'begin'
 *
 * From line: between
 * KEYWORD: 'between'
 *
 * From line: bigint
 * KEYWORD: 'bigint'
 *
 * From line: binary
 * KEYWORD: 'binary'
 *
 * From line: bit
 * KEYWORD: 'bit'
 *
 * From line: boolean
 * KEYWORD: 'boolean'
 *
 * From line: both
 * KEYWORD: 'both'
 *
 * From line: by
 * KEYWORD: 'by'
 *
 * From line: cache
 * KEYWORD: 'cache'
 *
 * From line: called
 * KEYWORD: 'called'
 *
 * From line: cascade
 * KEYWORD: 'cascade'
 *
 * From line: cascaded
 * KEYWORD: 'cascaded'
 *
 * From line: case
 * KEYWORD: 'case'
 *
 * From line: cast
 * KEYWORD: 'cast'
 *
 * From line: chain
 * KEYWORD: 'chain'
 *
 * From line: char
 * KEYWORD: 'char'
 *
 * From line: character
 * KEYWORD: 'character'
 *
 * From line: characteristics
 * KEYWORD: 'characteristics'
 *
 * From line: check
 * KEYWORD: 'check'
 *
 * From line: checkpoint
 * KEYWORD: 'checkpoint'
 *
 * From line: class
 * KEYWORD: 'class'
 *
 * From line: close
 * KEYWORD: 'close'
 *
 * From line: cluster
 * KEYWORD: 'cluster'
 *
 * From line: coalesce
 * KEYWORD: 'coalesce'
 *
 * From line: collate
 * KEYWORD: 'collate'
 *
 * From line: column
 * KEYWORD: 'column'
 *
 * From line: comment
 * KEYWORD: 'comment'
 *
 * From line: commit
 * KEYWORD: 'commit'
 *
 * From line: committed
 * KEYWORD: 'committed'
 *
 * From line: concurrently
 * KEYWORD: 'concurrently'
 *
 * From line: connection
 * KEYWORD: 'connection'
 *
 * From line: constraint
 * KEYWORD: 'constraint'
 *
 * From line: constraints
 * KEYWORD: 'constraints'
 *
 * From line: conversion
 * KEYWORD: 'conversion'
 *
 * From line: convert
 * KEYWORD: 'convert'
 *
 * From line: copy
 * KEYWORD: 'copy'
 *
 * From line: create
 * KEYWORD: 'create'
 *
 * From line: createdb
 * KEYWORD: 'createdb'
 *
 * From line: createrole
 * KEYWORD: 'createrole'
 *
 * From line: createuser
 * KEYWORD: 'createuser'
 *
 * From line: cross
 * KEYWORD: 'cross'
 *
 * From line: csv
 * KEYWORD: 'csv'
 *
 * From line: current_date
 * KEYWORD: 'current_date'
 *
 * From line: current_role
 * KEYWORD: 'current_role'
 *
 * From line: current_time
 * KEYWORD: 'current_time'
 *
 * From line: current_timestamp
 * KEYWORD: 'current_timestamp'
 *
 * From line: current_user
 * KEYWORD: 'current_user'
 *
 * From line: cursor
 * KEYWORD: 'cursor'
 *
 * From line: cycle
 * KEYWORD: 'cycle'
 *
 * From line: database
 * KEYWORD: 'database'
 *
 * From line: day
 * KEYWORD: 'day'
 *
 * From line: deallocate
 * KEYWORD: 'deallocate'
 *
 * From line: dec
 * KEYWORD: 'dec'
 *
 * From line: decimal
 * KEYWORD: 'decimal'
 *
 * From line: declare
 * KEYWORD: 'declare'
 *
 * From line: default
 * KEYWORD: 'default'
 *
 * From line: defaults
 * KEYWORD: 'defaults'
 *
 * From line: deferrable
 * KEYWORD: 'deferrable'
 *
 * From line: deferred
 * KEYWORD: 'deferred'
 *
 * From line: definer
 * KEYWORD: 'definer'
 *
 * From line: delete
 * KEYWORD: 'delete'
 *
 * From line: delimiter
 * KEYWORD: 'delimiter'
 *
 * From line: delimiters
 * KEYWORD: 'delimiters'
 *
 * From line: desc
 * KEYWORD: 'desc'
 *
 * From line: disable
 * KEYWORD: 'disable'
 *
 * From line: distinct
 * KEYWORD: 'distinct'
 *
 * From line: do
 * KEYWORD: 'do'
 *
 * From line: domain
 * KEYWORD: 'domain'
 *
 * From line: double
 * KEYWORD: 'double'
 *
 * From line: drop
 * KEYWORD: 'drop'
 *
 * From line: each
 * KEYWORD: 'each'
 *
 * From line: else
 * KEYWORD: 'else'
 *
 * From line: enable
 * KEYWORD: 'enable'
 *
 * From line: encoding
 * KEYWORD: 'encoding'
 *
 * From line: encrypted
 * KEYWORD: 'encrypted'
 *
 * From line: end
 * KEYWORD: 'end'
 *
 * From line: escape
 * KEYWORD: 'escape'
 *
 * From line: except
 * KEYWORD: 'except'
 *
 * From line: excluding
 * KEYWORD: 'excluding'
 *
 * From line: exclusive
 * KEYWORD: 'exclusive'
 *
 * From line: execute
 * KEYWORD: 'execute'
 *
 * From line: exists
 * KEYWORD: 'exists'
 *
 * From line: explain
 * KEYWORD: 'explain'
 *
 * From line: external
 * KEYWORD: 'external'
 *
 * From line: extract
 * KEYWORD: 'extract'
 *
 * From line: false
 * KEYWORD: 'false'
 *
 * From line: fetch
 * KEYWORD: 'fetch'
 *
 * From line: first
 * KEYWORD: 'first'
 *
 * From line: float
 * KEYWORD: 'float'
 *
 * From line: for
 * KEYWORD: 'for'
 *
 * From line: force
 * KEYWORD: 'force'
 *
 * From line: foreign
 * KEYWORD: 'foreign'
 *
 * From line: forward
 * KEYWORD: 'forward'
 *
 * From line: freeze
 * KEYWORD: 'freeze'
 *
 * From line: from
 * KEYWORD: 'from'
 *
 * From line: full
 * KEYWORD: 'full'
 *
 * From line: function
 * KEYWORD: 'function'
 *
 * From line: global
 * KEYWORD: 'global'
 *
 * From line: grant
 * KEYWORD: 'grant'
 *
 * From line: granted
 * KEYWORD: 'granted'
 *
 * From line: greatest
 * KEYWORD: 'greatest'
 *
 * From line: group
 * KEYWORD: 'group'
 *
 * From line: handler
 * KEYWORD: 'handler'
 *
 * From line: having
 * KEYWORD: 'having'
 *
 * From line: header
 * KEYWORD: 'header'
 *
 * From line: hold
 * KEYWORD: 'hold'
 *
 * From line: hour
 * KEYWORD: 'hour'
 *
 * From line: if
 * KEYWORD: 'if'
 *
 * From line: ilike
 * KEYWORD: 'ilike'
 *
 * From line: immediate
 * KEYWORD: 'immediate'
 *
 * From line: immutable
 * KEYWORD: 'immutable'
 *
 * From line: implicit
 * KEYWORD: 'implicit'
 *
 * From line: in
 * KEYWORD: 'in'
 *
 * From line: including
 * KEYWORD: 'including'
 *
 * From line: increment
 * KEYWORD: 'increment'
 *
 * From line: index
 * KEYWORD: 'index'
 *
 * From line: indexes
 * KEYWORD: 'indexes'
 *
 * From line: inherit
 * KEYWORD: 'inherit'
 *
 * From line: inherits
 * KEYWORD: 'inherits'
 *
 * From line: initially
 * KEYWORD: 'initially'
 *
 * From line: inner
 * KEYWORD: 'inner'
 *
 * From line: inout
 * KEYWORD: 'inout'
 *
 * From line: input
 * KEYWORD: 'input'
 *
 * From line: insensitive
 * KEYWORD: 'insensitive'
 *
 * From line: insert
 * KEYWORD: 'insert'
 *
 * From line: instead
 * KEYWORD: 'instead'
 *
 * From line: int
 * KEYWORD: 'int'
 *
 * From line: integer
 * KEYWORD: 'integer'
 *
 * From line: intersect
 * KEYWORD: 'intersect'
 *
 * From line: interval
 * KEYWORD: 'interval'
 *
 * From line: into
 * KEYWORD: 'into'
 *
 * From line: invoker
 * KEYWORD: 'invoker'
 *
 * From line: is
 * KEYWORD: 'is'
 *
 * From line: isnull
 * KEYWORD: 'isnull'
 *
 * From line: isolation
 * KEYWORD: 'isolation'
 *
 * From line: join
 * KEYWORD: 'join'
 *
 * From line: key
 * KEYWORD: 'key'
 *
 * From line: lancompiler
 * KEYWORD: 'lancompiler'
 *
 * From line: language
 * KEYWORD: 'language'
 *
 * From line: large
 * KEYWORD: 'large'
 *
 * From line: last
 * KEYWORD: 'last'
 *
 * From line: leading
 * KEYWORD: 'leading'
 *
 * From line: least
 * KEYWORD: 'least'
 *
 * From line: left
 * KEYWORD: 'left'
 *
 * From line: level
 * KEYWORD: 'level'
 *
 * From line: like
 * KEYWORD: 'like'
 *
 * From line: limit
 * KEYWORD: 'limit'
 *
 * From line: listen
 * KEYWORD: 'listen'
 *
 * From line: load
 * KEYWORD: 'load'
 *
 * From line: local
 * KEYWORD: 'local'
 *
 * From line: localtime
 * KEYWORD: 'localtime'
 *
 * From line: localtimestamp
 * KEYWORD: 'localtimestamp'
 *
 * From line: location
 * KEYWORD: 'location'
 *
 * From line: lock
 * KEYWORD: 'lock'
 *
 * From line: login
 * KEYWORD: 'login'
 *
 * From line: match
 * KEYWORD: 'match'
 *
 * From line: maxvalue
 * KEYWORD: 'maxvalue'
 *
 * From line: minute
 * KEYWORD: 'minute'
 *
 * From line: minvalue
 * KEYWORD: 'minvalue'
 *
 * From line: mode
 * KEYWORD: 'mode'
 *
 * From line: month
 * KEYWORD: 'month'
 *
 * From line: move
 * KEYWORD: 'move'
 *
 * From line: names
 * KEYWORD: 'names'
 *
 * From line: national
 * KEYWORD: 'national'
 *
 * From line: natural
 * KEYWORD: 'natural'
 *
 * From line: nchar
 * KEYWORD: 'nchar'
 *
 * From line: new
 * KEYWORD: 'new'
 *
 * From line: next
 * KEYWORD: 'next'
 *
 * From line: no
 * KEYWORD: 'no'
 *
 * From line: nocreatedb
 * KEYWORD: 'nocreatedb'
 *
 * From line: nocreaterole
 * KEYWORD: 'nocreaterole'
 *
 * From line: nocreateuser
 * KEYWORD: 'nocreateuser'
 *
 * From line: noinherit
 * KEYWORD: 'noinherit'
 *
 * From line: nologin
 * KEYWORD: 'nologin'
 *
 * From line: none
 * KEYWORD: 'none'
 *
 * From line: nosuperuser
 * KEYWORD: 'nosuperuser'
 *
 * From line: not
 * KEYWORD: 'not'
 *
 * From line: nothing
 * KEYWORD: 'nothing'
 *
 * From line: notify
 * KEYWORD: 'notify'
 *
 * From line: notnull
 * KEYWORD: 'notnull'
 *
 * From line: nowait
 * KEYWORD: 'nowait'
 *
 * From line: null
 * KEYWORD: 'null'
 *
 * From line: nullif
 * KEYWORD: 'nullif'
 *
 * From line: numeric
 * KEYWORD: 'numeric'
 *
 * From line: object
 * KEYWORD: 'object'
 *
 * From line: of
 * KEYWORD: 'of'
 *
 * From line: off
 * KEYWORD: 'off'
 *
 * From line: offset
 * KEYWORD: 'offset'
 *
 * From line: oids
 * KEYWORD: 'oids'
 *
 * From line: old
 * KEYWORD: 'old'
 *
 * From line: on
 * KEYWORD: 'on'
 *
 * From line: only
 * KEYWORD: 'only'
 *
 * From line: operator
 * KEYWORD: 'operator'
 *
 * From line: option
 * KEYWORD: 'option'
 *
 * From line: or
 * KEYWORD: 'or'
 *
 * From line: order
 * KEYWORD: 'order'
 *
 * From line: out
 * KEYWORD: 'out'
 *
 * From line: outer
 * KEYWORD: 'outer'
 *
 * From line: overlaps
 * KEYWORD: 'overlaps'
 *
 * From line: overlay
 * KEYWORD: 'overlay'
 *
 * From line: owned
 * KEYWORD: 'owned'
 *
 * From line: owner
 * KEYWORD: 'owner'
 *
 * From line: partial
 * KEYWORD: 'partial'
 *
 * From line: password
 * KEYWORD: 'password'
 *
 * From line: placing
 * KEYWORD: 'placing'
 *
 * From line: position
 * KEYWORD: 'position'
 *
 * From line: precision
 * KEYWORD: 'precision'
 *
 * From line: prepare
 * KEYWORD: 'prepare'
 *
 * From line: prepared
 * KEYWORD: 'prepared'
 *
 * From line: preserve
 * KEYWORD: 'preserve'
 *
 * From line: primary
 * KEYWORD: 'primary'
 *
 * From line: prior
 * KEYWORD: 'prior'
 *
 * From line: privileges
 * KEYWORD: 'privileges'
 *
 * From line: procedural
 * KEYWORD: 'procedural'
 *
 * From line: procedure
 * KEYWORD: 'procedure'
 *
 * From line: quote
 * KEYWORD: 'quote'
 *
 * From line: read
 * KEYWORD: 'read'
 *
 * From line: real
 * KEYWORD: 'real'
 *
 * From line: reassign
 * KEYWORD: 'reassign'
 *
 * From line: recheck
 * KEYWORD: 'recheck'
 *
 * From line: references
 * KEYWORD: 'references'
 *
 * From line: reindex
 * KEYWORD: 'reindex'
 *
 * From line: relative
 * KEYWORD: 'relative'
 *
 * From line: release
 * KEYWORD: 'release'
 *
 * From line: rename
 * KEYWORD: 'rename'
 *
 * From line: repeatable
 * KEYWORD: 'repeatable'
 *
 * From line: replace
 * KEYWORD: 'replace'
 *
 * From line: reset
 * KEYWORD: 'reset'
 *
 * From line: restart
 * KEYWORD: 'restart'
 *
 * From line: restrict
 * KEYWORD: 'restrict'
 *
 * From line: returning
 * KEYWORD: 'returning'
 *
 * From line: returns
 * KEYWORD: 'returns'
 *
 * From line: revoke
 * KEYWORD: 'revoke'
 *
 * From line: right
 * KEYWORD: 'right'
 *
 * From line: role
 * KEYWORD: 'role'
 *
 * From line: rollback
 * KEYWORD: 'rollback'
 *
 * From line: row
 * KEYWORD: 'row'
 *
 * From line: rows
 * KEYWORD: 'rows'
 *
 * From line: rule
 * KEYWORD: 'rule'
 *
 * From line: savepoint
 * KEYWORD: 'savepoint'
 *
 * From line: schema
 * KEYWORD: 'schema'
 *
 * From line: scroll
 * KEYWORD: 'scroll'
 *
 * From line: second
 * KEYWORD: 'second'
 *
 * From line: security
 * KEYWORD: 'security'
 *
 * From line: select
 * KEYWORD: 'select'
 *
 * From line: sequence
 * KEYWORD: 'sequence'
 *
 * From line: serializable
 * KEYWORD: 'serializable'
 *
 * From line: session
 * KEYWORD: 'session'
 *
 * From line: session_user
 * KEYWORD: 'session_user'
 *
 * From line: set
 * KEYWORD: 'set'
 *
 * From line: setof
 * KEYWORD: 'setof'
 *
 * From line: share
 * KEYWORD: 'share'
 *
 * From line: show
 * KEYWORD: 'show'
 *
 * From line: similar
 * KEYWORD: 'similar'
 *
 * From line: simple
 * KEYWORD: 'simple'
 *
 * From line: smallint
 * KEYWORD: 'smallint'
 *
 * From line: some
 * KEYWORD: 'some'
 *
 * From line: stable
 * KEYWORD: 'stable'
 *
 * From line: start
 * KEYWORD: 'start'
 *
 * From line: statement
 * KEYWORD: 'statement'
 *
 * From line: statistics
 * KEYWORD: 'statistics'
 *
 * From line: stdin
 * KEYWORD: 'stdin'
 *
 * From line: stdout
 * KEYWORD: 'stdout'
 *
 * From line: storage
 * KEYWORD: 'storage'
 *
 * From line: strict
 * KEYWORD: 'strict'
 *
 * From line: substring
 * KEYWORD: 'substring'
 *
 * From line: superuser
 * KEYWORD: 'superuser'
 *
 * From line: symmetric
 * KEYWORD: 'symmetric'
 *
 * From line: sysid
 * KEYWORD: 'sysid'
 *
 * From line: system
 * KEYWORD: 'system'
 *
 * From line: table
 * KEYWORD: 'table'
 *
 * From line: tablespace
 * KEYWORD: 'tablespace'
 *
 * From line: temp
 * KEYWORD: 'temp'
 *
 * From line: template
 * KEYWORD: 'template'
 *
 * From line: temporary
 * KEYWORD: 'temporary'
 *
 * From line: then
 * KEYWORD: 'then'
 *
 * From line: time
 * KEYWORD: 'time'
 *
 * From line: timestamp
 * KEYWORD: 'timestamp'
 *
 * From line: to
 * KEYWORD: 'to'
 *
 * From line: trailing
 * KEYWORD: 'trailing'
 *
 * From line: transaction
 * KEYWORD: 'transaction'
 *
 * From line: treat
 * KEYWORD: 'treat'
 *
 * From line: trigger
 * KEYWORD: 'trigger'
 *
 * From line: trim
 * KEYWORD: 'trim'
 *
 * From line: true
 * KEYWORD: 'true'
 *
 * From line: truncate
 * KEYWORD: 'truncate'
 *
 * From line: trusted
 * KEYWORD: 'trusted'
 *
 * From line: type
 * KEYWORD: 'type'
 *
 * From line: uncommitted
 * KEYWORD: 'uncommitted'
 *
 * From line: unencrypted
 * KEYWORD: 'unencrypted'
 *
 * From line: union
 * KEYWORD: 'union'
 *
 * From line: unique
 * KEYWORD: 'unique'
 *
 * From line: unknown
 * KEYWORD: 'unknown'
 *
 * From line: unlisten
 * KEYWORD: 'unlisten'
 *
 * From line: until
 * KEYWORD: 'until'
 *
 * From line: update
 * KEYWORD: 'update'
 *
 * From line: user
 * KEYWORD: 'user'
 *
 * From line: using
 * KEYWORD: 'using'
 *
 * From line: vacuum
 * KEYWORD: 'vacuum'
 *
 * From line: valid
 * KEYWORD: 'valid'
 *
 * From line: validator
 * KEYWORD: 'validator'
 *
 * From line: values
 * KEYWORD: 'values'
 *
 * From line: varchar
 * KEYWORD: 'varchar'
 *
 * From line: varying
 * KEYWORD: 'varying'
 *
 * From line: verbose
 * KEYWORD: 'verbose'
 *
 * From line: view
 * KEYWORD: 'view'
 *
 * From line: volatile
 * KEYWORD: 'volatile'
 *
 * From line: when
 * KEYWORD: 'when'
 *
 * From line: where
 * KEYWORD: 'where'
 *
 * From line: with
 * KEYWORD: 'with'
 *
 * From line: without
 * KEYWORD: 'without'
 *
 * From line: work
 * KEYWORD: 'work'
 *
 * From line: write
 * KEYWORD: 'write'
 *
 * From line: year
 * KEYWORD: 'year'
 *
 * From line: zone
 * KEYWORD: 'zone'
 */
/* Hash score: 3833 */
static int V82keywordCode(const char *z, int n){
  /* zText[] encodes 2531 bytes of keywords in 1575 bytes */
  /*   noinheritstablespaceacheckpointervalidatordereassignment           */
  /*   emplatemporaryearrayimmutableastdouterecheckeymaxvaluescroll       */
  /*   backwardescapelsession_userializablevelastatisticsvarchar          */
  /*   acteristicsavepointegereindexesimilargenableadinglobalsome         */
  /*   xclusiverbosecuritypexecutexplainouthencodingreatestdin            */
  /*   sensitivexternalterepeatableftransactionlyminvaluendatabasetof     */
  /*   fsetrimmediatexceptruncatexcludingroupdatexistsmallintersect       */
  /*   railingrantedeallocatextractreatriggerenamesystemoverlapschema     */
  /*   tchainsteadminutebeforeigncharesetrueisnullifalsecondecimaload     */
  /*   declareadeferrablenotnullocationextrustedeletebigintoperator       */
  /*   ealancompilereferencesharelativecacheadereleaselectclassertion     */
  /*   ocreateuserevokecurrent_userulenosuperusereplacepasswordisable     */
  /*   unknownedomaincludingwithoutabsoluteaggregateanalysequence         */
  /*   authorizationationalanguagebegincrementbetweenatural               */
  /*   ocaltimestampartialockbooleanalyzebothandlerestartcasecast         */
  /*   atementclosecollateconnectionocreateroleconversionologin           */
  /*   itiallycurrent_datecurrent_rolecursorestrictcycledoubledrop        */
  /*   tiononewhenocreatedbinaryfetchavingfirstoragefunctionothing        */
  /*   ilikeisolationotifyjoinnereturningmodefaultshownereturnsimple      */
  /*   montholdaypositionowaitprecisionumericalledeferredefineright       */
  /*   preservepriorowsubstringprivilegesysidelimitersprocedural          */
  /*   procedurequoteunionunlistenuntilvolatilewherewritezoneabort        */
  /*   accessafteranyasymmetricascadedistinctbitbyclustercoalesce         */
  /*   columncommentconcurrentlyconstraintsconvertcopycross               */
  /*   current_timestamplacingfloatforceforwardfreezefromfullhour         */
  /*   implicitinputinsertinvokerobjectoidsoverlaypreparedprimary         */
  /*   uncommittedunencrypteduniqueusingvacuumvaryingviework              */
  static const char V82zText[1574] = {
    'n','o','i','n','h','e','r','i','t','s','t','a','b','l','e','s','p','a',
    'c','e','a','c','h','e','c','k','p','o','i','n','t','e','r','v','a','l',
    'i','d','a','t','o','r','d','e','r','e','a','s','s','i','g','n','m','e',
    'n','t','e','m','p','l','a','t','e','m','p','o','r','a','r','y','e','a',
    'r','r','a','y','i','m','m','u','t','a','b','l','e','a','s','t','d','o',
    'u','t','e','r','e','c','h','e','c','k','e','y','m','a','x','v','a','l',
    'u','e','s','c','r','o','l','l','b','a','c','k','w','a','r','d','e','s',
    'c','a','p','e','l','s','e','s','s','i','o','n','_','u','s','e','r','i',
    'a','l','i','z','a','b','l','e','v','e','l','a','s','t','a','t','i','s',
    't','i','c','s','v','a','r','c','h','a','r','a','c','t','e','r','i','s',
    't','i','c','s','a','v','e','p','o','i','n','t','e','g','e','r','e','i',
    'n','d','e','x','e','s','i','m','i','l','a','r','g','e','n','a','b','l',
    'e','a','d','i','n','g','l','o','b','a','l','s','o','m','e','x','c','l',
    'u','s','i','v','e','r','b','o','s','e','c','u','r','i','t','y','p','e',
    'x','e','c','u','t','e','x','p','l','a','i','n','o','u','t','h','e','n',
    'c','o','d','i','n','g','r','e','a','t','e','s','t','d','i','n','s','e',
    'n','s','i','t','i','v','e','x','t','e','r','n','a','l','t','e','r','e',
    'p','e','a','t','a','b','l','e','f','t','r','a','n','s','a','c','t','i',
    'o','n','l','y','m','i','n','v','a','l','u','e','n','d','a','t','a','b',
    'a','s','e','t','o','f','f','s','e','t','r','i','m','m','e','d','i','a',
    't','e','x','c','e','p','t','r','u','n','c','a','t','e','x','c','l','u',
    'd','i','n','g','r','o','u','p','d','a','t','e','x','i','s','t','s','m',
    'a','l','l','i','n','t','e','r','s','e','c','t','r','a','i','l','i','n',
    'g','r','a','n','t','e','d','e','a','l','l','o','c','a','t','e','x','t',
    'r','a','c','t','r','e','a','t','r','i','g','g','e','r','e','n','a','m',
    'e','s','y','s','t','e','m','o','v','e','r','l','a','p','s','c','h','e',
    'm','a','t','c','h','a','i','n','s','t','e','a','d','m','i','n','u','t',
    'e','b','e','f','o','r','e','i','g','n','c','h','a','r','e','s','e','t',
    'r','u','e','i','s','n','u','l','l','i','f','a','l','s','e','c','o','n',
    'd','e','c','i','m','a','l','o','a','d','d','e','c','l','a','r','e','a',
    'd','e','f','e','r','r','a','b','l','e','n','o','t','n','u','l','l','o',
    'c','a','t','i','o','n','e','x','t','r','u','s','t','e','d','e','l','e',
    't','e','b','i','g','i','n','t','o','p','e','r','a','t','o','r','e','a',
    'l','a','n','c','o','m','p','i','l','e','r','e','f','e','r','e','n','c',
    'e','s','h','a','r','e','l','a','t','i','v','e','c','a','c','h','e','a',
    'd','e','r','e','l','e','a','s','e','l','e','c','t','c','l','a','s','s',
    'e','r','t','i','o','n','o','c','r','e','a','t','e','u','s','e','r','e',
    'v','o','k','e','c','u','r','r','e','n','t','_','u','s','e','r','u','l',
    'e','n','o','s','u','p','e','r','u','s','e','r','e','p','l','a','c','e',
    'p','a','s','s','w','o','r','d','i','s','a','b','l','e','u','n','k','n',
    'o','w','n','e','d','o','m','a','i','n','c','l','u','d','i','n','g','w',
    'i','t','h','o','u','t','a','b','s','o','l','u','t','e','a','g','g','r',
    'e','g','a','t','e','a','n','a','l','y','s','e','q','u','e','n','c','e',
    'a','u','t','h','o','r','i','z','a','t','i','o','n','a','t','i','o','n',
    'a','l','a','n','g','u','a','g','e','b','e','g','i','n','c','r','e','m',
    'e','n','t','b','e','t','w','e','e','n','a','t','u','r','a','l','o','c',
    'a','l','t','i','m','e','s','t','a','m','p','a','r','t','i','a','l','o',
    'c','k','b','o','o','l','e','a','n','a','l','y','z','e','b','o','t','h',
    'a','n','d','l','e','r','e','s','t','a','r','t','c','a','s','e','c','a',
    's','t','a','t','e','m','e','n','t','c','l','o','s','e','c','o','l','l',
    'a','t','e','c','o','n','n','e','c','t','i','o','n','o','c','r','e','a',
    't','e','r','o','l','e','c','o','n','v','e','r','s','i','o','n','o','l',
    'o','g','i','n','i','t','i','a','l','l','y','c','u','r','r','e','n','t',
    '_','d','a','t','e','c','u','r','r','e','n','t','_','r','o','l','e','c',
    'u','r','s','o','r','e','s','t','r','i','c','t','c','y','c','l','e','d',
    'o','u','b','l','e','d','r','o','p','t','i','o','n','o','n','e','w','h',
    'e','n','o','c','r','e','a','t','e','d','b','i','n','a','r','y','f','e',
    't','c','h','a','v','i','n','g','f','i','r','s','t','o','r','a','g','e',
    'f','u','n','c','t','i','o','n','o','t','h','i','n','g','i','l','i','k',
    'e','i','s','o','l','a','t','i','o','n','o','t','i','f','y','j','o','i',
    'n','n','e','r','e','t','u','r','n','i','n','g','m','o','d','e','f','a',
    'u','l','t','s','h','o','w','n','e','r','e','t','u','r','n','s','i','m',
    'p','l','e','m','o','n','t','h','o','l','d','a','y','p','o','s','i','t',
    'i','o','n','o','w','a','i','t','p','r','e','c','i','s','i','o','n','u',
    'm','e','r','i','c','a','l','l','e','d','e','f','e','r','r','e','d','e',
    'f','i','n','e','r','i','g','h','t','p','r','e','s','e','r','v','e','p',
    'r','i','o','r','o','w','s','u','b','s','t','r','i','n','g','p','r','i',
    'v','i','l','e','g','e','s','y','s','i','d','e','l','i','m','i','t','e',
    'r','s','p','r','o','c','e','d','u','r','a','l','p','r','o','c','e','d',
    'u','r','e','q','u','o','t','e','u','n','i','o','n','u','n','l','i','s',
    't','e','n','u','n','t','i','l','v','o','l','a','t','i','l','e','w','h',
    'e','r','e','w','r','i','t','e','z','o','n','e','a','b','o','r','t','a',
    'c','c','e','s','s','a','f','t','e','r','a','n','y','a','s','y','m','m',
    'e','t','r','i','c','a','s','c','a','d','e','d','i','s','t','i','n','c',
    't','b','i','t','b','y','c','l','u','s','t','e','r','c','o','a','l','e',
    's','c','e','c','o','l','u','m','n','c','o','m','m','e','n','t','c','o',
    'n','c','u','r','r','e','n','t','l','y','c','o','n','s','t','r','a','i',
    'n','t','s','c','o','n','v','e','r','t','c','o','p','y','c','r','o','s',
    's','c','u','r','r','e','n','t','_','t','i','m','e','s','t','a','m','p',
    'l','a','c','i','n','g','f','l','o','a','t','f','o','r','c','e','f','o',
    'r','w','a','r','d','f','r','e','e','z','e','f','r','o','m','f','u','l',
    'l','h','o','u','r','i','m','p','l','i','c','i','t','i','n','p','u','t',
    'i','n','s','e','r','t','i','n','v','o','k','e','r','o','b','j','e','c',
    't','o','i','d','s','o','v','e','r','l','a','y','p','r','e','p','a','r',
    'e','d','p','r','i','m','a','r','y','u','n','c','o','m','m','i','t','t',
    'e','d','u','n','e','n','c','r','y','p','t','e','d','u','n','i','q','u',
    'e','u','s','i','n','g','v','a','c','u','u','m','v','a','r','y','i','n',
    'g','v','i','e','w','o','r','k',
  };
  static const unsigned int V82aHash[170] = {
     0, 297, 329, 246, 292, 308, 0, 334, 313, 315, 259, 135, 20,
     101, 168, 339, 133, 83, 66, 57, 0, 36, 298, 312, 0, 282,
     293, 195, 214, 186, 80, 95, 0, 245, 211, 314, 92, 269, 326,
     0, 143, 129, 203, 239, 331, 304, 318, 67, 301, 317, 217, 296,
     302, 288, 173, 325, 255, 305, 336, 268, 324, 262, 328, 271, 338,
     300, 289, 147, 274, 247, 320, 198, 319, 333, 242, 323, 281, 241,
     253, 0, 53, 310, 277, 335, 322, 279, 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, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 107,
     254, 256, 19, 0, 39, 174, 251, 309, 235, 0, 125, 110, 272,
     116, 0, 261, 226, 267, 227, 278, 276, 185, 172, 340, 56, 275,
     218, 118, 69, 243, 0, 119, 228, 176, 291, 230, 258, 287, 290,
     332,
  };
  static const unsigned int V82aNext[340] = {
       0,   0,   0,   0,   0,   2,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  14,
       0,   0,   0,  11,  27,   0,   0,   0,  34,   0,  32,  24,   0,
      26,  12,  10,  13,   1,   0,   0,   0,   9,   3,   0,   6,   0,
       5,   0,   0,   0,  35,  22,  47,   0,   0,  18,   0,   0,   0,
       0,   0,   0,   0,   0,   8,   0,   0,   0,   0,   0,  44,  42,
       0,  71,  46,  29,   0,   0,  65,   0,   0,   0,  82,  89,  58,
       0,  17,   7,  54,  68,   0,   0,  41,  77,  84,   0,   0,   0,
       0,  45,  37,   0,   0,  87,  43, 100,  23, 106, 104,   0,  97,
      55,   0,   0,   0,  79,  85,  86,  88,   0,  62, 124,  81,  98,
       0,   0,   0,   0, 103,  61, 123,   0,   0, 134, 137,   0,  16,
     112,   0,   0, 144,   0, 128,  40,   0,  63, 140,  38,   0,   0,
      93, 145, 155,   0, 108,   0,   0,   4,  90, 153, 109, 132,  50,
       0,   0, 130, 166,  30, 163,   0,   0,  33, 121, 115,  78,  48,
       0, 183,   0, 156,  99, 102, 141, 154, 187,   0,  72,  51, 188,
     178,   0, 191, 131, 165, 170,  52,   0, 169, 151,   0,   0, 148,
      70, 175, 207, 194,  49,   0,  64, 215, 171,   0, 190, 205, 142,
      28, 152, 200,  59,   0, 126, 177, 164, 160, 224,   0, 167, 182,
      15,  31, 208, 136, 120, 149, 157, 184, 111, 232, 117,   0, 150,
     219, 229, 114, 146, 231, 138,  91, 158, 193, 248, 220, 197, 244,
     122, 238, 252,   0, 201, 223, 263, 249, 105, 180, 113, 236, 240,
     192, 237, 257,   0, 265, 213,   0, 280, 270,   0,   0,  76,  74,
     202,  25, 286,  94, 206, 264, 222, 285, 161, 283, 199,   0, 294,
     179, 234, 225, 189, 299, 210, 159,  60, 216, 250, 303, 139, 260,
     127, 307,   0,   0, 284,  75, 311, 266,  96,   0, 212, 273, 295,
     306, 233, 181, 196,   0, 162, 209, 330, 316, 321, 327, 204,  21,
     221, 337,
  };
  static const unsigned char V82aLen[340] = {
       9,   8,   7,   6,   5,  10,   4,   5,  10,   8,   9,   5,   2,
       5,   8,  10,   8,   9,   4,   4,   5,   9,   5,   6,   2,   5,
       7,   3,   8,   6,   6,   8,   8,   4,   6,   4,   7,  12,   4,
      12,   5,   4,  10,   3,   7,   9,   4,  15,   2,   9,   7,   7,
       7,   5,   7,   5,   6,   7,   6,   4,   4,   9,   7,   8,   4,
       7,   7,   5,   4,   8,   8,   5,  11,   2,   8,   5,  10,   4,
      11,   6,   4,   8,   3,   8,   5,   6,   3,   2,   3,   4,   9,
       6,   8,   9,   5,   6,   6,   8,   9,   8,   7,   5,  10,   3,
       7,   5,   7,   6,   5,   6,   4,   8,   6,   5,   5,   7,   5,
       6,   6,   7,   5,   5,   4,   6,   6,   2,   5,   6,   7,   4,
       3,   7,   3,   4,  10,   3,   7,   4,   8,   4,   7,   6,   6,
       4,   8,   4,  11,  10,   5,   8,   5,   6,   7,   6,   5,   9,
       2,  12,  10,   6,   6,  12,   4,  11,   9,   7,   8,   7,   7,
       5,   6,   9,   4,   7,   3,   8,   9,   7,   8,  13,   2,   2,
       2,   8,   8,   5,   9,   7,   7,   9,   5,  14,   7,   4,   7,
       7,   4,   7,   3,   7,   5,   4,   4,   9,   5,   7,  10,  12,
      10,   4,  10,   7,   5,   9,  12,  12,   6,   8,   6,   5,   6,
       4,   6,   4,   3,   4,  10,   8,   6,   5,   6,   5,   7,   8,
       7,   5,   4,   9,   6,   4,   5,   9,   4,   8,   7,   4,   5,
       7,   6,   5,   4,   3,   3,   8,   6,   9,   7,   6,   8,   7,
       5,   8,   5,   3,   4,   9,  10,   5,   9,  10,   5,  10,   9,
       5,   5,   8,   6,   5,   8,   5,   5,   4,   5,   6,   5,   3,
      10,   2,   9,   8,   7,   3,   8,   3,   2,   7,   8,   6,   7,
      12,  10,  11,   3,   7,   4,   5,  17,  12,   9,   4,   7,   5,
       5,   3,   7,   6,   4,   4,   4,   8,   5,   6,   7,   6,   4,
       7,   8,   7,   7,  11,   6,   9,  11,   9,   6,   5,   6,   7,
       4,   4,
  };
  static const unsigned short int V82aOffset[340] = {
       0,   2,   2,   9,  10,  10,  19,  21,  21,  28,  33,  33,  39,
      40,  44,  46,  55,  61,  61,  69,  71,  76,  83,  86,  88,  89,
      93,  99, 102, 105, 110, 112, 116, 123, 124, 129, 131, 131, 139,
     140, 150, 154, 156, 164, 166, 169, 169, 169, 178, 183, 189, 195,
     197, 197, 203, 207, 211, 215, 221, 225, 227, 230, 237, 242, 248,
     251, 257, 262, 266, 268, 275, 281, 284, 284, 294, 300, 304, 312,
     315, 320, 324, 328, 335, 337, 343, 346, 346, 346, 349, 351, 353,
     361, 366, 373, 381, 384, 389, 394, 399, 407, 414, 414, 420, 422,
     429, 435, 439, 445, 447, 451, 456, 457, 464, 468, 471, 474, 479,
     481, 487, 489, 495, 499, 503, 507, 509, 513, 514, 517, 522, 528,
     530, 532, 532, 537, 540, 550, 550, 553, 556, 563, 566, 572, 578,
     581, 584, 591, 594, 604, 613, 616, 624, 627, 632, 637, 643, 645,
     653, 653, 655, 655, 664, 670, 681, 685, 687, 695, 702, 709, 716,
     720, 724, 728, 737, 737, 741, 744, 752, 761, 766, 774, 778, 782,
     785, 786, 793, 801, 804, 813, 819, 825, 825, 825, 838, 844, 848,
     853, 860, 863, 864, 869, 871, 876, 880, 882, 891, 896, 903, 912,
     914, 920, 924, 933, 935, 938, 947, 959, 971, 976, 978, 984, 989,
     995, 997, 1002, 1004, 1006, 1009, 1011, 1018, 1024, 1028, 1034, 1037, 1044,
     1051, 1058, 1059, 1063, 1071, 1077, 1079, 1083, 1092, 1094, 1094, 1101, 1103,
     1107, 1113, 1119, 1123, 1124, 1126, 1129, 1136, 1142, 1150, 1156, 1161, 1168,
     1174, 1179, 1187, 1191, 1191, 1194, 1203, 1212, 1216, 1216, 1218, 1226, 1236,
     1245, 1250, 1255, 1257, 1263, 1268, 1276, 1281, 1286, 1290, 1295, 1301, 1306,
     1309, 1309, 1310, 1318, 1318, 1319, 1325, 1333, 1336, 1338, 1345, 1353, 1359,
     1366, 1378, 1378, 1385, 1389, 1396, 1400, 1405, 1405, 1413, 1413, 1421, 1428,
     1433, 1438, 1438, 1445, 1451, 1455, 1459, 1463, 1471, 1476, 1482, 1489, 1495,
     1499, 1506, 1506, 1514, 1521, 1523, 1523, 1532, 1534, 1543, 1549, 1554, 1560,
     1567, 1570,
  };
  int h, i;
  if( n<2 ) return 0;
  h = ((charMap(z[0])*4) ^
      (charMap(z[n-1])*3) ^
      n) % 170;
  for(i=((int)V82aHash[h])-1; i>=0; i=((int)V82aNext[i])-1){
    if( V82aLen[i]==n && casecmp(&V82zText[V82aOffset[i]],z,n)==0 ){
      return 1;
    }
  }
  return 0;
}

static gboolean
V82is_keyword (const char *z)
{
	return V82keywordCode(z, strlen (z));
}

/* file contains automatically generated code, DO NOT MODIFY *
 *
 * The code in this file implements a function that determines whether
 * or not a given identifier is really an SQL keyword.  The same thing
 * might be implemented more directly using a hand-written hash table.
 * But by using this automatically generated code, the size of the code
 * is substantially reduced.  This is important for embedded applications
 * on platforms with limited memory.
 *
 * This code has been copied from SQLite's mkkeywordhash.c file and modified.
 * to read the SQL keywords from a file instead of static ones
 */

/* Parsed keywords
 *
 * From line: all
 * KEYWORD: 'all'
 *
 * From line: analyse
 * KEYWORD: 'analyse'
 *
 * From line: analyze
 * KEYWORD: 'analyze'
 *
 * From line: and
 * KEYWORD: 'and'
 *
 * From line: any
 * KEYWORD: 'any'
 *
 * From line: array
 * KEYWORD: 'array'
 *
 * From line: as
 * KEYWORD: 'as'
 *
 * From line: asc
 * KEYWORD: 'asc'
 *
 * From line: asymmetric
 * KEYWORD: 'asymmetric'
 *
 * From line: authorization
 * KEYWORD: 'authorization'
 *
 * From line: between
 * KEYWORD: 'between'
 *
 * From line: bigint
 * KEYWORD: 'bigint'
 *
 * From line: binary
 * KEYWORD: 'binary'
 *
 * From line: bit
 * KEYWORD: 'bit'
 *
 * From line: boolean
 * KEYWORD: 'boolean'
 *
 * From line: both
 * KEYWORD: 'both'
 *
 * From line: case
 * KEYWORD: 'case'
 *
 * From line: cast
 * KEYWORD: 'cast'
 *
 * From line: char
 * KEYWORD: 'char'
 *
 * From line: character
 * KEYWORD: 'character'
 *
 * From line: check
 * KEYWORD: 'check'
 *
 * From line: coalesce
 * KEYWORD: 'coalesce'
 *
 * From line: collate
 * KEYWORD: 'collate'
 *
 * From line: column
 * KEYWORD: 'column'
 *
 * From line: constraint
 * KEYWORD: 'constraint'
 *
 * From line: create
 * KEYWORD: 'create'
 *
 * From line: cross
 * KEYWORD: 'cross'
 *
 * From line: current_date
 * KEYWORD: 'current_date'
 *
 * From line: current_role
 * KEYWORD: 'current_role'
 *
 * From line: current_time
 * KEYWORD: 'current_time'
 *
 * From line: current_timestamp
 * KEYWORD: 'current_timestamp'
 *
 * From line: current_user
 * KEYWORD: 'current_user'
 *
 * From line: dec
 * KEYWORD: 'dec'
 *
 * From line: decimal
 * KEYWORD: 'decimal'
 *
 * From line: default
 * KEYWORD: 'default'
 *
 * From line: deferrable
 * KEYWORD: 'deferrable'
 *
 * From line: desc
 * KEYWORD: 'desc'
 *
 * From line: distinct
 * KEYWORD: 'distinct'
 *
 * From line: do
 * KEYWORD: 'do'
 *
 * From line: else
 * KEYWORD: 'else'
 *
 * From line: end
 * KEYWORD: 'end'
 *
 * From line: except
 * KEYWORD: 'except'
 *
 * From line: exists
 * KEYWORD: 'exists'
 *
 * From line: extract
 * KEYWORD: 'extract'
 *
 * From line: false
 * KEYWORD: 'false'
 *
 * From line: float
 * KEYWORD: 'float'
 *
 * From line: for
 * KEYWORD: 'for'
 *
 * From line: foreign
 * KEYWORD: 'foreign'
 *
 * From line: freeze
 * KEYWORD: 'freeze'
 *
 * From line: from
 * KEYWORD: 'from'
 *
 * From line: full
 * KEYWORD: 'full'
 *
 * From line: grant
 * KEYWORD: 'grant'
 *
 * From line: greatest
 * KEYWORD: 'greatest'
 *
 * From line: group
 * KEYWORD: 'group'
 *
 * From line: having
 * KEYWORD: 'having'
 *
 * From line: ilike
 * KEYWORD: 'ilike'
 *
 * From line: in
 * KEYWORD: 'in'
 *
 * From line: initially
 * KEYWORD: 'initially'
 *
 * From line: inner
 * KEYWORD: 'inner'
 *
 * From line: inout
 * KEYWORD: 'inout'
 *
 * From line: int
 * KEYWORD: 'int'
 *
 * From line: integer
 * KEYWORD: 'integer'
 *
 * From line: intersect
 * KEYWORD: 'intersect'
 *
 * From line: interval
 * KEYWORD: 'interval'
 *
 * From line: into
 * KEYWORD: 'into'
 *
 * From line: is
 * KEYWORD: 'is'
 *
 * From line: isnull
 * KEYWORD: 'isnull'
 *
 * From line: join
 * KEYWORD: 'join'
 *
 * From line: leading
 * KEYWORD: 'leading'
 *
 * From line: least
 * KEYWORD: 'least'
 *
 * From line: left
 * KEYWORD: 'left'
 *
 * From line: like
 * KEYWORD: 'like'
 *
 * From line: limit
 * KEYWORD: 'limit'
 *
 * From line: localtime
 * KEYWORD: 'localtime'
 *
 * From line: localtimestamp
 * KEYWORD: 'localtimestamp'
 *
 * From line: national
 * KEYWORD: 'national'
 *
 * From line: natural
 * KEYWORD: 'natural'
 *
 * From line: nchar
 * KEYWORD: 'nchar'
 *
 * From line: new
 * KEYWORD: 'new'
 *
 * From line: none
 * KEYWORD: 'none'
 *
 * From line: not
 * KEYWORD: 'not'
 *
 * From line: notnull
 * KEYWORD: 'notnull'
 *
 * From line: null
 * KEYWORD: 'null'
 *
 * From line: nullif
 * KEYWORD: 'nullif'
 *
 * From line: numeric
 * KEYWORD: 'numeric'
 *
 * From line: off
 * KEYWORD: 'off'
 *
 * From line: offset
 * KEYWORD: 'offset'
 *
 * From line: old
 * KEYWORD: 'old'
 *
 * From line: on
 * KEYWORD: 'on'
 *
 * From line: only
 * KEYWORD: 'only'
 *
 * From line: or
 * KEYWORD: 'or'
 *
 * From line: order
 * KEYWORD: 'order'
 *
 * From line: out
 * KEYWORD: 'out'
 *
 * From line: outer
 * KEYWORD: 'outer'
 *
 * From line: overlaps
 * KEYWORD: 'overlaps'
 *
 * From line: overlay
 * KEYWORD: 'overlay'
 *
 * From line: placing
 * KEYWORD: 'placing'
 *
 * From line: position
 * KEYWORD: 'position'
 *
 * From line: precision
 * KEYWORD: 'precision'
 *
 * From line: primary
 * KEYWORD: 'primary'
 *
 * From line: real
 * KEYWORD: 'real'
 *
 * From line: references
 * KEYWORD: 'references'
 *
 * From line: returning
 * KEYWORD: 'returning'
 *
 * From line: right
 * KEYWORD: 'right'
 *
 * From line: row
 * KEYWORD: 'row'
 *
 * From line: select
 * KEYWORD: 'select'
 *
 * From line: session_user
 * KEYWORD: 'session_user'
 *
 * From line: setof
 * KEYWORD: 'setof'
 *
 * From line: similar
 * KEYWORD: 'similar'
 *
 * From line: smallint
 * KEYWORD: 'smallint'
 *
 * From line: some
 * KEYWORD: 'some'
 *
 * From line: substring
 * KEYWORD: 'substring'
 *
 * From line: symmetric
 * KEYWORD: 'symmetric'
 *
 * From line: table
 * KEYWORD: 'table'
 *
 * From line: then
 * KEYWORD: 'then'
 *
 * From line: time
 * KEYWORD: 'time'
 *
 * From line: timestamp
 * KEYWORD: 'timestamp'
 *
 * From line: to
 * KEYWORD: 'to'
 *
 * From line: trailing
 * KEYWORD: 'trailing'
 *
 * From line: treat
 * KEYWORD: 'treat'
 *
 * From line: trim
 * KEYWORD: 'trim'
 *
 * From line: true
 * KEYWORD: 'true'
 *
 * From line: union
 * KEYWORD: 'union'
 *
 * From line: unique
 * KEYWORD: 'unique'
 *
 * From line: user
 * KEYWORD: 'user'
 *
 * From line: using
 * KEYWORD: 'using'
 *
 * From line: values
 * KEYWORD: 'values'
 *
 * From line: varchar
 * KEYWORD: 'varchar'
 *
 * From line: verbose
 * KEYWORD: 'verbose'
 *
 * From line: when
 * KEYWORD: 'when'
 *
 * From line: where
 * KEYWORD: 'where'
 *
 * From line: with
 * KEYWORD: 'with'
 *
 * From line: xmlattributes
 * KEYWORD: 'xmlattributes'
 *
 * From line: xmlconcat
 * KEYWORD: 'xmlconcat'
 *
 * From line: xmlelement
 * KEYWORD: 'xmlelement'
 *
 * From line: xmlforest
 * KEYWORD: 'xmlforest'
 *
 * From line: xmlparse
 * KEYWORD: 'xmlparse'
 *
 * From line: xmlpi
 * KEYWORD: 'xmlpi'
 *
 * From line: xmlroot
 * KEYWORD: 'xmlroot'
 *
 * From line: xmlserialize
 * KEYWORD: 'xmlserialize'
 */
/* Hash score: 291 */
static int V83keywordCode(const char *z, int n){
  /* zText[] encodes 999 bytes of keywords in 676 bytes */
  /*   isnullifalsetoffsetableadingranthendeferrableastrailingreatest     */
  /*   reatruelselectrimncharacterealeftnotnullimitvarcharraybigint       */
  /*   ervaluesmallintegereferencesimilareturningroupositionly            */
  /*   constraintersectinouterightanalysession_userowhenonewherexcept     */
  /*   authorizationationalocaltimestamprecisionaturalbetweenumeric       */
  /*   asexistsomextractbooleanalyzebothavingcurrent_rolejoinnerunion     */
  /*   verbosewithxmlparseandecimalascastasymmetricoalescebitcollate      */
  /*   columncreatecrossubstringcurrent_datecurrent_timestamplacing       */
  /*   current_userdefaultdescheckdistinctdoldfloatforeignfreezefull      */
  /*   ilikeintorderoverlapsuniqueusingxmlattributesxmlconcat             */
  /*   xmlelementxmlforestxmlpinitiallyxmlrootxmlserializeanybinary       */
  /*   fromoverlayprimary                                                 */
  static const char V83zText[675] = {
    'i','s','n','u','l','l','i','f','a','l','s','e','t','o','f','f','s','e',
    't','a','b','l','e','a','d','i','n','g','r','a','n','t','h','e','n','d',
    'e','f','e','r','r','a','b','l','e','a','s','t','r','a','i','l','i','n',
    'g','r','e','a','t','e','s','t','r','e','a','t','r','u','e','l','s','e',
    'l','e','c','t','r','i','m','n','c','h','a','r','a','c','t','e','r','e',
    'a','l','e','f','t','n','o','t','n','u','l','l','i','m','i','t','v','a',
    'r','c','h','a','r','r','a','y','b','i','g','i','n','t','e','r','v','a',
    'l','u','e','s','m','a','l','l','i','n','t','e','g','e','r','e','f','e',
    'r','e','n','c','e','s','i','m','i','l','a','r','e','t','u','r','n','i',
    'n','g','r','o','u','p','o','s','i','t','i','o','n','l','y','c','o','n',
    's','t','r','a','i','n','t','e','r','s','e','c','t','i','n','o','u','t',
    'e','r','i','g','h','t','a','n','a','l','y','s','e','s','s','i','o','n',
    '_','u','s','e','r','o','w','h','e','n','o','n','e','w','h','e','r','e',
    'x','c','e','p','t','a','u','t','h','o','r','i','z','a','t','i','o','n',
    'a','t','i','o','n','a','l','o','c','a','l','t','i','m','e','s','t','a',
    'm','p','r','e','c','i','s','i','o','n','a','t','u','r','a','l','b','e',
    't','w','e','e','n','u','m','e','r','i','c','a','s','e','x','i','s','t',
    's','o','m','e','x','t','r','a','c','t','b','o','o','l','e','a','n','a',
    'l','y','z','e','b','o','t','h','a','v','i','n','g','c','u','r','r','e',
    'n','t','_','r','o','l','e','j','o','i','n','n','e','r','u','n','i','o',
    'n','v','e','r','b','o','s','e','w','i','t','h','x','m','l','p','a','r',
    's','e','a','n','d','e','c','i','m','a','l','a','s','c','a','s','t','a',
    's','y','m','m','e','t','r','i','c','o','a','l','e','s','c','e','b','i',
    't','c','o','l','l','a','t','e','c','o','l','u','m','n','c','r','e','a',
    't','e','c','r','o','s','s','u','b','s','t','r','i','n','g','c','u','r',
    'r','e','n','t','_','d','a','t','e','c','u','r','r','e','n','t','_','t',
    'i','m','e','s','t','a','m','p','l','a','c','i','n','g','c','u','r','r',
    'e','n','t','_','u','s','e','r','d','e','f','a','u','l','t','d','e','s',
    'c','h','e','c','k','d','i','s','t','i','n','c','t','d','o','l','d','f',
    'l','o','a','t','f','o','r','e','i','g','n','f','r','e','e','z','e','f',
    'u','l','l','i','l','i','k','e','i','n','t','o','r','d','e','r','o','v',
    'e','r','l','a','p','s','u','n','i','q','u','e','u','s','i','n','g','x',
    'm','l','a','t','t','r','i','b','u','t','e','s','x','m','l','c','o','n',
    'c','a','t','x','m','l','e','l','e','m','e','n','t','x','m','l','f','o',
    'r','e','s','t','x','m','l','p','i','n','i','t','i','a','l','l','y','x',
    'm','l','r','o','o','t','x','m','l','s','e','r','i','a','l','i','z','e',
    'a','n','y','b','i','n','a','r','y','f','r','o','m','o','v','e','r','l',
    'a','y','p','r','i','m','a','r','y',
  };
  static const unsigned int V83aHash[126] = {
     0, 124, 0, 68, 42, 67, 0, 0, 54, 35, 25, 106, 0,
     0, 2, 7, 119, 0, 0, 51, 56, 114, 0, 0, 71, 0,
     36, 0, 0, 120, 0, 39, 11, 5, 0, 0, 0, 0, 97,
     99, 0, 92, 0, 0, 0, 95, 140, 0, 90, 103, 0, 117,
     3, 0, 126, 129, 128, 0, 0, 0, 88, 134, 0, 110, 0,
     19, 98, 115, 0, 135, 112, 76, 132, 86, 111, 41, 0, 109,
     0, 130, 60, 75, 139, 0, 33, 89, 91, 116, 108, 96, 118,
     0, 44, 138, 0, 0, 131, 113, 85, 0, 0, 49, 125, 137,
     81, 74, 62, 30, 32, 22, 136, 123, 65, 122, 101, 47, 107,
     0, 64, 37, 59, 82, 29, 0, 8, 105,
  };
  static const unsigned int V83aNext[140] = {
       0,   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   4,   0,   0,   0,   0,   0,   0,   0,   0,
      18,   0,   0,  14,  17,   0,   0,  26,   0,   0,   0,   0,   0,
       0,   0,   9,  24,   0,   0,  27,   0,   0,   0,   0,   0,   0,
      20,   0,   0,   0,  21,  23,   0,   0,   0,  34,  40,  63,   0,
      53,   0,   0,  46,  10,  66,   0,   0,  28,   0,  70,  52,   0,
      57,   0,   6,   0,  38,   0,   0,   0,   0,   0,  43,  55,   0,
      72,   0,  45,  87,   0,   0,   0,   0,   0,  84,  80, 102,   0,
      69,  31,   0,   0,  73,   0,  16,   0,  93,  79,   0,   0,   0,
       0,   0,  83,  15,  50, 121,  48,   0,  78,  13,   0, 127, 104,
      58,   0,  61,  12, 133,  94,   0,   0, 100,  77,
  };
  static const unsigned char V83aLen[140] = {
       6,   6,   5,   5,   2,   6,   3,   5,   7,   5,   4,   3,  10,
       5,   8,   8,   5,   4,   4,   6,   4,   5,   4,   9,   4,   4,
       7,   3,   4,   5,   7,   5,   6,   8,   6,   8,   7,  10,   7,
       9,   5,   8,   4,  10,   2,   3,   9,   5,   3,   5,   5,   7,
      12,   4,   3,   4,   4,   3,   5,   6,  13,   2,   2,   8,  14,
       9,   9,   2,   7,   7,   7,   4,   6,   4,   7,   7,   7,   4,
       6,  12,   4,   5,   5,   7,   4,   8,   3,   3,   7,   3,   4,
      10,   2,   9,   8,   3,   7,   6,   6,   5,   9,  12,  12,  17,
       4,   9,   7,  12,   7,   4,   5,   8,   2,   3,   5,   7,   6,
       4,   5,   4,   4,   5,   8,   6,   5,  13,   9,  10,   9,   3,
       5,   9,   3,   7,  12,   3,   6,   4,   7,   7,
  };
  static const unsigned short int V83aOffset[140] = {
       0,   2,   7,  10,  12,  13,  13,  18,  21,  27,  31,  33,  35,
      43,  47,  54,  61,  65,  68,  70,  75,  79,  80,  80,  88,  91,
      95,  95,  98, 101, 106, 111, 116, 119, 124, 129, 134, 140, 149,
     155, 163, 167, 173, 177, 184, 184, 184, 193, 195, 195, 199, 204,
     209, 217, 220, 222, 225, 227, 229, 233, 239, 243, 250, 251, 258,
     258, 271, 275, 279, 286, 292, 298, 301, 306, 309, 316, 321, 328,
     331, 337, 349, 351, 356, 361, 368, 372, 380, 382, 382, 389, 391,
     395, 395, 396, 404, 412, 415, 422, 428, 434, 438, 447, 459, 459,
     467, 467, 475, 482, 494, 501, 504, 509, 517, 518, 521, 526, 533,
     539, 543, 544, 548, 551, 556, 564, 570, 575, 588, 597, 607, 610,
     616, 620, 625, 629, 636, 648, 651, 657, 661, 668,
  };
  int h, i;
  if( n<2 ) return 0;
  h = ((charMap(z[0])*4) ^
      (charMap(z[n-1])*3) ^
      n) % 126;
  for(i=((int)V83aHash[h])-1; i>=0; i=((int)V83aNext[i])-1){
    if( V83aLen[i]==n && casecmp(&V83zText[V83aOffset[i]],z,n)==0 ){
      return 1;
    }
  }
  return 0;
}

static gboolean
V83is_keyword (const char *z)
{
	return V83keywordCode(z, strlen (z));
}

/* file contains automatically generated code, DO NOT MODIFY *
 *
 * The code in this file implements a function that determines whether
 * or not a given identifier is really an SQL keyword.  The same thing
 * might be implemented more directly using a hand-written hash table.
 * But by using this automatically generated code, the size of the code
 * is substantially reduced.  This is important for embedded applications
 * on platforms with limited memory.
 *
 * This code has been copied from SQLite's mkkeywordhash.c file and modified.
 * to read the SQL keywords from a file instead of static ones
 */

/* Parsed keywords
 *
 * From line: all
 * KEYWORD: 'all'
 *
 * From line: analyse
 * KEYWORD: 'analyse'
 *
 * From line: analyze
 * KEYWORD: 'analyze'
 *
 * From line: and
 * KEYWORD: 'and'
 *
 * From line: any
 * KEYWORD: 'any'
 *
 * From line: array
 * KEYWORD: 'array'
 *
 * From line: as
 * KEYWORD: 'as'
 *
 * From line: asc
 * KEYWORD: 'asc'
 *
 * From line: asymmetric
 * KEYWORD: 'asymmetric'
 *
 * From line: authorization
 * KEYWORD: 'authorization'
 *
 * From line: between
 * KEYWORD: 'between'
 *
 * From line: bigint
 * KEYWORD: 'bigint'
 *
 * From line: binary
 * KEYWORD: 'binary'
 *
 * From line: bit
 * KEYWORD: 'bit'
 *
 * From line: boolean
 * KEYWORD: 'boolean'
 *
 * From line: both
 * KEYWORD: 'both'
 *
 * From line: case
 * KEYWORD: 'case'
 *
 * From line: cast
 * KEYWORD: 'cast'
 *
 * From line: char
 * KEYWORD: 'char'
 *
 * From line: character
 * KEYWORD: 'character'
 *
 * From line: check
 * KEYWORD: 'check'
 *
 * From line: coalesce
 * KEYWORD: 'coalesce'
 *
 * From line: collate
 * KEYWORD: 'collate'
 *
 * From line: column
 * KEYWORD: 'column'
 *
 * From line: constraint
 * KEYWORD: 'constraint'
 *
 * From line: create
 * KEYWORD: 'create'
 *
 * From line: cross
 * KEYWORD: 'cross'
 *
 * From line: current_catalog
 * KEYWORD: 'current_catalog'
 *
 * From line: current_date
 * KEYWORD: 'current_date'
 *
 * From line: current_role
 * KEYWORD: 'current_role'
 *
 * From line: current_schema
 * KEYWORD: 'current_schema'
 *
 * From line: current_time
 * KEYWORD: 'current_time'
 *
 * From line: current_timestamp
 * KEYWORD: 'current_timestamp'
 *
 * From line: current_user
 * KEYWORD: 'current_user'
 *
 * From line: dec
 * KEYWORD: 'dec'
 *
 * From line: decimal
 * KEYWORD: 'decimal'
 *
 * From line: default
 * KEYWORD: 'default'
 *
 * From line: deferrable
 * KEYWORD: 'deferrable'
 *
 * From line: desc
 * KEYWORD: 'desc'
 *
 * From line: distinct
 * KEYWORD: 'distinct'
 *
 * From line: do
 * KEYWORD: 'do'
 *
 * From line: else
 * KEYWORD: 'else'
 *
 * From line: end
 * KEYWORD: 'end'
 *
 * From line: except
 * KEYWORD: 'except'
 *
 * From line: exists
 * KEYWORD: 'exists'
 *
 * From line: extract
 * KEYWORD: 'extract'
 *
 * From line: false
 * KEYWORD: 'false'
 *
 * From line: fetch
 * KEYWORD: 'fetch'
 *
 * From line: float
 * KEYWORD: 'float'
 *
 * From line: for
 * KEYWORD: 'for'
 *
 * From line: foreign
 * KEYWORD: 'foreign'
 *
 * From line: freeze
 * KEYWORD: 'freeze'
 *
 * From line: from
 * KEYWORD: 'from'
 *
 * From line: full
 * KEYWORD: 'full'
 *
 * From line: grant
 * KEYWORD: 'grant'
 *
 * From line: greatest
 * KEYWORD: 'greatest'
 *
 * From line: group
 * KEYWORD: 'group'
 *
 * From line: having
 * KEYWORD: 'having'
 *
 * From line: ilike
 * KEYWORD: 'ilike'
 *
 * From line: in
 * KEYWORD: 'in'
 *
 * From line: initially
 * KEYWORD: 'initially'
 *
 * From line: inner
 * KEYWORD: 'inner'
 *
 * From line: inout
 * KEYWORD: 'inout'
 *
 * From line: int
 * KEYWORD: 'int'
 *
 * From line: integer
 * KEYWORD: 'integer'
 *
 * From line: intersect
 * KEYWORD: 'intersect'
 *
 * From line: interval
 * KEYWORD: 'interval'
 *
 * From line: into
 * KEYWORD: 'into'
 *
 * From line: is
 * KEYWORD: 'is'
 *
 * From line: isnull
 * KEYWORD: 'isnull'
 *
 * From line: join
 * KEYWORD: 'join'
 *
 * From line: leading
 * KEYWORD: 'leading'
 *
 * From line: least
 * KEYWORD: 'least'
 *
 * From line: left
 * KEYWORD: 'left'
 *
 * From line: like
 * KEYWORD: 'like'
 *
 * From line: limit
 * KEYWORD: 'limit'
 *
 * From line: localtime
 * KEYWORD: 'localtime'
 *
 * From line: localtimestamp
 * KEYWORD: 'localtimestamp'
 *
 * From line: national
 * KEYWORD: 'national'
 *
 * From line: natural
 * KEYWORD: 'natural'
 *
 * From line: nchar
 * KEYWORD: 'nchar'
 *
 * From line: new
 * KEYWORD: 'new'
 *
 * From line: none
 * KEYWORD: 'none'
 *
 * From line: not
 * KEYWORD: 'not'
 *
 * From line: notnull
 * KEYWORD: 'notnull'
 *
 * From line: null
 * KEYWORD: 'null'
 *
 * From line: nullif
 * KEYWORD: 'nullif'
 *
 * From line: numeric
 * KEYWORD: 'numeric'
 *
 * From line: off
 * KEYWORD: 'off'
 *
 * From line: offset
 * KEYWORD: 'offset'
 *
 * From line: old
 * KEYWORD: 'old'
 *
 * From line: on
 * KEYWORD: 'on'
 *
 * From line: only
 * KEYWORD: 'only'
 *
 * From line: or
 * KEYWORD: 'or'
 *
 * From line: order
 * KEYWORD: 'order'
 *
 * From line: out
 * KEYWORD: 'out'
 *
 * From line: outer
 * KEYWORD: 'outer'
 *
 * From line: over
 * KEYWORD: 'over'
 *
 * From line: overlaps
 * KEYWORD: 'overlaps'
 *
 * From line: overlay
 * KEYWORD: 'overlay'
 *
 * From line: placing
 * KEYWORD: 'placing'
 *
 * From line: position
 * KEYWORD: 'position'
 *
 * From line: precision
 * KEYWORD: 'precision'
 *
 * From line: primary
 * KEYWORD: 'primary'
 *
 * From line: real
 * KEYWORD: 'real'
 *
 * From line: references
 * KEYWORD: 'references'
 *
 * From line: returning
 * KEYWORD: 'returning'
 *
 * From line: right
 * KEYWORD: 'right'
 *
 * From line: row
 * KEYWORD: 'row'
 *
 * From line: select
 * KEYWORD: 'select'
 *
 * From line: session_user
 * KEYWORD: 'session_user'
 *
 * From line: setof
 * KEYWORD: 'setof'
 *
 * From line: similar
 * KEYWORD: 'similar'
 *
 * From line: smallint
 * KEYWORD: 'smallint'
 *
 * From line: some
 * KEYWORD: 'some'
 *
 * From line: substring
 * KEYWORD: 'substring'
 *
 * From line: symmetric
 * KEYWORD: 'symmetric'
 *
 * From line: table
 * KEYWORD: 'table'
 *
 * From line: then
 * KEYWORD: 'then'
 *
 * From line: time
 * KEYWORD: 'time'
 *
 * From line: timestamp
 * KEYWORD: 'timestamp'
 *
 * From line: to
 * KEYWORD: 'to'
 *
 * From line: trailing
 * KEYWORD: 'trailing'
 *
 * From line: treat
 * KEYWORD: 'treat'
 *
 * From line: trim
 * KEYWORD: 'trim'
 *
 * From line: true
 * KEYWORD: 'true'
 *
 * From line: union
 * KEYWORD: 'union'
 *
 * From line: unique
 * KEYWORD: 'unique'
 *
 * From line: user
 * KEYWORD: 'user'
 *
 * From line: using
 * KEYWORD: 'using'
 *
 * From line: values
 * KEYWORD: 'values'
 *
 * From line: varchar
 * KEYWORD: 'varchar'
 *
 * From line: variadic
 * KEYWORD: 'variadic'
 *
 * From line: verbose
 * KEYWORD: 'verbose'
 *
 * From line: when
 * KEYWORD: 'when'
 *
 * From line: where
 * KEYWORD: 'where'
 *
 * From line: window
 * KEYWORD: 'window'
 *
 * From line: with
 * KEYWORD: 'with'
 *
 * From line: xmlattributes
 * KEYWORD: 'xmlattributes'
 *
 * From line: xmlconcat
 * KEYWORD: 'xmlconcat'
 *
 * From line: xmlelement
 * KEYWORD: 'xmlelement'
 *
 * From line: xmlforest
 * KEYWORD: 'xmlforest'
 *
 * From line: xmlparse
 * KEYWORD: 'xmlparse'
 *
 * From line: xmlpi
 * KEYWORD: 'xmlpi'
 *
 * From line: xmlroot
 * KEYWORD: 'xmlroot'
 *
 * From line: xmlserialize
 * KEYWORD: 'xmlserialize'
 */
/* Hash score: 301 */
static int V84keywordCode(const char *z, int n){
  /* zText[] encodes 1057 bytes of keywords in 721 bytes */
  /*   isnullifalsetoffsetableadingranthendeferrableastrailingreatest     */
  /*   reatruelselectrimncharacterealeftnotnullimitvarcharraybigint       */
  /*   ervaluesmallintegereferencesimilareturningroupositionly            */
  /*   constraintersectinouterightanalysession_userowhenonewherexcept     */
  /*   authorizationationalocaltimestamprecisionaturalbetweenumeric       */
  /*   asexistsomextractbooleanalyzebothavingcurrent_rolefetcheckjoin     */
  /*   nerunionverbosewithxmlparseandecimalascastasymmetricoalescebit     */
  /*   collatecolumncreatecrossubstringcurrent_catalogcurrent_date        */
  /*   current_schemanycurrent_timestamplacingcurrent_userdefaultdesc     */
  /*   distinctfloatforeignfreezefullilikeintoldorderoverlapsunique       */
  /*   usingvariadicwindowxmlattributesxmlconcatxmlelementxmlforest       */
  /*   xmlpinitiallyxmlrootxmlserializebinaryfromoverlayprimary           */
  static const char V84zText[720] = {
    'i','s','n','u','l','l','i','f','a','l','s','e','t','o','f','f','s','e',
    't','a','b','l','e','a','d','i','n','g','r','a','n','t','h','e','n','d',
    'e','f','e','r','r','a','b','l','e','a','s','t','r','a','i','l','i','n',
    'g','r','e','a','t','e','s','t','r','e','a','t','r','u','e','l','s','e',
    'l','e','c','t','r','i','m','n','c','h','a','r','a','c','t','e','r','e',
    'a','l','e','f','t','n','o','t','n','u','l','l','i','m','i','t','v','a',
    'r','c','h','a','r','r','a','y','b','i','g','i','n','t','e','r','v','a',
    'l','u','e','s','m','a','l','l','i','n','t','e','g','e','r','e','f','e',
    'r','e','n','c','e','s','i','m','i','l','a','r','e','t','u','r','n','i',
    'n','g','r','o','u','p','o','s','i','t','i','o','n','l','y','c','o','n',
    's','t','r','a','i','n','t','e','r','s','e','c','t','i','n','o','u','t',
    'e','r','i','g','h','t','a','n','a','l','y','s','e','s','s','i','o','n',
    '_','u','s','e','r','o','w','h','e','n','o','n','e','w','h','e','r','e',
    'x','c','e','p','t','a','u','t','h','o','r','i','z','a','t','i','o','n',
    'a','t','i','o','n','a','l','o','c','a','l','t','i','m','e','s','t','a',
    'm','p','r','e','c','i','s','i','o','n','a','t','u','r','a','l','b','e',
    't','w','e','e','n','u','m','e','r','i','c','a','s','e','x','i','s','t',
    's','o','m','e','x','t','r','a','c','t','b','o','o','l','e','a','n','a',
    'l','y','z','e','b','o','t','h','a','v','i','n','g','c','u','r','r','e',
    'n','t','_','r','o','l','e','f','e','t','c','h','e','c','k','j','o','i',
    'n','n','e','r','u','n','i','o','n','v','e','r','b','o','s','e','w','i',
    't','h','x','m','l','p','a','r','s','e','a','n','d','e','c','i','m','a',
    'l','a','s','c','a','s','t','a','s','y','m','m','e','t','r','i','c','o',
    'a','l','e','s','c','e','b','i','t','c','o','l','l','a','t','e','c','o',
    'l','u','m','n','c','r','e','a','t','e','c','r','o','s','s','u','b','s',
    't','r','i','n','g','c','u','r','r','e','n','t','_','c','a','t','a','l',
    'o','g','c','u','r','r','e','n','t','_','d','a','t','e','c','u','r','r',
    'e','n','t','_','s','c','h','e','m','a','n','y','c','u','r','r','e','n',
    't','_','t','i','m','e','s','t','a','m','p','l','a','c','i','n','g','c',
    'u','r','r','e','n','t','_','u','s','e','r','d','e','f','a','u','l','t',
    'd','e','s','c','d','i','s','t','i','n','c','t','f','l','o','a','t','f',
    'o','r','e','i','g','n','f','r','e','e','z','e','f','u','l','l','i','l',
    'i','k','e','i','n','t','o','l','d','o','r','d','e','r','o','v','e','r',
    'l','a','p','s','u','n','i','q','u','e','u','s','i','n','g','v','a','r',
    'i','a','d','i','c','w','i','n','d','o','w','x','m','l','a','t','t','r',
    'i','b','u','t','e','s','x','m','l','c','o','n','c','a','t','x','m','l',
    'e','l','e','m','e','n','t','x','m','l','f','o','r','e','s','t','x','m',
    'l','p','i','n','i','t','i','a','l','l','y','x','m','l','r','o','o','t',
    'x','m','l','s','e','r','i','a','l','i','z','e','b','i','n','a','r','y',
    'f','r','o','m','o','v','e','r','l','a','y','p','r','i','m','a','r','y',
  };
  static const unsigned int V84aHash[126] = {
     0, 128, 0, 68, 42, 67, 0, 0, 54, 35, 25, 111, 0,
     0, 2, 6, 121, 0, 0, 51, 56, 124, 0, 0, 71, 0,
     36, 0, 0, 122, 0, 39, 11, 5, 0, 106, 0, 0, 99,
     101, 0, 94, 0, 0, 0, 97, 146, 0, 92, 108, 0, 119,
     3, 0, 133, 136, 135, 0, 0, 0, 91, 141, 0, 115, 0,
     131, 100, 117, 0, 142, 116, 76, 139, 88, 82, 41, 0, 114,
     0, 137, 60, 75, 145, 0, 33, 90, 93, 118, 113, 98, 120,
     0, 44, 144, 0, 0, 138, 132, 87, 0, 0, 50, 129, 143,
     83, 74, 62, 30, 32, 22, 107, 126, 127, 125, 103, 47, 112,
     0, 64, 37, 59, 84, 29, 130, 8, 110,
  };
  static const unsigned int V84aNext[146] = {
       0,   0,   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   4,   0,   0,   0,   0,   0,   0,   0,   0,
      18,   0,   0,  14,  17,   0,   0,  26,   0,   0,   0,   0,   0,
       0,   0,   9,  23,   0,  27,   0,   0,   0,   0,   0,   0,   0,
      20,   0,   0,   0,  21,  24,   0,   0,   0,  34,  40,  63,   0,
      53,   0,   0,  45,  10,  66,   0,   0,  28,   0,  70,  52,   0,
      57,   0,   0,  16,   7,   0,  38,   0,   0,   0,   0,  43,   0,
      55,   0,  72,   0,  46,  89,   0,   0,   0,  81,   0,  86,   0,
      80,   0,  96, 105,   0,  69,  31,   0,   0,  73,   0,   0,   0,
       0,   0,   0,   0,  85,  15,  79,  49, 123,  65,  48,   0,   0,
      19,  95,  78,  13, 104, 134, 109,  58,   0,  61,  12, 140,   0,
       0, 102,  77,
  };
  static const unsigned char V84aLen[146] = {
       6,   6,   5,   5,   2,   3,   6,   5,   7,   5,   4,   3,  10,
       5,   8,   8,   5,   4,   4,   6,   4,   5,   9,   4,   4,   4,
       7,   3,   4,   5,   7,   5,   6,   8,   6,   8,   7,  10,   7,
       9,   5,   8,   4,  10,   3,   2,   9,   5,   5,   3,   5,   7,
      12,   4,   3,   4,   4,   3,   5,   6,  13,   2,   2,   8,  14,
       9,   9,   2,   7,   7,   7,   4,   6,   4,   7,   7,   7,   4,
       6,  12,   5,   5,   4,   5,   5,   7,   4,   8,   3,   7,   3,
       3,   4,  10,   2,   9,   8,   3,   7,   6,   6,   5,   9,  15,
      12,  14,   3,  12,  17,   4,   9,   7,  12,   7,   4,   8,   5,
       7,   6,   4,   5,   4,   4,   3,   5,   8,   4,   6,   5,   8,
       6,   2,  13,   9,  10,   9,   3,   5,   9,   3,   7,  12,   6,
       4,   7,   7,
  };
  static const unsigned short int V84aOffset[146] = {
       0,   2,   7,  10,  12,  13,  13,  18,  21,  27,  31,  33,  35,
      43,  47,  54,  61,  65,  68,  70,  75,  79,  80,  80,  88,  91,
      95,  95,  98, 101, 106, 111, 116, 119, 124, 129, 134, 140, 149,
     155, 163, 167, 173, 177, 184, 184, 184, 193, 195, 195, 199, 204,
     209, 217, 220, 222, 225, 227, 229, 233, 239, 243, 250, 251, 258,
     258, 271, 275, 279, 286, 292, 298, 301, 306, 309, 316, 321, 328,
     331, 337, 349, 352, 357, 359, 364, 369, 376, 380, 388, 390, 390,
     397, 399, 403, 403, 404, 412, 420, 423, 430, 436, 442, 446, 455,
     470, 482, 495, 498, 498, 506, 506, 514, 521, 533, 540, 544, 552,
     557, 564, 570, 574, 575, 579, 582, 585, 590, 590, 598, 604, 609,
     617, 620, 623, 636, 645, 655, 658, 664, 668, 673, 677, 684, 696,
     702, 706, 713,
  };
  int h, i;
  if( n<2 ) return 0;
  h = ((charMap(z[0])*4) ^
      (charMap(z[n-1])*3) ^
      n) % 126;
  for(i=((int)V84aHash[h])-1; i>=0; i=((int)V84aNext[i])-1){
    if( V84aLen[i]==n && casecmp(&V84zText[V84aOffset[i]],z,n)==0 ){
      return 1;
    }
  }
  return 0;
}

static gboolean
V84is_keyword (const char *z)
{
	return V84keywordCode(z, strlen (z));
}

