Class: CrossPlane::Analyzer

Inherits:
Object
  • Object
show all
Defined in:
lib/crossplane/analyzer.rb

Constant Summary collapse

NGX_CONF_NOARGS =

bit masks for different directive argument styles

0x00000001
NGX_CONF_TAKE1 =

0 args

0x00000002
NGX_CONF_TAKE2 =

1 args

0x00000004
NGX_CONF_TAKE3 =

2 args

0x00000008
NGX_CONF_TAKE4 =

3 args

0x00000010
NGX_CONF_TAKE5 =

4 args

0x00000020
NGX_CONF_TAKE6 =

5 args

0x00000040
NGX_CONF_TAKE7 =

6 args

0x00000080
NGX_CONF_BLOCK =

7 args

0x00000100
NGX_CONF_FLAG =

followed by block

0x00000200
NGX_CONF_ANY =

‘on’ or ‘off’

0x00000400
NGX_CONF_1MORE =

>=0 args

0x00000800
NGX_CONF_2MORE =

>=1 args

0x00001000
NGX_CONF_TAKE12 =

some helpful argument style aliases

(NGX_CONF_TAKE1 + NGX_CONF_TAKE2)
NGX_CONF_TAKE13 =
(NGX_CONF_TAKE1 + NGX_CONF_TAKE3)
NGX_CONF_TAKE23 =
(NGX_CONF_TAKE2 + NGX_CONF_TAKE3)
NGX_CONF_TAKE123 =
(NGX_CONF_TAKE12 + NGX_CONF_TAKE3)
NGX_CONF_TAKE1234 =
(NGX_CONF_TAKE123 + NGX_CONF_TAKE4)
NGX_DIRECT_CONF =

bit masks for different directive locations

0x00010000
NGX_MAIN_CONF =

main file (not used)

0x00040000
NGX_EVENT_CONF =

main context

0x00080000
NGX_MAIL_MAIN_CONF =

events

0x00100000
NGX_MAIL_SRV_CONF =

mail

0x00200000
NGX_STREAM_MAIN_CONF =

mail > server

0x00400000
NGX_STREAM_SRV_CONF =

stream

0x00800000
NGX_STREAM_UPS_CONF =

stream > server

0x01000000
NGX_HTTP_MAIN_CONF =

stream > upstream

0x02000000
NGX_HTTP_SRV_CONF =

http

0x04000000
NGX_HTTP_LOC_CONF =

http > server

0x08000000
NGX_HTTP_UPS_CONF =

http > location

0x10000000
NGX_HTTP_SIF_CONF =

http > upstream

0x20000000
NGX_HTTP_LIF_CONF =

http > server > if

0x40000000
NGX_HTTP_LMT_CONF =

http > location > if

0x80000000
NGX_ANY_CONF =

http > location > limit_except

(
  NGX_MAIN_CONF + NGX_EVENT_CONF + NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF +
  NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_STREAM_UPS_CONF +
  NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_UPS_CONF
)
DIRECTIVES =
{
  'absolute_redirect' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'accept_mutex' => [
    NGX_EVENT_CONF + NGX_CONF_FLAG
  ],
  'accept_mutex_delay' => [
    NGX_EVENT_CONF + NGX_CONF_TAKE1
  ],
  'access_log' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_HTTP_LMT_CONF + NGX_CONF_1MORE,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_1MORE
  ],
  'add_after_body' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'add_before_body' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'add_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE23
  ],
  'add_trailer' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE23
  ],
  'addition_types' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'aio' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'aio_write' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'alias' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'allow' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LMT_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ancient_browser' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'ancient_browser_value' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'auth_basic' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LMT_CONF + NGX_CONF_TAKE1
  ],
  'auth_basic_user_file' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LMT_CONF + NGX_CONF_TAKE1
  ],
  'auth_http' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1
  ],
  'auth_http_header' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE2
  ],
  'auth_http_pass_client_cert' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_FLAG
  ],
  'auth_http_timeout' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1
  ],
  'auth_request' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'auth_request_set' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'autoindex' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'autoindex_exact_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'autoindex_format' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'autoindex_localtime' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'break' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_SIF_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_NOARGS
  ],
  'charset' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE1
  ],
  'charset_map' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE2
  ],
  'charset_types' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'chunked_transfer_encoding' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'client_body_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'client_body_in_file_only' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'client_body_in_single_buffer' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'client_body_temp_path' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1234
  ],
  'client_body_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'client_header_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'client_header_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'client_max_body_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'connection_pool_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'create_full_put_path' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'daemon' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_FLAG
  ],
  'dav_access' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE123
  ],
  'dav_methods' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'debug_connection' => [
    NGX_EVENT_CONF + NGX_CONF_TAKE1
  ],
  'debug_points' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'default_type' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'deny' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LMT_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'directio' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'directio_alignment' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'disable_symlinks' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'empty_gif' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_NOARGS
  ],
  'env' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'error_log' => [
    NGX_MAIN_CONF + NGX_CONF_1MORE,
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_1MORE,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_1MORE
  ],
  'error_page' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_2MORE
  ],
  'etag' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'events' => [
    NGX_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_NOARGS
  ],
  'expires' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE12
  ],
  'fastcgi_bind' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'fastcgi_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_buffering' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_buffers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'fastcgi_busy_buffers_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_cache_background_update' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_cache_bypass' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'fastcgi_cache_key' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_cache_lock' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_cache_lock_age' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_cache_lock_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_cache_max_range_offset' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_cache_methods' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'fastcgi_cache_min_uses' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_cache_path' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_2MORE
  ],
  'fastcgi_cache_revalidate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_cache_use_stale' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'fastcgi_cache_valid' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'fastcgi_catch_stderr' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_connect_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_force_ranges' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_hide_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_ignore_client_abort' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_ignore_headers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'fastcgi_index' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_intercept_errors' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_keep_conn' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_limit_rate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_max_temp_file_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_next_upstream' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'fastcgi_next_upstream_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_next_upstream_tries' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_no_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'fastcgi_param' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE23
  ],
  'fastcgi_pass' => [
    NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_pass_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_pass_request_body' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_pass_request_headers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_read_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_request_buffering' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'fastcgi_send_lowat' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_send_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_split_path_info' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_store' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_store_access' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE123
  ],
  'fastcgi_temp_file_write_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_temp_path' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1234
  ],
  'flv' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_NOARGS
  ],
  'geo' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE12,
    NGX_STREAM_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE12
  ],
  'geoip_city' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE12,
    NGX_STREAM_MAIN_CONF + NGX_CONF_TAKE12
  ],
  'geoip_country' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE12,
    NGX_STREAM_MAIN_CONF + NGX_CONF_TAKE12
  ],
  'geoip_org' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE12,
    NGX_STREAM_MAIN_CONF + NGX_CONF_TAKE12
  ],
  'geoip_proxy' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'geoip_proxy_recursive' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_FLAG
  ],
  'google_perftools_profiles' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'gunzip' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'gunzip_buffers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'gzip' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_FLAG
  ],
  'gzip_buffers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'gzip_comp_level' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'gzip_disable' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'gzip_http_version' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'gzip_min_length' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'gzip_proxied' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'gzip_static' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'gzip_types' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'gzip_vary' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'hash' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_TAKE12,
    NGX_STREAM_UPS_CONF + NGX_CONF_TAKE12
  ],
  'http' => [
    NGX_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_NOARGS
  ],
  'http2_body_preread_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'http2_chunk_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'http2_idle_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'http2_max_concurrent_streams' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'http2_max_field_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'http2_max_header_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'http2_max_requests' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'http2_recv_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'http2_recv_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'if' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_BLOCK + NGX_CONF_1MORE
  ],
  'if_modified_since' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'ignore_invalid_headers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_FLAG
  ],
  'image_filter' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_TAKE123
  ],
  'image_filter_buffer' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'image_filter_interlace' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'image_filter_jpeg_quality' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'image_filter_sharpen' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'image_filter_transparency' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'image_filter_webp_quality' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'imap_auth' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_1MORE
  ],
  'imap_capabilities' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_1MORE
  ],
  'imap_client_buffer' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1
  ],
  'include' => [
    NGX_ANY_CONF + NGX_CONF_TAKE1
  ],
  'index' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'internal' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_NOARGS
  ],
  'ip_hash' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_NOARGS
  ],
  'keepalive' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_TAKE1
  ],
  'keepalive_disable' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'keepalive_requests' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'keepalive_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'large_client_header_buffers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE2
  ],
  'least_conn' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_NOARGS,
    NGX_STREAM_UPS_CONF + NGX_CONF_NOARGS
  ],
  'limit_conn' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE2
  ],
  'limit_conn_log_level' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'limit_conn_status' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'limit_conn_zone' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE2,
    NGX_STREAM_MAIN_CONF + NGX_CONF_TAKE2
  ],
  'limit_except' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_BLOCK + NGX_CONF_1MORE
  ],
  'limit_rate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE1
  ],
  'limit_rate_after' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE1
  ],
  'limit_req' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE123
  ],
  'limit_req_log_level' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'limit_req_status' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'limit_req_zone' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE3
  ],
  'lingering_close' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'lingering_time' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'lingering_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'listen' => [
    NGX_HTTP_SRV_CONF + NGX_CONF_1MORE,
    NGX_MAIL_SRV_CONF + NGX_CONF_1MORE,
    NGX_STREAM_SRV_CONF + NGX_CONF_1MORE
  ],
  'load_module' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'location' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE12
  ],
  'lock_file' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'log_format' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_2MORE,
    NGX_STREAM_MAIN_CONF + NGX_CONF_2MORE
  ],
  'log_not_found' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'log_subrequest' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'mail' => [
    NGX_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_NOARGS
  ],
  'map' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE2,
    NGX_STREAM_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE2
  ],
  'map_hash_bucket_size' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'map_hash_max_size' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'master_process' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_FLAG
  ],
  'max_ranges' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'memcached_bind' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'memcached_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'memcached_connect_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'memcached_gzip_flag' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'memcached_next_upstream' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'memcached_next_upstream_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'memcached_next_upstream_tries' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'memcached_pass' => [
    NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE1
  ],
  'memcached_read_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'memcached_send_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'merge_slashes' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_FLAG
  ],
  'min_delete_depth' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'mirror' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'mirror_request_body' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'modern_browser' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'modern_browser_value' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'mp4' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_NOARGS
  ],
  'mp4_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'mp4_max_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'msie_padding' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'msie_refresh' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'multi_accept' => [
    NGX_EVENT_CONF + NGX_CONF_FLAG
  ],
  'open_file_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'open_file_cache_errors' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'open_file_cache_min_uses' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'open_file_cache_valid' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'open_log_file_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1234,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1234
  ],
  'output_buffers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'override_charset' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_FLAG
  ],
  'pcre_jit' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_FLAG
  ],
  'perl' => [
    NGX_HTTP_LOC_CONF + NGX_HTTP_LMT_CONF + NGX_CONF_TAKE1
  ],
  'perl_modules' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'perl_require' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'perl_set' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE2
  ],
  'pid' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'pop3_auth' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_1MORE
  ],
  'pop3_capabilities' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_1MORE
  ],
  'port_in_redirect' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'postpone_output' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'preread_buffer_size' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'preread_timeout' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'protocol' => [
    NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_bind' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE12
  ],
  'proxy_buffer' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_buffering' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_buffers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'proxy_busy_buffers_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_cache_background_update' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_cache_bypass' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'proxy_cache_convert_head' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_cache_key' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_cache_lock' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_cache_lock_age' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_cache_lock_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_cache_max_range_offset' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_cache_methods' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'proxy_cache_min_uses' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_cache_path' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_2MORE
  ],
  'proxy_cache_revalidate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_cache_use_stale' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'proxy_cache_valid' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'proxy_connect_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_cookie_domain' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'proxy_cookie_path' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'proxy_download_rate' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_force_ranges' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_headers_hash_bucket_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_headers_hash_max_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_hide_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_http_version' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_ignore_client_abort' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_ignore_headers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'proxy_intercept_errors' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_limit_rate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_max_temp_file_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_method' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_next_upstream' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_FLAG
  ],
  'proxy_next_upstream_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_next_upstream_tries' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_no_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'proxy_pass' => [
    NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_HTTP_LMT_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_pass_error_message' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_FLAG
  ],
  'proxy_pass_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_pass_request_body' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_pass_request_headers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_protocol' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_FLAG
  ],
  'proxy_protocol_timeout' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_read_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_redirect' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'proxy_request_buffering' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'proxy_responses' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_send_lowat' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_send_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_set_body' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_set_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'proxy_ssl' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_FLAG
  ],
  'proxy_ssl_certificate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_ssl_certificate_key' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_ssl_ciphers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_ssl_crl' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_ssl_name' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_ssl_password_file' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_ssl_protocols' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_1MORE
  ],
  'proxy_ssl_server_name' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_FLAG
  ],
  'proxy_ssl_session_reuse' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_FLAG
  ],
  'proxy_ssl_trusted_certificate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_ssl_verify' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_FLAG
  ],
  'proxy_ssl_verify_depth' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_store' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_store_access' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE123
  ],
  'proxy_temp_file_write_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'proxy_temp_path' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1234
  ],
  'proxy_timeout' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'proxy_upload_rate' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'random_index' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'read_ahead' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'real_ip_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'real_ip_recursive' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'recursive_error_pages' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'referer_hash_bucket_size' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'referer_hash_max_size' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'request_pool_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'reset_timedout_connection' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'resolver' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_1MORE,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_1MORE
  ],
  'resolver_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'return' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_SIF_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE12,
    NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'rewrite' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_SIF_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE23
  ],
  'rewrite_log' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_SIF_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_FLAG
  ],
  'root' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE1
  ],
  'satisfy' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_bind' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'scgi_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_buffering' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'scgi_buffers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'scgi_busy_buffers_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_cache_background_update' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'scgi_cache_bypass' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'scgi_cache_key' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_cache_lock' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'scgi_cache_lock_age' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_cache_lock_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_cache_max_range_offset' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_cache_methods' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'scgi_cache_min_uses' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_cache_path' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_2MORE
  ],
  'scgi_cache_revalidate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'scgi_cache_use_stale' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'scgi_cache_valid' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'scgi_connect_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_force_ranges' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'scgi_hide_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_ignore_client_abort' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'scgi_ignore_headers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'scgi_intercept_errors' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'scgi_limit_rate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_max_temp_file_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_next_upstream' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'scgi_next_upstream_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_next_upstream_tries' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_no_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'scgi_param' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE23
  ],
  'scgi_pass' => [
    NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE1
  ],
  'scgi_pass_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_pass_request_body' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'scgi_pass_request_headers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'scgi_read_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_request_buffering' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'scgi_send_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_store' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_store_access' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE123
  ],
  'scgi_temp_file_write_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'scgi_temp_path' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1234
  ],
  'secure_link' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'secure_link_md5' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'secure_link_secret' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'send_lowat' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'send_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'sendfile' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_FLAG
  ],
  'sendfile_max_chunk' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'server' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_NOARGS,
    NGX_HTTP_UPS_CONF + NGX_CONF_1MORE,
    NGX_MAIL_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_NOARGS,
    NGX_STREAM_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_NOARGS,
    NGX_STREAM_UPS_CONF + NGX_CONF_1MORE
  ],
  'server_name' => [
    NGX_HTTP_SRV_CONF + NGX_CONF_1MORE,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1
  ],
  'server_name_in_redirect' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'server_names_hash_bucket_size' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'server_names_hash_max_size' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'server_tokens' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'set' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_SIF_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE2
  ],
  'set_real_ip_from' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'slice' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'smtp_auth' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_1MORE
  ],
  'smtp_capabilities' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_1MORE
  ],
  'source_charset' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE1
  ],
  'spdy_chunk_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'spdy_headers_comp' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'split_clients' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE2,
    NGX_STREAM_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE2
  ],
  'ssi' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_FLAG
  ],
  'ssi_last_modified' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'ssi_min_file_chunk' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'ssi_silent_errors' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'ssi_types' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'ssi_value_length' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'ssl' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_FLAG,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_FLAG
  ],
  'ssl_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_certificate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_certificate_key' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_ciphers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_client_certificate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_crl' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_dhparam' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_ecdh_curve' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_engine' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'ssl_handshake_timeout' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_password_file' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_prefer_server_ciphers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_FLAG,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_FLAG,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_FLAG
  ],
  'ssl_preread' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_FLAG
  ],
  'ssl_protocols' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_1MORE,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_1MORE,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_1MORE
  ],
  'ssl_session_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE12,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE12,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE12
  ],
  'ssl_session_ticket_key' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_session_tickets' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_FLAG,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_FLAG,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_FLAG
  ],
  'ssl_session_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_stapling' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_FLAG
  ],
  'ssl_stapling_file' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_stapling_responder' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_stapling_verify' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_FLAG
  ],
  'ssl_trusted_certificate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_verify_client' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'ssl_verify_depth' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'starttls' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1
  ],
  'stream' => [
    NGX_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_NOARGS
  ],
  'stub_status' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_NOARGS + NGX_CONF_TAKE1
  ],
  'sub_filter' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'sub_filter_last_modified' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'sub_filter_once' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'sub_filter_types' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'tcp_nodelay' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG,
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_FLAG
  ],
  'tcp_nopush' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'thread_pool' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE23
  ],
  'timeout' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_TAKE1
  ],
  'timer_resolution' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'try_files' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_2MORE
  ],
  'types' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_BLOCK + NGX_CONF_NOARGS
  ],
  'types_hash_bucket_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'types_hash_max_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'underscores_in_headers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_CONF_FLAG
  ],
  'uninitialized_variable_warn' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_SIF_CONF + NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_FLAG
  ],
  'upstream' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE1
  ],
  'use' => [
    NGX_EVENT_CONF + NGX_CONF_TAKE1
  ],
  'user' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE12
  ],
  'userid' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'userid_domain' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'userid_expires' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'userid_mark' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'userid_name' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'userid_p3p' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'userid_path' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'userid_service' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_bind' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'uwsgi_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_buffering' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_buffers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'uwsgi_busy_buffers_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_cache_background_update' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_cache_bypass' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'uwsgi_cache_key' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_cache_lock' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_cache_lock_age' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_cache_lock_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_cache_max_range_offset' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_cache_methods' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'uwsgi_cache_min_uses' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_cache_path' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_2MORE
  ],
  'uwsgi_cache_revalidate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_cache_use_stale' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'uwsgi_cache_valid' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'uwsgi_connect_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_force_ranges' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_hide_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_ignore_client_abort' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_ignore_headers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'uwsgi_intercept_errors' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_limit_rate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_max_temp_file_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_modifier1' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_modifier2' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_next_upstream' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'uwsgi_next_upstream_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_next_upstream_tries' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_no_cache' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'uwsgi_param' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE23
  ],
  'uwsgi_pass' => [
    NGX_HTTP_LOC_CONF + NGX_HTTP_LIF_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_pass_header' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_pass_request_body' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_pass_request_headers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_read_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_request_buffering' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_send_timeout' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_ssl_certificate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_ssl_certificate_key' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_ssl_ciphers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_ssl_crl' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_ssl_name' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_ssl_password_file' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_ssl_protocols' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'uwsgi_ssl_server_name' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_ssl_session_reuse' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_ssl_trusted_certificate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_ssl_verify' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'uwsgi_ssl_verify_depth' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_store' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_store_access' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE123
  ],
  'uwsgi_temp_file_write_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'uwsgi_temp_path' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1234
  ],
  'valid_referers' => [
    NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'variables_hash_bucket_size' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'variables_hash_max_size' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'worker_aio_requests' => [
    NGX_EVENT_CONF + NGX_CONF_TAKE1
  ],
  'worker_connections' => [
    NGX_EVENT_CONF + NGX_CONF_TAKE1
  ],
  'worker_cpu_affinity' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_1MORE
  ],
  'worker_priority' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'worker_processes' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'worker_rlimit_core' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'worker_rlimit_nofile' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'worker_shutdown_timeout' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'working_directory' => [
    NGX_MAIN_CONF + NGX_DIRECT_CONF + NGX_CONF_TAKE1
  ],
  'xclient' => [
    NGX_MAIL_MAIN_CONF + NGX_MAIL_SRV_CONF + NGX_CONF_FLAG
  ],
  'xml_entities' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'xslt_last_modified' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'xslt_param' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'xslt_string_param' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'xslt_stylesheet' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'xslt_types' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'zone' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_TAKE12,
    NGX_STREAM_UPS_CONF + NGX_CONF_TAKE12
  ],

  # nginx+ directives [definitions inferred from docs]
  'auth_jwt' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'auth_jwt_claim_set' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE2
  ],
  'auth_jwt_header_set' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE2
  ],
  'auth_jwt_key_file' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'f4f' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_NOARGS
  ],
  'f4f_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'fastcgi_cache_purge' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'health_check' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_ANY,
    NGX_STREAM_SRV_CONF + NGX_CONF_ANY
  ],
  'health_check_timeout' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'hls' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_NOARGS
  ],
  'hls_buffers' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE2
  ],
  'hls_forward_args' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'hls_fragment' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'hls_mp4_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'hls_mp4_max_buffer_size' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'js_access' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'js_content' => [
    NGX_HTTP_LOC_CONF + NGX_HTTP_LMT_CONF + NGX_CONF_TAKE1
  ],
  'js_filter' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'js_include' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_CONF_TAKE1
  ],
  'js_preread' => [
    NGX_STREAM_MAIN_CONF + NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'js_set' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE2,
    NGX_STREAM_MAIN_CONF + NGX_CONF_TAKE2
  ],
  'least_time' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_TAKE12,
    NGX_STREAM_UPS_CONF + NGX_CONF_TAKE12
  ],
  'limit_zone' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE3
  ],
  'match' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE1,
    NGX_STREAM_MAIN_CONF + NGX_CONF_BLOCK + NGX_CONF_TAKE1
  ],
  'memcached_force_ranges' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_FLAG
  ],
  'mp4_limit_rate' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'mp4_limit_rate_after' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'ntlm' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_NOARGS
  ],
  'proxy_cache_purge' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'queue' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_TAKE12
  ],
  'scgi_cache_purge' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ],
  'session_log' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE1
  ],
  'session_log_format' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_2MORE
  ],
  'session_log_zone' => [
    NGX_HTTP_MAIN_CONF + NGX_CONF_TAKE23 + NGX_CONF_TAKE4 + NGX_CONF_TAKE5 + NGX_CONF_TAKE6
  ],
  'state' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_UPS_CONF + NGX_CONF_TAKE1
  ],
  'status' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_NOARGS
  ],
  'status_format' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_TAKE12
  ],
  'status_zone' => [
    NGX_HTTP_SRV_CONF + NGX_CONF_TAKE1,
    NGX_STREAM_SRV_CONF + NGX_CONF_TAKE1
  ],
  'sticky' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_1MORE
  ],
  'sticky_cookie_insert' => [
    NGX_HTTP_UPS_CONF + NGX_CONF_TAKE1234
  ],
  'upstream_conf' => [
    NGX_HTTP_LOC_CONF + NGX_CONF_NOARGS
  ],
  'uwsgi_cache_purge' => [
    NGX_HTTP_MAIN_CONF + NGX_HTTP_SRV_CONF + NGX_HTTP_LOC_CONF + NGX_CONF_1MORE
  ]
}
CONTEXTS =
{
  [] => NGX_MAIN_CONF,
  ['events',] => NGX_EVENT_CONF,
  ['mail',] => NGX_MAIL_MAIN_CONF,
  ['mail', 'server'] => NGX_MAIL_SRV_CONF,
  ['stream',] => NGX_STREAM_MAIN_CONF,
  ['stream', 'server'] => NGX_STREAM_SRV_CONF,
  ['stream', 'upstream'] => NGX_STREAM_UPS_CONF,
  ['http',] => NGX_HTTP_MAIN_CONF,
  ['http', 'server'] => NGX_HTTP_SRV_CONF,
  ['http', 'location'] => NGX_HTTP_LOC_CONF,
  ['http', 'upstream'] => NGX_HTTP_UPS_CONF,
  ['http', 'server', 'if'] => NGX_HTTP_SIF_CONF,
  ['http', 'location', 'if'] => NGX_HTTP_LIF_CONF,
  ['http', 'location', 'limit_except'] => NGX_HTTP_LMT_CONF
}

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Analyzer

Returns a new instance of Analyzer.



1871
1872
1873
# File 'lib/crossplane/analyzer.rb', line 1871

def initialize(*args)
  args = args[0] || {}
end

Instance Method Details

#analyze(fname, stmt, term, ctx, strict) ⇒ Object



1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
# File 'lib/crossplane/analyzer.rb', line 1885

def analyze(fname, stmt, term, ctx, strict)
  directive = stmt['directive']
  line = stmt['line']

  # if strict and directive isn't recognized then throw error
  if strict and not DIRECTIVES[directive]
    reason = format('unknown directive "%s"', directive)
    raise CrossPlane::NgxParserDirectiveUnknownError.new(fname, line, reason)
  end

  # if we don't know where this directive is allowed and how
  # many arguments it can take then don't bother analyzing it
  if not CONTEXTS[ctx] or not DIRECTIVES[directive]
    return
  end

  args = stmt['args'] || []
  n_args = args.length

  masks = DIRECTIVES[directive]
  ctx_mask = CONTEXTS[ctx]

  # if this directive can't be used in this context then throw an error
  masks = []
  DIRECTIVES[directive].each do |mask|
    if mask & ctx_mask
      masks.push(mask)
    end
  end

  unless masks.length > 0
    reason = format('"%s" directive is not allowed here', directive)
    raise CrossPlane::NgxParserDirectiveContextError.new(fname, line, reason)
  end

  valid_flag = lambda { |x| return ['on', 'off'].include?(x.downcase) ? true : false }

  # do this in reverse because we only throw errors at the end if no masks
  # are valid, and typically the first bit mask is what the parser expects
  masks.reverse.each do |mask|
    # if the directive isn't a block but should be according to the mask
    if (mask & NGX_CONF_BLOCK > 0) and term != '{'
      reason = format('directive "%s" has no opening "{"', directive)
      next
    end

    # if the directive is a block but shouldn't be according to the mask
    if (not mask & NGX_CONF_BLOCK) and term != ';'
      reason = format('directive "%s" is not terminated by ";"', directive)
      next
    end

    # use mask to check the directive's arguments
    if ((mask >> n_args & 1 and n_args <= 7) or
      (mask & NGX_CONF_FLAG and n_args == 1 and valid_flag.call(args[0])) or
      (mask & NGX_CONF_ANY and n_args >= 0) or
      (mask & NGX_CONF_1MORE and n_args >= 1) or
      (mask & NGX_CONF_2MORE and n_args >= 2))
      return
    elsif (mask & NGX_CONF_FLAG) and (n_args == 1) and not valid_flag.call(args[0])
      reason = format('invalid value "%s" in "%%s" directive, it must be "on" or "off"', args[0], directive)
    else
      reason = format('invalid number of arguments in "%s" directive', directive)
    end
  end

  if reason
    raise CrossPlane::NgxParserDirectiveArgumentsError.new(fname, line, reason)
  end
end

#enter_block_ctx(stmt, ctx) ⇒ Object



1875
1876
1877
1878
1879
1880
1881
1882
1883
# File 'lib/crossplane/analyzer.rb', line 1875

def enter_block_ctx(stmt, ctx)
   # don't nest because NGX_HTTP_LOC_CONF just means "location block in http"
  if ctx and ctx[0] == 'http' and stmt['directive'] == 'location'
    return ['http', 'location']
  end

  # no other block contexts can be nested like location so just append it
  return ctx + [stmt['directive'],]
end

#register_external_directives(directives) ⇒ Object



1956
1957
1958
1959
1960
1961
1962
# File 'lib/crossplane/analyzer.rb', line 1956

def register_external_directives(directives)
  directives.each do |directive, bitmasks|
    if bitmasks
      DIRECTIVES[directive] = bitmasks
    end
  end
end