Input buildinfo: https://buildinfos.debian.net/buildinfo-pool/e/eslint/eslint_5.16.0~dfsg+~4.16.8-5_all.buildinfo Use metasnap for getting required timestamps New buildinfo file: /tmp/eslint-5.16.0~dfsg+~4.16.8-5pwnabvto/eslint_5.16.0~dfsg+~4.16.8-5_all.buildinfo Get source package info: eslint=5.16.0~dfsg+~4.16.8-5 Source URL: http://snapshot.notset.fr/mr/package/eslint/5.16.0~dfsg+~4.16.8-5/srcfiles?fileinfo=1 env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=/tmp mmdebstrap --arch=amd64 --include=autoconf=2.69-14 automake=1:1.16.3-2 autopoint=0.21-4 autotools-dev=20180224.1+nmu1 base-files=11 base-passwd=3.5.48 bash=5.1-2 binutils=2.35.1-7 binutils-common=2.35.1-7 binutils-x86-64-linux-gnu=2.35.1-7 bsdextrautils=2.36.1-6 bsdutils=1:2.36.1-6 build-essential=12.9 bzip2=1.0.8-4 chai=4.2.0+ds+~4.2.14-1 coreutils=8.32-4+b1 cpp=4:10.2.1-1 cpp-10=10.2.1-6 dash=0.5.11+git20200708+dd9ef66-5 debconf=1.5.74 debhelper=13.3.3 debianutils=4.11.2 dh-autoreconf=20 dh-strip-nondeterminism=1.11.0-1 diffutils=1:3.7-5 dpkg=1.20.7.1 dpkg-dev=1.20.7.1 dwz=0.13+20210201-1 file=1:5.39-3 findutils=4.8.0-1 g++=4:10.2.1-1 g++-10=10.2.1-6 gcc=4:10.2.1-1 gcc-10=10.2.1-6 gcc-10-base=10.2.1-6 gettext=0.21-4 gettext-base=0.21-4 grep=3.6-1 groff-base=1.22.4-6 gzip=1.10-2 help2man=1.48.1 hostname=3.23 init-system-helpers=1.60 intltool-debian=0.35.0+20060710.5 jq=1.6-2.1 libacl1=2.2.53-10 libarchive-zip-perl=1.68-1 libasan6=10.2.1-6 libatomic1=10.2.1-6 libattr1=1:2.4.48-6 libaudit-common=1:3.0-2 libaudit1=1:3.0-2 libbinutils=2.35.1-7 libblkid1=2.36.1-6 libbrotli1=1.0.9-2+b2 libbz2-1.0=1.0.8-4 libc-ares2=1.17.1-1 libc-bin=2.31-9 libc-dev-bin=2.31-9 libc6=2.31-9 libc6-dev=2.31-9 libcap-ng0=0.7.9-2.2+b1 libcc1-0=10.2.1-6 libcmark-gfm-extensions0=0.29.0.gfm.0-6 libcmark-gfm0=0.29.0.gfm.0-6 libcom-err2=1.45.7-1 libcrypt-dev=1:4.4.17-1 libcrypt1=1:4.4.17-1 libctf-nobfd0=2.35.1-7 libctf0=2.35.1-7 libdb5.3=5.3.28+dfsg1-0.6 libdebconfclient0=0.256 libdebhelper-perl=13.3.3 libdeflate0=1.7-1 libdpkg-perl=1.20.7.1 libelf1=0.182+20210205-1 libffi7=3.3-5 libfile-stripnondeterminism-perl=1.11.0-1 libgcc-10-dev=10.2.1-6 libgcc-s1=10.2.1-6 libgcrypt20=1.8.7-2 libgdbm-compat4=1.19-2 libgdbm6=1.19-2 libgdk-pixbuf-2.0-0=2.42.2+dfsg-1 libgdk-pixbuf2.0-common=2.42.2+dfsg-1 libglib2.0-0=2.66.6-1 libgmp10=2:6.2.1+dfsg-1 libgomp1=10.2.1-6 libgpg-error0=1.38-2 libgssapi-krb5-2=1.18.3-4 libicu67=67.1-6 libisl23=0.23-1 libitm1=10.2.1-6 libjbig0=2.1-3.1+b2 libjpeg62-turbo=1:2.0.5-2 libjq1=1.6-2.1 libjs-inherits=2.0.4-1 libjs-psl=1.8.0+ds-4 libjs-regenerate=1.4.2-2 libjs-source-map=0.7.0++dfsg2+really.0.6.1-7 libjs-sprintf-js=1.1.2+ds1-2 libjs-util=0.10.3-4 libk5crypto3=1.18.3-4 libkeyutils1=1.6.1-2 libkrb5-3=1.18.3-4 libkrb5support0=1.18.3-4 liblocale-gettext-perl=1.07-4+b1 liblsan0=10.2.1-6 liblz4-1=1.9.3-1 liblzma5=5.2.5-1.0 libmagic-mgc=1:5.39-3 libmagic1=1:5.39-3 libmount1=2.36.1-6 libmpc3=1.2.0-1 libmpfr6=4.1.0-3 libnghttp2-14=1.42.0-1 libnode72=12.20.1~dfsg-3 libnotify-bin=0.7.9-3 libnotify4=0.7.9-3 libnsl-dev=1.3.0-2 libnsl2=1.3.0-2 libonig5=6.9.5-2 libpam-modules=1.4.0-4 libpam-modules-bin=1.4.0-4 libpam-runtime=1.4.0-4 libpam0g=1.4.0-4 libpcre2-8-0=10.36-2 libpcre3=2:8.39-13 libperl5.32=5.32.1-2 libpipeline1=1.5.3-1 libpng16-16=1.6.37-3 libquadmath0=10.2.1-6 libseccomp2=2.5.1-1 libselinux1=3.1-2+b2 libsigsegv2=2.13-1 libsmartcols1=2.36.1-6 libssl1.1=1.1.1i-3 libstdc++-10-dev=10.2.1-6 libstdc++6=10.2.1-6 libsub-override-perl=0.09-2 libsystemd0=247.3-1 libtiff5=4.2.0-1 libtinfo6=6.2+20201114-2 libtirpc-common=1.3.1-1 libtirpc-dev=1.3.1-1 libtirpc3=1.3.1-1 libtool=2.4.6-15 libtsan0=10.2.1-6 libubsan1=10.2.1-6 libuchardet0=0.0.7-1 libudev1=247.3-1 libunistring2=0.9.10-4 libuuid1=2.36.1-6 libwebp6=0.6.1-2+b1 libxml2=2.9.10+dfsg-6.3+b1 libzstd1=1.4.8+dfsg-1 linux-libc-dev=5.10.12-1 livescript=1.6.1+dfsg-1 login=1:4.8.1-1 lsb-base=11.1.0 m4=1.4.18-5 make=4.3-4 man-db=2.9.3-2 mawk=1.3.4.20200120-2 mocha=8.2.1+ds1+~cs29.4.27-3 ncurses-base=6.2+20201114-2 ncurses-bin=6.2+20201114-2 node-abab=2.0.5-1 node-agent-base=6.0.2-2 node-ajv=6.12.6-2 node-ajv-keywords=3.5.2-1 node-ansi-colors=4.1.1-2 node-ansi-escapes=4.3.1-1 node-ansi-regex=5.0.0-1 node-ansi-styles=4.2.1-1 node-anymatch=3.1.1+~2.2.2-1 node-argparse=2.0.1-1 node-array-from=2.1.1-2 node-array-union=2.1.0-1 node-array-uniq=2.1.0-1 node-arrify=2.0.1-1 node-assertion-error=1.1.0-1 node-async-each=1.0.3-1 node-babel-loader=8.2.2-5 node-babel7=7.12.12+~cs150.141.84-6 node-babel7-runtime=7.12.12+~cs150.141.84-6 node-balanced-match=1.0.0-1 node-big.js=6.0.3+ds-1 node-binary-extensions=2.2.0-1 node-boolbase=1.0.0-2 node-brace-expansion=2.0.0-1 node-braces=3.0.2+~3.0.0-1 node-browser-stdout=1.3.1-2 node-browserslist=4.16.3+~cs5.4.72-1 node-camelcase=6.2.0-2 node-caniuse-lite=1.0.30001181+dfsg-1 node-chalk=4.1.0-1 node-check-error=1.0.2-3 node-cheerio=1.0.0~rc~5+~cs6.1.2-4 node-chokidar=3.4.3-3 node-cli-cursor=3.1.0-1 node-cli-width=3.0.0-1 node-cliui=4.1.0-2 node-clone=2.1.2-2 node-color-convert=1.9.3-1 node-color-name=1.1.4+~1.1.1-1 node-commander=6.2.1-2 node-commondir=1.0.1-2 node-concat-stream=2.0.0-1 node-convert-source-map=1.7.0+~1.5.1-1 node-core-js=3.8.2-1 node-core-util-is=1.0.2-2 node-css-select=3.1.2-4 node-css-what=4.0.0-3 node-cssom=0.4.4-1 node-cssstyle=0.2.14-3 node-d=1.0.1-1 node-dateformat=3.0.0-2 node-debbundle-acorn=8.0.5+ds+~cs19.19.27-1 node-debug=4.3.1+~cs4.1.5-1 node-decamelize=4.0.0-1 node-deep-eql=4.0.0-4 node-deep-is=0.1.3-2 node-defaults=1.0.3-2 node-del=5.1.0-2 node-diff=4.0.2~dfsg-2 node-doctrine=3.0.0-2 node-dom-serializer=1.2.0-5 node-domelementtype=2.1.0-2 node-domhandler=4.0.0-4 node-domutils=2.4.4-5 node-ejs=2.5.7-3 node-electron-to-chromium=1.3.651-1 node-emojis-list=3.0.0-1 node-end-of-stream=1.4.4-1 node-entities=2.2.0-1 node-es5-ext=0.10.53+~1.1.0-1 node-es6-iterator=2.0.3-2 node-es6-symbol=3.1.3+~cs3.5.0-1 node-escape-string-regexp=4.0.0-1 node-eslint-plugin-es=4.1.0~ds1-2 node-eslint-plugin-eslint-plugin=2.3.0+~0.3.0-2 node-eslint-plugin-node=11.1.0~ds-4 node-eslint-scope=5.1.1-1 node-eslint-utils=2.1.0-3 node-eslint-visitor-keys=2.0.0+~0.0.45-1 node-espree=7.3.1~dfsg1-1 node-esprima=4.0.1+ds+~4.0.2-2 node-esquery=1.3.1~ds-3 node-esrecurse=4.3.0-1 node-estraverse=5.2.0-1 node-esutils=2.0.3-1 node-event-emitter=0.3.5-2 node-execa=4.1.0+dfsg+~cs19.3.6-5 node-exit-hook=2.2.0-1 node-external-editor=2.2.0+dfsg-2 node-fast-deep-equal=3.1.3-1 node-fast-levenshtein=2.0.6+ds-2 node-file-entry-cache=6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-1 node-fill-range=7.0.1-2 node-find-cache-dir=3.3.1-1 node-find-up=5.0.0-1 node-flat-cache=3.0.4~6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-1 node-flatted=2.0.2~dfsg-1 node-fs-readdir-recursive=1.1.0-1 node-fs.realpath=1.0.0-1.1 node-function-bind=1.1.1+repack-1 node-functional-red-black-tree=1.0.1+20181105-4 node-get-caller-file=1.0.2-1.1 node-get-func-name=2.0.0+dfsg-1.1 node-get-stream=6.0.0-1 node-glob=7.1.6+~7.1.3-1 node-glob-parent=5.1.1+~5.1.0-1 node-globals=13.5.0-1 node-globby=11.0.2+~cs16.20.37-1 node-graceful-fs=4.2.4+repack-1 node-growl=1.10.5-2 node-has-flag=4.0.0-1 node-he=1.2.0-1 node-htmlparser2=6.0.0-5 node-iconv-lite=0.5.1-3 node-ignore=5.1.4-5 node-imurmurhash=0.1.4-1.1 node-indent-string=4.0.0-1 node-inflight=1.0.6-1.1 node-inherits=2.0.4-1 node-inquirer=3.3.0-3 node-interpret=2.2.0-1 node-invert-kv=3.0.1-1 node-is-binary-path=2.1.0-1 node-is-buffer=2.0.5-1 node-is-extglob=2.1.1-1 node-is-glob=4.0.1-1 node-is-number=7.0.0-1.1 node-is-object=1.0.2-1 node-is-path-cwd=2.2.0-1 node-is-path-inside=3.0.2-1 node-is-plain-obj=3.0.0-1 node-is-promise=4.0.0-1 node-is-stream=2.0.0-1 node-isarray=2.0.5-1 node-isexe=2.0.0-5 node-js-tokens=6.0.0-1 node-js-yaml=3.14.1+dfsg+~3.12.6-2 node-jschardet=2.2.1+dfsg+~1.3.0-1 node-jsdom=16.4.0+~cs77.17.35-3 node-jsesc=3.0.2-1 node-json-schema-traverse=1.0.0-2 node-json-stable-stringify=1.0.1+~cs5.1.32-1 node-json5=2.1.3-2 node-jsonify=0.0.0-1.1 node-kind-of=6.0.3+dfsg-1 node-lcid=3.1.1-1 node-leche=2.3.0~dfsg-2 node-levn=0.3.0+dfsg-4 node-loader-utils=2.0.0-1 node-locate-path=6.0.0-1 node-lodash=4.17.20+dfsg+~cs8.31.172-1 node-lodash-packages=4.17.20+dfsg+~cs8.31.172-1 node-lru-cache=5.1.1-5 node-make-dir=3.1.0-1 node-mem=1.1.0-1.1 node-merge-descriptors=1.0.1-2 node-merge-stream=2.0.0+~1.1.2-1 node-micromatch=4.0.2+repack+~4.0.1-1 node-mimic-fn=3.1.0-1 node-minimatch=3.0.4+~3.0.3-1 node-minimist=1.2.5+~cs5.3.1-2 node-mkdirp=1.0.4+~1.0.1-1 node-mock-fs=4.13.0-1 node-ms=2.1.3+~cs0.7.31-1 node-mute-stream=0.0.8-2 node-normalize-path=3.0.0-2 node-npm-run-path=2.0.2-2 node-nth-check=2.0.0-1 node-object-assign=4.1.1-3 node-once=1.4.0-3 node-optionator=0.9.1+dfsg-1 node-os-locale=5.0.0-1 node-p-limit=3.1.0+~cs2.3.0-1 node-p-locate=5.0.0-1 node-p-map=4.0.0-1 node-path-dirname=1.0.2-1.1 node-path-exists=4.0.0-2 node-path-is-absolute=2.0.0-1 node-path-is-inside=1.0.2-1.1 node-path-to-regexp=6.2.0-1 node-path-type=4.0.0-1 node-pathval=1.1.1-1 node-pify=5.0.0+~cs5.0.0-1 node-pkg-dir=5.0.0-1 node-prelude-ls=1.2.1+dfsg-1 node-process-nextick-args=2.0.0-1 node-progress=2.0.3-1 node-proxyquire=2.1.3+~1.0.1+~1.0.2-11 node-psl=1.8.0+ds-4 node-pump=3.0.0-4 node-punycode=2.1.1-3 node-quick-lru=1.1.0-2 node-randombytes=2.1.0-1 node-read=1.0.7-2 node-readable-stream=3.6.0-2 node-readdirp=3.5.0-2 node-rechoir=0.7.0-1 node-regenerate=1.4.2-2 node-regenerate-unicode-properties=8.2.0+ds-1 node-regenerator-runtime=0.13.7-1 node-regenerator-transform=0.14.5-4 node-regexpp=3.1.0-4 node-regexpu-core=4.7.1-1 node-regjsgen=0.5.2+ds-1 node-regjsparser=0.6.6+ds-1 node-repeat-string=1.6.1-1 node-require-directory=2.1.1-1.1 node-require-main-filename=2.0.0-1 node-resolve=1.19.0+~cs5.20.8-2 node-resolve-from=5.0.0+~3.1.0+~3.3.0+~2.0.0-1 node-restore-cursor=3.1.0-1 node-rimraf=3.0.2-1 node-run-async=2.4.1-1 node-rx=4.1.0+dfsg1-1.1 node-safe-buffer=5.2.1+~cs2.1.2-1 node-schema-utils=3.0.0-3 node-semver=7.3.4-1 node-serialize-javascript=5.0.1-2 node-set-blocking=2.0.0-1.1 node-set-immediate-shim=2.0.0-1 node-shebang-command=1.2.0-1.1 node-shebang-regex=3.0.0-1 node-shelljs=0.8.3-1 node-signal-exit=3.0.3-1 node-sinon=9.2.4+ds+~cs58.20.26-1 node-slash=3.0.0-1 node-source-map=0.7.0++dfsg2+really.0.6.1-7 node-source-map-support=0.5.19+ds+~0.5.3-1 node-sprintf-js=1.1.2+ds1-2 node-stealthy-require=1.1.1-4 node-string-decoder=1.3.0-2 node-string-width=4.2.0-1 node-strip-ansi=6.0.0-2 node-strip-json-comments=3.1.1-1 node-supports-color=8.1.0+~7.2.0-1 node-temp=0.9.4-1 node-text-table=0.2.0-2 node-through2=4.0.2-1 node-tinycolor=0.0.1-2 node-tmp=0.2.1+dfsg-1 node-to-fast-properties=3.0.1-1 node-to-regex-range=5.0.1-2 node-tough-cookie=4.0.0-2 node-type-check=0.4.0+dfsg-1 node-type-detect=4.0.8-2 node-typedarray=0.0.6-1.1 node-unicode-canonical-property-names-ecmascript=1.0.4-3 node-unicode-match-property-ecmascript=1.0.4-1.1 node-unicode-match-property-value-ecmascript=1.2.0+ds-1 node-unicode-property-aliases-ecmascript=1.1.0+ds-2 node-universalify=2.0.0-2 node-uri-js=4.4.0+dfsg-5 node-util=0.10.3-4 node-util-deprecate=1.0.2-1 node-v8flags=3.2.0-1 node-wcwidth.js=1.0.0-1.1 node-webidl-conversions=6.1.0~1.1.0+~2.0.1~ds+~6.1.0+~0~20180821-1 node-which=2.0.2+~cs1.3.2-1 node-which-module=2.0.0-1 node-wide-align=1.1.3-1 node-wordwrap=1.0.0-2 node-wrap-ansi=4.0.0-2 node-wrappy=1.0.2-1.1 node-write=2.0.0~6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-1 node-ws=7.4.2+~cs18.0.8-1 node-xtend=4.0.2-1 node-y18n=4.0.0-4 node-yallist=4.0.0-1 node-yargs=15.3.1+repack-2 node-yargs-parser=18.1.3+~15.0.0-1 nodejs=12.20.1~dfsg-3 pandoc=2.9.2.1-1+b1 pandoc-data=2.9.2.1-1 patch=2.7.6-7 perl=5.32.1-2 perl-base=5.32.1-2 perl-modules-5.32=5.32.1-2 po-debconf=1.0.21+nmu1 sed=4.7-1 sensible-utils=0.0.14 shared-mime-info=2.0-1 sysvinit-utils=2.96-5 tar=1.32+dfsg-1 util-linux=2.36.1-6 xz-utils=5.2.5-1.0 zlib1g=1:1.2.11.dfsg-2 --variant=apt --aptopt=Acquire::Check-Valid-Until "false" --aptopt=Acquire::http::Dl-Limit "1000"; --aptopt=Acquire::https::Dl-Limit "1000"; --aptopt=Acquire::Retries "5"; --aptopt=APT::Get::allow-downgrades "true"; --keyring=/usr/share/keyrings/ --essential-hook=chroot "$1" sh -c "apt-get --yes install fakeroot util-linux" --essential-hook=copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ --essential-hook=chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20210208T090226Z/ unstable main deb http://snapshot.notset.fr/archive/debian/20210205T151755Z/ unstable main' >> /etc/apt/sources.list && apt-get update" --customize-hook=chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash --customize-hook=chroot "$1" env sh -c "apt-get source --only-source -d eslint=5.16.0~dfsg+~4.16.8-5 && mkdir -p /build/eslint-Vxf7U1 && dpkg-source --no-check -x /*.dsc /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8 && chown -R builduser:builduser /build/eslint-Vxf7U1" --customize-hook=chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8 && env DEB_BUILD_OPTIONS="parallel=4" LANG="C.UTF-8" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1612647058" dpkg-buildpackage -uc -a amd64 --build=all" --customize-hook=sync-out /build/eslint-Vxf7U1 /tmp/eslint-5.16.0~dfsg+~4.16.8-5pwnabvto bullseye /dev/null deb http://snapshot.notset.fr/archive/debian/20210205T151755Z unstable main I: automatically chosen mode: root I: chroot architecture amd64 is equal to the host's architecture I: automatically chosen format: tar I: using /tmp/mmdebstrap.CYSS94hcrE as tempdir I: running apt-get update... I: downloading packages with apt... I: extracting archives... I: installing essential packages... I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "apt-get --yes install fakeroot util-linux"' exec /tmp/mmdebstrap.CYSS94hcrE Reading package lists... Building dependency tree... util-linux is already the newest version (2.36.1-6). The following NEW packages will be installed: fakeroot libfakeroot 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 134 kB of archives. After this operation, 397 kB of additional disk space will be used. Get:1 http://snapshot.notset.fr/archive/debian/20210205T151755Z unstable/main amd64 libfakeroot amd64 1.25.3-1.1 [47.0 kB] Get:2 http://snapshot.notset.fr/archive/debian/20210205T151755Z unstable/main amd64 fakeroot amd64 1.25.3-1.1 [87.0 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 134 kB in 0s (1086 kB/s) Selecting previously unselected package libfakeroot:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 4663 files and directories currently installed.) Preparing to unpack .../libfakeroot_1.25.3-1.1_amd64.deb ... Unpacking libfakeroot:amd64 (1.25.3-1.1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../fakeroot_1.25.3-1.1_amd64.deb ... Unpacking fakeroot (1.25.3-1.1) ... Setting up libfakeroot:amd64 (1.25.3-1.1) ... Setting up fakeroot (1.25.3-1.1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Processing triggers for libc-bin (2.31-9) ... I: running special hook: copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20210208T090226Z/ unstable main deb http://snapshot.notset.fr/archive/debian/20210205T151755Z/ unstable main' >> /etc/apt/sources.list && apt-get update"' exec /tmp/mmdebstrap.CYSS94hcrE Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm InRelease [81.6 kB] Get:2 http://snapshot.notset.fr/archive/debian/20210208T090226Z unstable InRelease [153 kB] Hit:3 http://snapshot.notset.fr/archive/debian/20210205T151755Z unstable InRelease Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Get:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources [11.4 MB] Get:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages [11.1 MB] Ign:6 http://snapshot.notset.fr/archive/debian/20210208T090226Z unstable/main amd64 Packages Ign:6 http://snapshot.notset.fr/archive/debian/20210208T090226Z unstable/main amd64 Packages Ign:6 http://snapshot.notset.fr/archive/debian/20210208T090226Z unstable/main amd64 Packages Get:6 http://snapshot.notset.fr/archive/debian/20210208T090226Z unstable/main amd64 Packages [11.7 MB] Fetched 34.4 MB in 28s (1228 kB/s) Reading package lists... I: installing remaining packages inside the chroot... I: running --customize-hook in shell: sh -c 'chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash' exec /tmp/mmdebstrap.CYSS94hcrE I: running --customize-hook in shell: sh -c 'chroot "$1" env sh -c "apt-get source --only-source -d eslint=5.16.0~dfsg+~4.16.8-5 && mkdir -p /build/eslint-Vxf7U1 && dpkg-source --no-check -x /*.dsc /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8 && chown -R builduser:builduser /build/eslint-Vxf7U1"' exec /tmp/mmdebstrap.CYSS94hcrE Reading package lists... NOTICE: 'eslint' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/js-team/eslint.git Please use: git clone https://salsa.debian.org/js-team/eslint.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 1036 kB of source archives. Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main eslint 5.16.0~dfsg+~4.16.8-5 (dsc) [4306 B] Get:2 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main eslint 5.16.0~dfsg+~4.16.8-5 (tar) [5072 B] Get:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main eslint 5.16.0~dfsg+~4.16.8-5 (tar) [999 kB] Get:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main eslint 5.16.0~dfsg+~4.16.8-5 (diff) [27.1 kB] Fetched 1036 kB in 1s (1127 kB/s) Download complete and in download only mode W: Download is performed unsandboxed as root as file 'eslint_5.16.0~dfsg+~4.16.8-5.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) dpkg-source: info: extracting eslint in /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8 dpkg-source: info: unpacking eslint_5.16.0~dfsg+~4.16.8.orig.tar.xz dpkg-source: info: unpacking eslint_5.16.0~dfsg+~4.16.8.orig-Xtypes.tar.xz dpkg-source: info: unpacking eslint_5.16.0~dfsg+~4.16.8-5.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying 020190820~8c021b5.patch dpkg-source: info: applying 1001_use_regenerate-unicode-properties.patch dpkg-source: info: applying 1002_use_newer_cheerio.patch dpkg-source: info: applying 2005_avoid_cross-spawn.patch dpkg-source: info: applying 2006_avoid_natural-compare.patch dpkg-source: info: applying 2008_avoid_json-stable-stringify-without-jsonify.patch dpkg-source: info: applying 2010_privacy.patch I: running --customize-hook in shell: sh -c 'chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8 && env DEB_BUILD_OPTIONS="parallel=4" LANG="C.UTF-8" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1612647058" dpkg-buildpackage -uc -a amd64 --build=all"' exec /tmp/mmdebstrap.CYSS94hcrE dpkg-buildpackage: info: source package eslint dpkg-buildpackage: info: source version 5.16.0~dfsg+~4.16.8-5 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Jonas Smedegaard dpkg-source --before-build . debian/rules clean dh clean debian/rules override_dh_clean make[1]: Entering directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' dh_clean -- README.html README.txt CHANGELOG.html CHANGELOG.txt make[1]: Leaving directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' debian/rules binary-indep dh binary-indep dh_update_autotools_config -i dh_autoreconf -i debian/rules execute_before_dh_auto_build make[1]: Entering directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' node tools/update-unicode-utils.js make[1]: Leaving directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' debian/rules override_dh_auto_build make[1]: Entering directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' pandoc --from gfm-raw_html --to html --standalone --output README.html README.md [WARNING] This document format requires a nonempty element. Defaulting to 'README' as the title. To specify a title, use 'title' in metadata or --metadata title="...". pandoc --from gfm-raw_html --to plain --output README.txt README.md pandoc --from gfm-raw_html --to html --standalone --output CHANGELOG.html CHANGELOG.md [WARNING] This document format requires a nonempty <title> element. Defaulting to 'CHANGELOG' as the title. To specify a title, use 'title' in metadata or --metadata title="...". pandoc --from gfm-raw_html --to plain --output CHANGELOG.txt CHANGELOG.md mkdir --parents debian-man/ cp --force bin/eslint.js debian-man/eslint NODE_PATH=lib help2man --name AST-based --name pattern --name checker --name and --name linting --name utility --name for --name JavaScript --no-info --output debian-man/eslint.1 debian-man/eslint || { NODE_PATH=lib debian-man/eslint --help; false; } dh override_dh_auto_build make[1]: Leaving directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' debian/rules override_dh_auto_test make[1]: Entering directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' ln --force --symbolic --no-target-directory internal-rules \ tools/eslint-plugin-internal-rules NODE_PATH=packages:tools bin/eslint.js --format tap --report-unused-disable-directives \ \ lib conf bin tests/bin tests/lib tests/tools TAP version 13 1..686 ok 1 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/api.js ok 2 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/built-in-rules-index.js ok 3 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/cli-engine.js ok 4 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/cli.js ok 5 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/code-path-analysis/code-path-analyzer.js ok 6 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/code-path-analysis/code-path-segment.js ok 7 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/code-path-analysis/code-path-state.js ok 8 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/code-path-analysis/code-path.js ok 9 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/code-path-analysis/debug-helpers.js ok 10 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/code-path-analysis/fork-context.js ok 11 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/code-path-analysis/id-generator.js ok 12 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/config.js ok 13 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/config/autoconfig.js ok 14 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/config/config-cache.js ok 15 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/config/config-file.js ok 16 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/config/config-initializer.js ok 17 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/config/config-ops.js ok 18 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/config/config-rule.js ok 19 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/config/config-validator.js ok 20 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/config/environments.js ok 21 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/config/plugins.js ok 22 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/checkstyle.js ok 23 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/codeframe.js ok 24 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/compact.js ok 25 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/html.js ok 26 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/jslint-xml.js ok 27 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/json-with-metadata.js ok 28 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/json.js ok 29 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/junit.js ok 30 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/stylish.js ok 31 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/table.js ok 32 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/tap.js ok 33 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/unix.js ok 34 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/formatters/visualstudio.js ok 35 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/linter.js ok 36 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/load-rules.js ok 37 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/options.js ok 38 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules.js ok 39 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/accessor-pairs.js ok 40 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/array-bracket-newline.js ok 41 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/array-bracket-spacing.js ok 42 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/array-callback-return.js ok 43 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/array-element-newline.js ok 44 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/arrow-body-style.js ok 45 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/arrow-parens.js ok 46 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/arrow-spacing.js ok 47 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/block-scoped-var.js ok 48 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/block-spacing.js ok 49 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/brace-style.js ok 50 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/callback-return.js ok 51 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/camelcase.js ok 52 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/capitalized-comments.js ok 53 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/class-methods-use-this.js ok 54 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/comma-dangle.js ok 55 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/comma-spacing.js ok 56 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/comma-style.js ok 57 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/complexity.js ok 58 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/computed-property-spacing.js ok 59 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/consistent-return.js ok 60 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/consistent-this.js ok 61 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/constructor-super.js ok 62 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/curly.js ok 63 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/default-case.js ok 64 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/dot-location.js ok 65 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/dot-notation.js ok 66 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/eol-last.js ok 67 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/eqeqeq.js ok 68 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/for-direction.js ok 69 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/func-call-spacing.js ok 70 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/func-name-matching.js ok 71 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/func-names.js ok 72 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/func-style.js ok 73 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/function-paren-newline.js ok 74 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/generator-star-spacing.js ok 75 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/getter-return.js ok 76 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/global-require.js ok 77 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/guard-for-in.js ok 78 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/handle-callback-err.js ok 79 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/id-blacklist.js ok 80 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/id-length.js ok 81 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/id-match.js ok 82 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/implicit-arrow-linebreak.js ok 83 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/indent-legacy.js ok 84 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/indent.js ok 85 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/init-declarations.js ok 86 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/jsx-quotes.js ok 87 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/key-spacing.js ok 88 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/keyword-spacing.js ok 89 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/line-comment-position.js ok 90 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/linebreak-style.js ok 91 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/lines-around-comment.js ok 92 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/lines-around-directive.js ok 93 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/lines-between-class-members.js ok 94 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/max-classes-per-file.js ok 95 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/max-depth.js ok 96 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/max-len.js ok 97 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/max-lines-per-function.js ok 98 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/max-lines.js ok 99 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/max-nested-callbacks.js ok 100 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/max-params.js ok 101 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/max-statements-per-line.js ok 102 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/max-statements.js ok 103 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/multiline-comment-style.js ok 104 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/multiline-ternary.js ok 105 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/new-cap.js ok 106 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/new-parens.js ok 107 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/newline-after-var.js ok 108 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/newline-before-return.js ok 109 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/newline-per-chained-call.js ok 110 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-alert.js ok 111 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-array-constructor.js ok 112 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-async-promise-executor.js ok 113 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-await-in-loop.js ok 114 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-bitwise.js ok 115 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-buffer-constructor.js ok 116 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-caller.js ok 117 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-case-declarations.js ok 118 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-catch-shadow.js ok 119 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-class-assign.js ok 120 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-compare-neg-zero.js ok 121 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-cond-assign.js ok 122 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-confusing-arrow.js ok 123 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-console.js ok 124 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-const-assign.js ok 125 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-constant-condition.js ok 126 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-continue.js ok 127 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-control-regex.js ok 128 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-debugger.js ok 129 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-delete-var.js ok 130 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-div-regex.js ok 131 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-dupe-args.js ok 132 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-dupe-class-members.js ok 133 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-dupe-keys.js ok 134 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-duplicate-case.js ok 135 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-duplicate-imports.js ok 136 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-else-return.js ok 137 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-empty-character-class.js ok 138 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-empty-function.js ok 139 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-empty-pattern.js ok 140 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-empty.js ok 141 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-eq-null.js ok 142 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-eval.js ok 143 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-ex-assign.js ok 144 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-extend-native.js ok 145 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-extra-bind.js ok 146 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-extra-boolean-cast.js ok 147 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-extra-label.js ok 148 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-extra-parens.js ok 149 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-extra-semi.js ok 150 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-fallthrough.js ok 151 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-floating-decimal.js ok 152 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-func-assign.js ok 153 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-global-assign.js ok 154 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-implicit-coercion.js ok 155 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-implicit-globals.js ok 156 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-implied-eval.js ok 157 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-inline-comments.js ok 158 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-inner-declarations.js ok 159 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-invalid-regexp.js ok 160 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-invalid-this.js ok 161 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-irregular-whitespace.js ok 162 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-iterator.js ok 163 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-label-var.js ok 164 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-labels.js ok 165 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-lone-blocks.js ok 166 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-lonely-if.js ok 167 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-loop-func.js ok 168 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-magic-numbers.js ok 169 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-misleading-character-class.js ok 170 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-mixed-operators.js ok 171 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-mixed-requires.js ok 172 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-mixed-spaces-and-tabs.js ok 173 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-multi-assign.js ok 174 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-multi-spaces.js ok 175 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-multi-str.js ok 176 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-multiple-empty-lines.js ok 177 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-native-reassign.js ok 178 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-negated-condition.js ok 179 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-negated-in-lhs.js ok 180 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-nested-ternary.js ok 181 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-new-func.js ok 182 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-new-object.js ok 183 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-new-require.js ok 184 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-new-symbol.js ok 185 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-new-wrappers.js ok 186 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-new.js ok 187 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-obj-calls.js ok 188 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-octal-escape.js ok 189 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-octal.js ok 190 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-param-reassign.js ok 191 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-path-concat.js ok 192 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-plusplus.js ok 193 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-process-env.js ok 194 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-process-exit.js ok 195 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-proto.js ok 196 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-prototype-builtins.js ok 197 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-redeclare.js ok 198 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-regex-spaces.js ok 199 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-restricted-globals.js ok 200 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-restricted-imports.js ok 201 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-restricted-modules.js ok 202 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-restricted-properties.js ok 203 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-restricted-syntax.js ok 204 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-return-assign.js ok 205 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-return-await.js ok 206 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-script-url.js ok 207 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-self-assign.js ok 208 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-self-compare.js ok 209 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-sequences.js ok 210 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-shadow-restricted-names.js ok 211 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-shadow.js ok 212 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-spaced-func.js ok 213 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-sparse-arrays.js ok 214 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-sync.js ok 215 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-tabs.js ok 216 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-template-curly-in-string.js ok 217 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-ternary.js ok 218 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-this-before-super.js ok 219 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-throw-literal.js ok 220 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-trailing-spaces.js ok 221 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-undef-init.js ok 222 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-undef.js ok 223 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-undefined.js ok 224 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-underscore-dangle.js ok 225 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-unexpected-multiline.js ok 226 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-unmodified-loop-condition.js ok 227 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-unneeded-ternary.js ok 228 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-unreachable.js ok 229 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-unsafe-finally.js ok 230 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-unsafe-negation.js ok 231 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-unused-expressions.js ok 232 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-unused-labels.js ok 233 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-unused-vars.js ok 234 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-use-before-define.js ok 235 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-useless-call.js ok 236 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-useless-catch.js ok 237 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-useless-computed-key.js ok 238 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-useless-concat.js ok 239 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-useless-constructor.js ok 240 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-useless-escape.js ok 241 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-useless-rename.js ok 242 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-useless-return.js ok 243 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-var.js ok 244 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-void.js ok 245 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-warning-comments.js ok 246 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-whitespace-before-property.js ok 247 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/no-with.js ok 248 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/nonblock-statement-body-position.js ok 249 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/object-curly-newline.js ok 250 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/object-curly-spacing.js ok 251 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/object-property-newline.js ok 252 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/object-shorthand.js ok 253 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/one-var-declaration-per-line.js ok 254 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/one-var.js ok 255 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/operator-assignment.js ok 256 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/operator-linebreak.js ok 257 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/padded-blocks.js ok 258 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/padding-line-between-statements.js ok 259 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-arrow-callback.js ok 260 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-const.js ok 261 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-destructuring.js ok 262 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-named-capture-group.js ok 263 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-numeric-literals.js ok 264 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-object-spread.js ok 265 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-promise-reject-errors.js ok 266 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-reflect.js ok 267 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-rest-params.js ok 268 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-spread.js ok 269 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/prefer-template.js ok 270 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/quote-props.js ok 271 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/quotes.js ok 272 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/radix.js ok 273 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/require-atomic-updates.js ok 274 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/require-await.js ok 275 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/require-jsdoc.js ok 276 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/require-unicode-regexp.js ok 277 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/require-yield.js ok 278 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/rest-spread-spacing.js ok 279 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/semi-spacing.js ok 280 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/semi-style.js ok 281 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/semi.js ok 282 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/sort-imports.js ok 283 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/sort-keys.js ok 284 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/sort-vars.js ok 285 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/space-before-blocks.js ok 286 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/space-before-function-paren.js ok 287 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/space-in-parens.js ok 288 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/space-infix-ops.js ok 289 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/space-unary-ops.js ok 290 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/spaced-comment.js ok 291 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/strict.js ok 292 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/switch-colon-spacing.js ok 293 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/symbol-description.js ok 294 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/template-curly-spacing.js ok 295 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/template-tag-spacing.js ok 296 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/unicode-bom.js ok 297 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/use-isnan.js ok 298 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/valid-jsdoc.js ok 299 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/valid-typeof.js ok 300 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/vars-on-top.js ok 301 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/wrap-iife.js ok 302 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/wrap-regex.js ok 303 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/yield-star-spacing.js ok 304 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/rules/yoda.js ok 305 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/testers/rule-tester.js ok 306 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/backward-token-comment-cursor.js ok 307 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/backward-token-cursor.js ok 308 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/cursor.js ok 309 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/cursors.js ok 310 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/decorative-cursor.js ok 311 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/filter-cursor.js ok 312 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/forward-token-comment-cursor.js ok 313 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/forward-token-cursor.js ok 314 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/index.js ok 315 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/limit-cursor.js ok 316 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/padded-token-cursor.js ok 317 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/skip-cursor.js ok 318 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/token-store/utils.js ok 319 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/ajv.js ok 320 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/apply-disable-directives.js ok 321 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/ast-utils.js ok 322 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/config-comment-parser.js ok 323 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/file-finder.js ok 324 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/fix-tracker.js ok 325 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/glob-utils.js ok 326 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/glob.js ok 327 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/hash.js ok 328 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/ignored-paths.js ok 329 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/interpolate.js ok 330 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/keywords.js ok 331 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/lint-result-cache.js ok 332 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/logging.js ok 333 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/module-resolver.js ok 334 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/naming.js ok 335 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js ok 336 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/npm-utils.js ok 337 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/path-utils.js ok 338 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/report-translator.js ok 339 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/rule-fixer.js ok 340 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/safe-emitter.js ok 341 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/source-code-fixer.js ok 342 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/source-code-utils.js ok 343 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/source-code.js ok 344 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/timing.js ok 345 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/traverser.js ok 346 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/unicode/index.js ok 347 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/unicode/is-emoji-modifier.js ok 348 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/unicode/is-regional-indicator-symbol.js ok 349 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/unicode/is-surrogate-pair.js ok 350 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/xml-escape.js ok 351 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/conf/config-schema.js ok 352 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/conf/default-cli-options.js ok 353 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/conf/environments.js ok 354 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/conf/eslint-all.js ok 355 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/conf/eslint-recommended.js ok 356 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/bin/eslint.js ok 357 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/bin/eslint.js ok 358 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/api.js ok 359 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/cli-engine.js ok 360 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/cli.js ok 361 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/code-path-analysis/code-path-analyzer.js ok 362 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/code-path-analysis/code-path.js ok 363 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/config.js ok 364 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/config/autoconfig.js ok 365 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/config/config-file.js ok 366 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/config/config-initializer.js ok 367 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/config/config-ops.js ok 368 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/config/config-rule.js ok 369 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/config/config-validator.js ok 370 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/config/environments.js ok 371 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/config/plugins.js ok 372 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/checkstyle.js ok 373 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/codeframe.js ok 374 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/compact.js ok 375 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/html.js ok 376 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/jslint-xml.js ok 377 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/json-with-metadata.js ok 378 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/json.js ok 379 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/junit.js ok 380 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/stylish.js ok 381 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/table.js ok 382 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/tap.js ok 383 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/unix.js ok 384 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/formatters/visualstudio.js ok 385 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/linter.js ok 386 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/load-rules.js ok 387 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/options.js ok 388 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules.js ok 389 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/_set-default-parser.js ok 390 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/_utils.js ok 391 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/accessor-pairs.js ok 392 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/array-bracket-newline.js ok 393 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/array-bracket-spacing.js ok 394 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/array-callback-return.js ok 395 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/array-element-newline.js ok 396 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/arrow-body-style.js ok 397 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/arrow-parens.js ok 398 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/arrow-spacing.js ok 399 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/block-scoped-var.js ok 400 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/block-spacing.js ok 401 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/brace-style.js ok 402 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/callback-return.js ok 403 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/camelcase.js ok 404 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/capitalized-comments.js ok 405 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/class-methods-use-this.js ok 406 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/comma-dangle.js ok 407 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/comma-spacing.js ok 408 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/comma-style.js ok 409 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/complexity.js ok 410 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/computed-property-spacing.js ok 411 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/consistent-return.js ok 412 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/consistent-this.js ok 413 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/constructor-super.js ok 414 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/curly.js ok 415 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/default-case.js ok 416 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/dot-location.js ok 417 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/dot-notation.js ok 418 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/eol-last.js ok 419 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/eqeqeq.js ok 420 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/for-direction.js ok 421 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/func-call-spacing.js ok 422 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/func-name-matching.js ok 423 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/func-names.js ok 424 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/func-style.js ok 425 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/function-paren-newline.js ok 426 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/generator-star-spacing.js ok 427 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/getter-return.js ok 428 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/global-require.js ok 429 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/guard-for-in.js ok 430 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/handle-callback-err.js ok 431 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/id-blacklist.js ok 432 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/id-length.js ok 433 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/id-match.js ok 434 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/implicit-arrow-linebreak.js ok 435 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/indent-legacy.js ok 436 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/indent.js ok 437 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/init-declarations.js ok 438 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/jsx-quotes.js ok 439 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/key-spacing.js ok 440 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/keyword-spacing.js ok 441 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/line-comment-position.js ok 442 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/linebreak-style.js ok 443 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/lines-around-comment.js ok 444 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/lines-around-directive.js ok 445 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/lines-between-class-members.js ok 446 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/max-classes-per-file.js ok 447 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/max-depth.js ok 448 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/max-len.js ok 449 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/max-lines-per-function.js ok 450 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/max-lines.js ok 451 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/max-nested-callbacks.js ok 452 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/max-params.js ok 453 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/max-statements-per-line.js ok 454 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/max-statements.js ok 455 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/multiline-comment-style.js ok 456 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/multiline-ternary.js ok 457 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/new-cap.js ok 458 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/new-parens.js ok 459 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/newline-after-var.js ok 460 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/newline-before-return.js ok 461 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/newline-per-chained-call.js ok 462 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-alert.js ok 463 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-array-constructor.js ok 464 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-async-promise-executor.js ok 465 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-await-in-loop.js ok 466 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-bitwise.js ok 467 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-buffer-constructor.js ok 468 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-caller.js ok 469 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-case-declarations.js ok 470 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-catch-shadow.js ok 471 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-class-assign.js ok 472 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-compare-neg-zero.js ok 473 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-cond-assign.js ok 474 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-confusing-arrow.js ok 475 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-console.js ok 476 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-const-assign.js ok 477 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-constant-condition.js ok 478 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-continue.js ok 479 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-control-regex.js ok 480 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-debugger.js ok 481 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-delete-var.js ok 482 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-div-regex.js ok 483 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-dupe-args.js ok 484 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-dupe-class-members.js ok 485 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-dupe-keys.js ok 486 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-duplicate-case.js ok 487 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-duplicate-imports.js ok 488 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-else-return.js ok 489 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-empty-character-class.js ok 490 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-empty-function.js ok 491 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-empty-pattern.js ok 492 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-empty.js ok 493 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-eq-null.js ok 494 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-eval.js ok 495 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-ex-assign.js ok 496 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-extend-native.js ok 497 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-extra-bind.js ok 498 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-extra-boolean-cast.js ok 499 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-extra-label.js ok 500 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-extra-parens.js ok 501 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-extra-semi.js ok 502 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-fallthrough.js ok 503 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-floating-decimal.js ok 504 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-func-assign.js ok 505 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-global-assign.js ok 506 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-implicit-coercion.js ok 507 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-implicit-globals.js ok 508 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-implied-eval.js ok 509 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-inline-comments.js ok 510 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-inner-declarations.js ok 511 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-invalid-regexp.js ok 512 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-invalid-this.js ok 513 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-irregular-whitespace.js ok 514 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-iterator.js ok 515 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-label-var.js ok 516 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-labels.js ok 517 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-lone-blocks.js ok 518 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-lonely-if.js ok 519 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-loop-func.js ok 520 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-magic-numbers.js ok 521 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-misleading-character-class.js ok 522 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-mixed-operators.js ok 523 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-mixed-requires.js ok 524 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-mixed-spaces-and-tabs.js ok 525 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-multi-assign.js ok 526 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-multi-spaces.js ok 527 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-multi-str.js ok 528 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-multiple-empty-lines.js ok 529 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-native-reassign.js ok 530 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-negated-condition.js ok 531 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-negated-in-lhs.js ok 532 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-nested-ternary.js ok 533 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-new-func.js ok 534 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-new-object.js ok 535 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-new-require.js ok 536 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-new-symbol.js ok 537 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-new-wrappers.js ok 538 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-new.js ok 539 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-obj-calls.js ok 540 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-octal-escape.js ok 541 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-octal.js ok 542 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-param-reassign.js ok 543 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-path-concat.js ok 544 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-plusplus.js ok 545 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-process-env.js ok 546 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-process-exit.js ok 547 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-proto.js ok 548 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-prototype-builtins.js ok 549 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-redeclare.js ok 550 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-regex-spaces.js ok 551 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-restricted-globals.js ok 552 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-restricted-imports.js ok 553 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-restricted-modules.js ok 554 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-restricted-properties.js ok 555 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-restricted-syntax.js ok 556 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-return-assign.js ok 557 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-return-await.js ok 558 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-script-url.js ok 559 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-self-assign.js ok 560 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-self-compare.js ok 561 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-sequences.js ok 562 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-shadow-restricted-names.js ok 563 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-shadow.js ok 564 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-spaced-func.js ok 565 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-sparse-arrays.js ok 566 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-sync.js ok 567 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-tabs.js ok 568 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-template-curly-in-string.js ok 569 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-ternary.js ok 570 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-this-before-super.js ok 571 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-throw-literal.js ok 572 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-trailing-spaces.js ok 573 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-undef-init.js ok 574 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-undef.js ok 575 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-undefined.js ok 576 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-underscore-dangle.js ok 577 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-unexpected-multiline.js ok 578 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-unmodified-loop-condition.js ok 579 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-unneeded-ternary.js ok 580 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-unreachable.js ok 581 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-unsafe-finally.js ok 582 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-unsafe-negation.js ok 583 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-unused-expressions.js ok 584 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-unused-labels.js ok 585 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-unused-vars.js ok 586 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-use-before-define.js ok 587 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-useless-call.js ok 588 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-useless-catch.js ok 589 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-useless-computed-key.js ok 590 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-useless-concat.js ok 591 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-useless-constructor.js ok 592 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-useless-escape.js ok 593 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-useless-rename.js ok 594 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-useless-return.js ok 595 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-var.js ok 596 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-void.js ok 597 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-warning-comments.js ok 598 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-whitespace-before-property.js ok 599 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/no-with.js ok 600 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/nonblock-statement-body-position.js ok 601 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/object-curly-newline.js ok 602 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/object-curly-spacing.js ok 603 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/object-property-newline.js ok 604 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/object-shorthand.js ok 605 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/one-var-declaration-per-line.js ok 606 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/one-var.js ok 607 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/operator-assignment.js ok 608 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/operator-linebreak.js ok 609 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/padded-blocks.js ok 610 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/padding-line-between-statements.js ok 611 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-arrow-callback.js ok 612 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-const.js ok 613 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-destructuring.js ok 614 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-named-capture-group.js ok 615 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-numeric-literals.js ok 616 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-object-spread.js ok 617 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-promise-reject-errors.js ok 618 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-reflect.js ok 619 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-rest-params.js ok 620 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-spread.js ok 621 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/prefer-template.js ok 622 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/quote-props.js ok 623 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/quotes.js ok 624 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/radix.js ok 625 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/require-atomic-updates.js ok 626 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/require-await.js ok 627 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/require-jsdoc.js ok 628 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/require-unicode-regexp.js ok 629 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/require-yield.js ok 630 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/rest-spread-spacing.js ok 631 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/semi-spacing.js ok 632 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/semi-style.js ok 633 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/semi.js ok 634 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/sort-imports.js ok 635 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/sort-keys.js ok 636 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/sort-vars.js ok 637 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/space-before-blocks.js ok 638 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/space-before-function-paren.js ok 639 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/space-in-parens.js ok 640 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/space-infix-ops.js ok 641 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/space-unary-ops.js ok 642 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/spaced-comment.js ok 643 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/strict.js ok 644 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/switch-colon-spacing.js ok 645 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/symbol-description.js ok 646 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/template-curly-spacing.js ok 647 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/template-tag-spacing.js ok 648 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/unicode-bom.js ok 649 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/use-isnan.js ok 650 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/valid-jsdoc.js ok 651 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/valid-typeof.js ok 652 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/vars-on-top.js ok 653 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/wrap-iife.js ok 654 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/wrap-regex.js ok 655 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/yield-star-spacing.js ok 656 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/rules/yoda.js ok 657 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/testers/no-test-runners.js ok 658 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/testers/rule-tester.js ok 659 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/token-store.js ok 660 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/apply-disable-directives.js ok 661 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/ast-utils.js ok 662 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/config-comment-parser.js ok 663 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/file-finder.js ok 664 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/fix-tracker.js ok 665 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/glob-utils.js ok 666 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/ignored-paths.js ok 667 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/interpolate.js ok 668 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/lint-result-cache.js ok 669 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/module-resolver.js ok 670 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/naming.js ok 671 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/node-event-generator.js ok 672 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/npm-utils.js ok 673 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/path-utils.js ok 674 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/report-translator.js ok 675 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/rule-fixer.js ok 676 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/safe-emitter.js ok 677 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/source-code-fixer.js ok 678 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/source-code-utils.js ok 679 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/source-code.js ok 680 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/lib/util/traverser.js ok 681 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/tools/eslint-fuzzer.js ok 682 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/tools/internal-rules/consistent-docs-description.js ok 683 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/tools/internal-rules/consistent-docs-url.js ok 684 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/tools/internal-rules/consistent-meta-messages.js ok 685 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/tools/internal-rules/multiline-comment-style.js ok 686 - /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/tools/internal-rules/no-invalid-meta.js NODE_PATH=packages:tools mocha --no-timeout --reporter tap \ --exclude tests/lib/formatters/table.js --exclude tests/tools/eslint-fuzzer.js --exclude tests/lib/cli.js --exclude tests/lib/cli-engine.js --exclude tests/lib/util/source-code.js --exclude tests/bin/eslint.js --exclude tests/lib/config.js --exclude tests/lib/config/config-file.js --exclude tests/lib/config/config-initializer.js --exclude tests/lib/formatters/codeframe.js --exclude tests/lib/formatters/stylish.js --exclude tests/lib/linter.js --exclude tests/lib/rules/camelcase.js --exclude tests/lib/rules/id-length.js --exclude tests/lib/rules/id-match.js --exclude tests/lib/rules/require-await.js --exclude tests/lib/util/glob-utils.js --exclude tests/lib/util/ignored-paths.js --exclude tests/lib/util/lint-result-cache.js --exclude tests/lib/util/node-event-generator.js --exclude tests/lib/util/npm-utils.js --exclude tests/lib/util/source-code-utils.js \ 'tests/{bin,lib,tools}/**/*.js' ok 1 api should have RuleTester exposed ok 2 api should have CLIEngine exposed ok 3 api should have linter exposed ok 4 api should have SourceCode exposed ok 5 CodePathAnalyzer should implement EventGenerator interface should have `emitter` property. ok 6 CodePathAnalyzer should implement EventGenerator interface should have `enterNode` property. ok 7 CodePathAnalyzer should implement EventGenerator interface should have `leaveNode` property. ok 8 CodePathAnalyzer interface of code paths should have `id` as unique string ok 9 CodePathAnalyzer interface of code paths should have `upper` as CodePath ok 10 CodePathAnalyzer interface of code paths should have `childCodePaths` as CodePath[] ok 11 CodePathAnalyzer interface of code paths should have `initialSegment` as CodePathSegment ok 12 CodePathAnalyzer interface of code paths should have `finalSegments` as CodePathSegment[] ok 13 CodePathAnalyzer interface of code paths should have `returnedSegments` as CodePathSegment[] ok 14 CodePathAnalyzer interface of code paths should have `thrownSegments` as CodePathSegment[] ok 15 CodePathAnalyzer interface of code paths should have `currentSegments` as CodePathSegment[] ok 16 CodePathAnalyzer interface of code path segments should have `id` as unique string ok 17 CodePathAnalyzer interface of code path segments should have `nextSegments` as CodePathSegment[] ok 18 CodePathAnalyzer interface of code path segments should have `allNextSegments` as CodePathSegment[] ok 19 CodePathAnalyzer interface of code path segments should have `prevSegments` as CodePathSegment[] ok 20 CodePathAnalyzer interface of code path segments should have `allPrevSegments` as CodePathSegment[] ok 21 CodePathAnalyzer interface of code path segments should have `reachable` as boolean ok 22 CodePathAnalyzer onCodePathStart should be fired at the head of programs/functions ok 23 CodePathAnalyzer onCodePathEnd should be fired at the end of programs/functions ok 24 CodePathAnalyzer onCodePathSegmentStart should be fired at the head of programs/functions for the initial segment ok 25 CodePathAnalyzer onCodePathSegmentEnd should be fired at the end of programs/functions for the final segment ok 26 CodePathAnalyzer onCodePathSegmentLoop should be fired in `while` loops ok 27 CodePathAnalyzer onCodePathSegmentLoop should be fired in `do-while` loops ok 28 CodePathAnalyzer onCodePathSegmentLoop should be fired in `for` loops ok 29 CodePathAnalyzer onCodePathSegmentLoop should be fired in `for-in` loops ok 30 CodePathAnalyzer onCodePathSegmentLoop should be fired in `for-of` loops ok 31 CodePathAnalyzer completed code paths are correct block-and-break-1.js ok 32 CodePathAnalyzer completed code paths are correct block-and-break-2.js ok 33 CodePathAnalyzer completed code paths are correct block-and-break-3.js ok 34 CodePathAnalyzer completed code paths are correct block-and-break-4.js ok 35 CodePathAnalyzer completed code paths are correct default-params--nest.js ok 36 CodePathAnalyzer completed code paths are correct default-params--simple.js ok 37 CodePathAnalyzer completed code paths are correct do-while--break-always.js ok 38 CodePathAnalyzer completed code paths are correct do-while--break-label.js ok 39 CodePathAnalyzer completed code paths are correct do-while--break-nest.js ok 40 CodePathAnalyzer completed code paths are correct do-while--break-simple.js ok 41 CodePathAnalyzer completed code paths are correct do-while--continue-always.js ok 42 CodePathAnalyzer completed code paths are correct do-while--continue-label.js ok 43 CodePathAnalyzer completed code paths are correct do-while--continue-nest.js ok 44 CodePathAnalyzer completed code paths are correct do-while--continue-simple.js ok 45 CodePathAnalyzer completed code paths are correct do-while--empty.js ok 46 CodePathAnalyzer completed code paths are correct do-while--simple.js ok 47 CodePathAnalyzer completed code paths are correct for--break-always.js ok 48 CodePathAnalyzer completed code paths are correct for--break-label.js ok 49 CodePathAnalyzer completed code paths are correct for--break-nest.js ok 50 CodePathAnalyzer completed code paths are correct for--break-simple-no-test.js ok 51 CodePathAnalyzer completed code paths are correct for--break-simple-no-update.js ok 52 CodePathAnalyzer completed code paths are correct for--break-simple.js ok 53 CodePathAnalyzer completed code paths are correct for--continue-always.js ok 54 CodePathAnalyzer completed code paths are correct for--continue-label.js ok 55 CodePathAnalyzer completed code paths are correct for--continue-nest.js ok 56 CodePathAnalyzer completed code paths are correct for--continue-simple-no-test.js ok 57 CodePathAnalyzer completed code paths are correct for--continue-simple-no-update.js ok 58 CodePathAnalyzer completed code paths are correct for--continue-simple.js ok 59 CodePathAnalyzer completed code paths are correct for--direct-nest.js ok 60 CodePathAnalyzer completed code paths are correct for--empty.js ok 61 CodePathAnalyzer completed code paths are correct for--simple-fork-in-test-update.js ok 62 CodePathAnalyzer completed code paths are correct for--simple-no-test.js ok 63 CodePathAnalyzer completed code paths are correct for--simple-no-update.js ok 64 CodePathAnalyzer completed code paths are correct for--simple-test-true.js ok 65 CodePathAnalyzer completed code paths are correct for--simple.js ok 66 CodePathAnalyzer completed code paths are correct for-in--break-always.js ok 67 CodePathAnalyzer completed code paths are correct for-in--break-label.js ok 68 CodePathAnalyzer completed code paths are correct for-in--break-nest.js ok 69 CodePathAnalyzer completed code paths are correct for-in--break-simple.js ok 70 CodePathAnalyzer completed code paths are correct for-in--continue-always.js ok 71 CodePathAnalyzer completed code paths are correct for-in--continue-label.js ok 72 CodePathAnalyzer completed code paths are correct for-in--continue-nest.js ok 73 CodePathAnalyzer completed code paths are correct for-in--continue-simple.js ok 74 CodePathAnalyzer completed code paths are correct for-in--direct-nest.js ok 75 CodePathAnalyzer completed code paths are correct for-in--empty.js ok 76 CodePathAnalyzer completed code paths are correct for-in--simple.js ok 77 CodePathAnalyzer completed code paths are correct for-of--break-always.js ok 78 CodePathAnalyzer completed code paths are correct for-of--break-label.js ok 79 CodePathAnalyzer completed code paths are correct for-of--break-nest.js ok 80 CodePathAnalyzer completed code paths are correct for-of--break-simple.js ok 81 CodePathAnalyzer completed code paths are correct for-of--continue-always.js ok 82 CodePathAnalyzer completed code paths are correct for-of--continue-label.js ok 83 CodePathAnalyzer completed code paths are correct for-of--continue-nest.js ok 84 CodePathAnalyzer completed code paths are correct for-of--continue-simple.js ok 85 CodePathAnalyzer completed code paths are correct for-of--direct-nest.js ok 86 CodePathAnalyzer completed code paths are correct for-of--empty.js ok 87 CodePathAnalyzer completed code paths are correct for-of--simple.js ok 88 CodePathAnalyzer completed code paths are correct function--in-condition-expr.js ok 89 CodePathAnalyzer completed code paths are correct function--in-logical-right.js ok 90 CodePathAnalyzer completed code paths are correct function--simple.js ok 91 CodePathAnalyzer completed code paths are correct if-1.js ok 92 CodePathAnalyzer completed code paths are correct if-2.js ok 93 CodePathAnalyzer completed code paths are correct if-3.js ok 94 CodePathAnalyzer completed code paths are correct if-4.js ok 95 CodePathAnalyzer completed code paths are correct if-5.js ok 96 CodePathAnalyzer completed code paths are correct if-6.js ok 97 CodePathAnalyzer completed code paths are correct logical--do-while-and-1.js ok 98 CodePathAnalyzer completed code paths are correct logical--do-while-and-2.js ok 99 CodePathAnalyzer completed code paths are correct logical--do-while-mix-1.js ok 100 CodePathAnalyzer completed code paths are correct logical--do-while-mix-2.js ok 101 CodePathAnalyzer completed code paths are correct logical--do-while-or-1.js ok 102 CodePathAnalyzer completed code paths are correct logical--do-while-or-2.js ok 103 CodePathAnalyzer completed code paths are correct logical--for-and-1.js ok 104 CodePathAnalyzer completed code paths are correct logical--for-and-2.js ok 105 CodePathAnalyzer completed code paths are correct logical--for-and-3.js ok 106 CodePathAnalyzer completed code paths are correct logical--for-mix-1.js ok 107 CodePathAnalyzer completed code paths are correct logical--for-mix-2.js ok 108 CodePathAnalyzer completed code paths are correct logical--for-mix-3.js ok 109 CodePathAnalyzer completed code paths are correct logical--for-or-1.js ok 110 CodePathAnalyzer completed code paths are correct logical--for-or-2.js ok 111 CodePathAnalyzer completed code paths are correct logical--for-or-3.js ok 112 CodePathAnalyzer completed code paths are correct logical--if-and-1.js ok 113 CodePathAnalyzer completed code paths are correct logical--if-and-2.js ok 114 CodePathAnalyzer completed code paths are correct logical--if-and-3.js ok 115 CodePathAnalyzer completed code paths are correct logical--if-and-4.js ok 116 CodePathAnalyzer completed code paths are correct logical--if-and-5.js ok 117 CodePathAnalyzer completed code paths are correct logical--if-mix-1.js ok 118 CodePathAnalyzer completed code paths are correct logical--if-mix-2.js ok 119 CodePathAnalyzer completed code paths are correct logical--if-or-1.js ok 120 CodePathAnalyzer completed code paths are correct logical--if-or-2.js ok 121 CodePathAnalyzer completed code paths are correct logical--if-or-3.js ok 122 CodePathAnalyzer completed code paths are correct logical--if-or-4.js ok 123 CodePathAnalyzer completed code paths are correct logical--if-or-5.js ok 124 CodePathAnalyzer completed code paths are correct logical--simple-1.js ok 125 CodePathAnalyzer completed code paths are correct logical--simple-2.js ok 126 CodePathAnalyzer completed code paths are correct logical--while-and-1.js ok 127 CodePathAnalyzer completed code paths are correct logical--while-and-2.js ok 128 CodePathAnalyzer completed code paths are correct logical--while-mix-1.js ok 129 CodePathAnalyzer completed code paths are correct logical--while-mix-2.js ok 130 CodePathAnalyzer completed code paths are correct logical--while-or-1.js ok 131 CodePathAnalyzer completed code paths are correct logical--while-or-2.js ok 132 CodePathAnalyzer completed code paths are correct switch--cases-1.js ok 133 CodePathAnalyzer completed code paths are correct switch--cases-2.js ok 134 CodePathAnalyzer completed code paths are correct switch--cases-and-default-1.js ok 135 CodePathAnalyzer completed code paths are correct switch--cases-and-default-2.js ok 136 CodePathAnalyzer completed code paths are correct switch--cases-and-default-3.js ok 137 CodePathAnalyzer completed code paths are correct switch--default-only-1.js ok 138 CodePathAnalyzer completed code paths are correct switch--default-only-2.js ok 139 CodePathAnalyzer completed code paths are correct switch--empty.js ok 140 CodePathAnalyzer completed code paths are correct switch--precedence.js ok 141 CodePathAnalyzer completed code paths are correct switch--single-case-1.js ok 142 CodePathAnalyzer completed code paths are correct switch--single-case-2.js ok 143 CodePathAnalyzer completed code paths are correct try--try-catch-1.js ok 144 CodePathAnalyzer completed code paths are correct try--try-catch-2.js ok 145 CodePathAnalyzer completed code paths are correct try--try-catch-3.js ok 146 CodePathAnalyzer completed code paths are correct try--try-catch-4.js ok 147 CodePathAnalyzer completed code paths are correct try--try-catch-finally-1.js ok 148 CodePathAnalyzer completed code paths are correct try--try-catch-finally-2.js ok 149 CodePathAnalyzer completed code paths are correct try--try-catch-finally-3.js ok 150 CodePathAnalyzer completed code paths are correct try--try-finally-1.js ok 151 CodePathAnalyzer completed code paths are correct try--try-finally-2.js ok 152 CodePathAnalyzer completed code paths are correct try--try-finally-3.js ok 153 CodePathAnalyzer completed code paths are correct try--try-finally-4.js ok 154 CodePathAnalyzer completed code paths are correct try--try-finally-5.js ok 155 CodePathAnalyzer completed code paths are correct try--try-with-for-inof-1.js ok 156 CodePathAnalyzer completed code paths are correct try--try-with-for-inof-2.js ok 157 CodePathAnalyzer completed code paths are correct unreachable-controls.js ok 158 CodePathAnalyzer completed code paths are correct while--break-always.js ok 159 CodePathAnalyzer completed code paths are correct while--break-label.js ok 160 CodePathAnalyzer completed code paths are correct while--break-nest-2.js ok 161 CodePathAnalyzer completed code paths are correct while--break-nest.js ok 162 CodePathAnalyzer completed code paths are correct while--break-simple.js ok 163 CodePathAnalyzer completed code paths are correct while--continue-always.js ok 164 CodePathAnalyzer completed code paths are correct while--continue-label.js ok 165 CodePathAnalyzer completed code paths are correct while--continue-nest.js ok 166 CodePathAnalyzer completed code paths are correct while--continue-simple.js ok 167 CodePathAnalyzer completed code paths are correct while--direct-nest.js ok 168 CodePathAnalyzer completed code paths are correct while--empty.js ok 169 CodePathAnalyzer completed code paths are correct while--simple.js ok 170 CodePathAnalyzer .traverseSegments() should traverse segments from `options.first` to `options.last`. ok 171 CodePathAnalyzer .traverseSegments() should stop immediately when 'controller.break()' was called. ok 172 CodePathAnalyzer .traverseSegments() should skip the current branch when 'controller.skip()' was called. ok 173 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: simple ok 174 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: if ok 175 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: switch ok 176 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: while ok 177 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: for ok 178 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: for-in ok 179 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: try-catch ok 180 autoconfig Registry should set up a registry for rules in a provided rulesConfig ok 181 autoconfig Registry should not have any rules if constructed without a config argument ok 182 autoconfig Registry should create registryItems for each rule with the proper keys ok 183 autoconfig Registry should populate the config property correctly ok 184 autoconfig Registry should assign the correct specificity ok 185 autoconfig Registry should initially leave the errorCount as undefined ok 186 autoconfig Registry populateFromCoreRules() should add core rules to registry ok 187 autoconfig Registry populateFromCoreRules() should not add duplicate rules ok 188 autoconfig Registry buildRuleSets() should create an array of rule configuration sets ok 189 autoconfig Registry buildRuleSets() should include configs for each rule (at least for the first set) ok 190 autoconfig Registry buildRuleSets() should create the first set from default rule configs (severity only) ok 191 autoconfig Registry buildRuleSets() should create as many ruleSets as the highest number of configs in a rule ok 192 autoconfig Registry lintSourceCode() should populate the errorCount of all registryItems ok 193 autoconfig Registry lintSourceCode() should correctly set the error count of configurations ok 194 autoconfig Registry lintSourceCode() should respect inline eslint config comments (and not crash when they make linting errors) ok 195 autoconfig Registry stripFailingConfigs() should remove all registryItems with a non-zero errorCount ok 196 autoconfig Registry getFailingRulesRegistry() should return a registry with no registryItems with an errorCount of zero ok 197 autoconfig Registry createConfig() should create a config with a rules property ok 198 autoconfig Registry createConfig() should add rules which have only one registryItem to the config ok 199 autoconfig Registry createConfig() should set the configuration of the rule to the registryItem's `config` value ok 200 autoconfig Registry createConfig() should not care how many errors the config has ok 201 autoconfig Registry filterBySpecificity() should return a registry where all configs have a desired specificity ok 202 ConfigOps applyEnvironments() should apply environment settings to config without destroying original settings ok 203 ConfigOps applyEnvironments() should not apply environment settings to config without environments ok 204 ConfigOps applyEnvironments() should apply multiple environment settings to config without destroying original settings ok 205 ConfigOps createEnvironmentConfig() should return empty config if called without any config ok 206 ConfigOps createEnvironmentConfig() should return correct config for env with no globals ok 207 ConfigOps createEnvironmentConfig() should create the correct config for Node.js environment ok 208 ConfigOps createEnvironmentConfig() should create the correct config for ES6 environment ok 209 ConfigOps createEnvironmentConfig() should create empty config when no environments are specified ok 210 ConfigOps createEnvironmentConfig() should create empty config when an unknown environment is specified ok 211 ConfigOps merge() should combine two objects when passed two objects with different top-level properties ok 212 ConfigOps merge() should combine without blowing up on null values ok 213 ConfigOps merge() should combine two objects with parser when passed two objects with different top-level properties ok 214 ConfigOps merge() should combine configs and override rules when passed configs with the same rules ok 215 ConfigOps merge() should combine configs when passed configs with parserOptions ok 216 ConfigOps merge() should override configs when passed configs with the same ecmaFeatures ok 217 ConfigOps merge() should combine configs and override rules when merging two configs with arrays and int ok 218 ConfigOps merge() should combine configs and override rules options completely ok 219 ConfigOps merge() should combine configs and override rules options without array or object ok 220 ConfigOps merge() should combine configs and override rules options without array or object but special case ok 221 ConfigOps merge() should combine extends correctly ok 222 ConfigOps merge() should combine configs correctly ok 223 ConfigOps merge() should copy deeply if there is not the destination's property ok 224 ConfigOps merge() plugins should combine the plugin entries when each config has different plugins ok 225 ConfigOps merge() plugins should avoid duplicate plugin entries when each config has the same plugin ok 226 ConfigOps merge() plugins should create a valid config when one argument is an empty object ok 227 ConfigOps merge() overrides should combine the override entries in the correct order ok 228 ConfigOps merge() overrides should work if the base config doesn’t have an overrides property ok 229 ConfigOps merge() overrides should work if the custom config doesn’t have an overrides property ok 230 ConfigOps merge() overrides should work if overrides are null in the base config ok 231 ConfigOps merge() overrides should work if overrides are null in the custom config ok 232 ConfigOps getRuleSeverity() returns 0 for 0 ok 233 ConfigOps getRuleSeverity() returns 1 for 1 ok 234 ConfigOps getRuleSeverity() returns 2 for 2 ok 235 ConfigOps getRuleSeverity() returns 0 for [ 0 ] ok 236 ConfigOps getRuleSeverity() returns 1 for [ 1 ] ok 237 ConfigOps getRuleSeverity() returns 2 for [ 2 ] ok 238 ConfigOps getRuleSeverity() returns 0 for 'off' ok 239 ConfigOps getRuleSeverity() returns 1 for 'warn' ok 240 ConfigOps getRuleSeverity() returns 2 for 'error' ok 241 ConfigOps getRuleSeverity() returns 0 for [ 'off' ] ok 242 ConfigOps getRuleSeverity() returns 1 for [ 'warn' ] ok 243 ConfigOps getRuleSeverity() returns 2 for [ 'error' ] ok 244 ConfigOps getRuleSeverity() returns 0 for 'OFF' ok 245 ConfigOps getRuleSeverity() returns 1 for 'wArN' ok 246 ConfigOps getRuleSeverity() returns 2 for [ 'ErRoR' ] ok 247 ConfigOps getRuleSeverity() returns 0 for 'invalid config' ok 248 ConfigOps getRuleSeverity() returns 0 for [ 'invalid config' ] ok 249 ConfigOps getRuleSeverity() returns 0 for 3 ok 250 ConfigOps getRuleSeverity() returns 0 for [ 3 ] ok 251 ConfigOps getRuleSeverity() returns 0 for 1.5 ok 252 ConfigOps getRuleSeverity() returns 0 for [ 1.5 ] ok 253 ConfigOps normalizeToStrings() should convert 2 rule setting to error when rule has just a severity ok 254 ConfigOps normalizeToStrings() should convert 2 rule setting to error when rule has array with severity ok 255 ConfigOps normalizeToStrings() should convert 1 rule setting to warn when rule has just a severity ok 256 ConfigOps normalizeToStrings() should convert 1 rule setting to warn when rule has array with severity ok 257 ConfigOps normalizeToStrings() should convert 0 rule setting to off when rule has just a severity ok 258 ConfigOps normalizeToStrings() should convert 0 rule setting to off when rule has array with severity ok 259 ConfigOps normalizeToStrings() should convert 256 rule setting to off when rule has just a severity ok 260 ConfigOps normalizeToStrings() should convert 256 rule setting to off when rule has array with severity ok 261 ConfigOps isError() with error,true should return truewhen passed error ok 262 ConfigOps isError() with Error,true should return truewhen passed Error ok 263 ConfigOps isError() with 2,true should return truewhen passed 2 ok 264 ConfigOps isError() with erRor,true should return truewhen passed erRor ok 265 ConfigOps isError() with error,foo,true should return truewhen passed error,foo ok 266 ConfigOps isError() with eRror,bar,true should return truewhen passed eRror,bar ok 267 ConfigOps isError() with 2,baz,true should return truewhen passed 2,baz ok 268 ConfigOps getConfigFromVector() should get from merged vector cache when present ok 269 ConfigOps getConfigFromVector() should get from raw cached configs when no merged vectors are cached ok 270 ConfigOps pathMatchesGlobs matches foo.js given 'foo.js' includes and '' excludes ok 271 ConfigOps pathMatchesGlobs matches foo.js given '*' includes and '' excludes ok 272 ConfigOps pathMatchesGlobs matches foo.js given '*.js' includes and '' excludes ok 273 ConfigOps pathMatchesGlobs matches foo.js given '**/*.js' includes and '' excludes ok 274 ConfigOps pathMatchesGlobs matches bar.js given '*.js' includes and 'foo.js' excludes ok 275 ConfigOps pathMatchesGlobs does not match foo.js given './foo.js' includes and '' excludes ok 276 ConfigOps pathMatchesGlobs does not match foo.js given './*' includes and '' excludes ok 277 ConfigOps pathMatchesGlobs does not match foo.js given './**' includes and '' excludes ok 278 ConfigOps pathMatchesGlobs does not match foo.js given '*' includes and 'foo.js' excludes ok 279 ConfigOps pathMatchesGlobs does not match foo.js given '*.js' includes and 'foo.js' excludes ok 280 ConfigOps pathMatchesGlobs does not match foo.js given '**/*.js' includes and 'foo.js' excludes ok 281 ConfigOps pathMatchesGlobs matches subdir/foo.js given 'foo.js' includes and '' excludes ok 282 ConfigOps pathMatchesGlobs matches subdir/foo.js given '*' includes and '' excludes ok 283 ConfigOps pathMatchesGlobs matches subdir/foo.js given '*.js' includes and '' excludes ok 284 ConfigOps pathMatchesGlobs matches subdir/foo.js given '**/*.js' includes and '' excludes ok 285 ConfigOps pathMatchesGlobs matches subdir/foo.js given 'subdir/*.js' includes and '' excludes ok 286 ConfigOps pathMatchesGlobs matches subdir/foo.js given 'subdir/foo.js' includes and '' excludes ok 287 ConfigOps pathMatchesGlobs matches subdir/foo.js given 'subdir/*' includes and '' excludes ok 288 ConfigOps pathMatchesGlobs matches subdir/second/foo.js given 'subdir/**' includes and '' excludes ok 289 ConfigOps pathMatchesGlobs does not match subdir/foo.js given './foo.js' includes and '' excludes ok 290 ConfigOps pathMatchesGlobs does not match subdir/foo.js given './**' includes and '' excludes ok 291 ConfigOps pathMatchesGlobs does not match subdir/foo.js given './subdir/**' includes and '' excludes ok 292 ConfigOps pathMatchesGlobs does not match subdir/foo.js given './subdir/*' includes and '' excludes ok 293 ConfigOps pathMatchesGlobs does not match subdir/foo.js given '*' includes and 'subdir/**' excludes ok 294 ConfigOps pathMatchesGlobs does not match subdir/very/deep/foo.js given '*.js' includes and 'subdir/**' excludes ok 295 ConfigOps pathMatchesGlobs does not match subdir/second/foo.js given 'subdir/*' includes and '' excludes ok 296 ConfigOps pathMatchesGlobs does not match subdir/second/foo.js given 'subdir/**' includes and 'subdir/second/*' excludes ok 297 ConfigOps pathMatchesGlobs emits an error given '/*.js' ok 298 ConfigOps pathMatchesGlobs emits an error given '/foo.js' ok 299 ConfigOps pathMatchesGlobs emits an error given '../**' ok 300 ConfigOps normalizeConfigGlobal 'off' ok 301 ConfigOps normalizeConfigGlobal true ok 302 ConfigOps normalizeConfigGlobal 'true' ok 303 ConfigOps normalizeConfigGlobal false ok 304 ConfigOps normalizeConfigGlobal 'false' ok 305 ConfigOps normalizeConfigGlobal null ok 306 ConfigOps normalizeConfigGlobal 'writeable' ok 307 ConfigOps normalizeConfigGlobal 'writable' ok 308 ConfigOps normalizeConfigGlobal 'readable' ok 309 ConfigOps normalizeConfigGlobal 'readonly' ok 310 ConfigOps normalizeConfigGlobal 'writable' ok 311 ConfigOps normalizeConfigGlobal 'something else' ok 312 ConfigRule generateConfigsFromSchema() should create a config with only severity for an empty schema ok 313 ConfigRule generateConfigsFromSchema() should create a config with only severity with no arguments ok 314 ConfigRule generateConfigsFromSchema() for a single enum schema should create an array of configs ok 315 ConfigRule generateConfigsFromSchema() for a single enum schema should include the error severity (2) without options as the first config ok 316 ConfigRule generateConfigsFromSchema() for a single enum schema should set all configs to error severity (2) ok 317 ConfigRule generateConfigsFromSchema() for a single enum schema should return configs with each enumerated value in the schema ok 318 ConfigRule generateConfigsFromSchema() for a object schema with a single enum property should return configs with option objects ok 319 ConfigRule generateConfigsFromSchema() for a object schema with a single enum property should use the object property name from the schema ok 320 ConfigRule generateConfigsFromSchema() for a object schema with a single enum property should have each enum as option object values ok 321 ConfigRule generateConfigsFromSchema() for a object schema with a multiple enum properties should create configs for all properties in each config ok 322 ConfigRule generateConfigsFromSchema() for a object schema with a multiple enum properties should create configs for every possible combination ok 323 ConfigRule generateConfigsFromSchema() for a object schema with a single boolean property should return configs with option objects ok 324 ConfigRule generateConfigsFromSchema() for a object schema with a single boolean property should use the object property name from the schema ok 325 ConfigRule generateConfigsFromSchema() for a object schema with a single boolean property should include both true and false configs ok 326 ConfigRule generateConfigsFromSchema() for a object schema with a multiple bool properties should create configs for all properties in each config ok 327 ConfigRule generateConfigsFromSchema() for a object schema with a multiple bool properties should create configs for every possible combination ok 328 ConfigRule generateConfigsFromSchema() for a schema with an enum and an object should create configs with only the enum values ok 329 ConfigRule generateConfigsFromSchema() for a schema with an enum and an object should create configs with a string and an object ok 330 ConfigRule generateConfigsFromSchema() for a schema with an enum followed by an object with no usable properties should create config only for the enum ok 331 ConfigRule generateConfigsFromSchema() for a schema with an enum preceded by an object with no usable properties should not create a config for the enum ok 332 ConfigRule generateConfigsFromSchema() for a schema with an enum preceded by a string should not create a config for the enum ok 333 ConfigRule generateConfigsFromSchema() for a schema with oneOf should create a set of configs ok 334 ConfigRule generateConfigsFromSchema() for a schema with nested objects should create a set of configs ok 335 ConfigRule createCoreRuleConfigs() should create a rulesConfig containing all core rules ok 336 ConfigRule createCoreRuleConfigs() should create arrays of configs for rules ok 337 ConfigRule createCoreRuleConfigs() should create configs for rules with meta ok 338 Validator validate should do nothing with an empty config ok 339 Validator validate should do nothing with a valid eslint config ok 340 Validator validate should throw with an unknown property ok 341 Validator validate root should throw with a string value ok 342 Validator validate root should throw with a numeric value ok 343 Validator validate globals should throw with a string value ok 344 Validator validate globals should throw with an array value ok 345 Validator validate parser should not throw with a null value ok 346 Validator validate env should throw with an array environment ok 347 Validator validate env should throw with a primitive environment ok 348 Validator validate env should catch invalid environments ok 349 Validator validate env should catch disabled invalid environments ok 350 Validator validate env should do nothing with an undefined environment ok 351 Validator validate plugins should not throw with an empty array ok 352 Validator validate plugins should throw with a string ok 353 Validator validate settings should not throw with an empty object ok 354 Validator validate settings should throw with an array ok 355 Validator validate extends should not throw with an empty array ok 356 Validator validate extends should not throw with a string ok 357 Validator validate extends should throw with an object ok 358 Validator validate parserOptions should not throw with an empty object ok 359 Validator validate parserOptions should throw with an array ok 360 Validator validate rules should do nothing with an empty rules object ok 361 Validator validate rules should do nothing with a valid config with rules ok 362 Validator validate rules should do nothing with a valid config when severity is off ok 363 Validator validate rules should do nothing with an invalid config when severity is off ok 364 Validator validate rules should do nothing with an invalid config when severity is an array with 'off' ok 365 Validator validate rules should do nothing with a valid config when severity is warn ok 366 Validator validate rules should do nothing with a valid config when severity is error ok 367 Validator validate rules should do nothing with a valid config when severity is Off ok 368 Validator validate rules should do nothing with a valid config when severity is Warn ok 369 Validator validate rules should do nothing with a valid config when severity is Error ok 370 Validator validate rules should catch invalid rule options ok 371 Validator validate rules should allow for rules with no options ok 372 Validator validate rules should not allow options for rules with no options ok 373 Validator validate overrides should not throw with an empty overrides array ok 374 Validator validate overrides should not throw with a valid overrides array ok 375 Validator validate overrides should throw if override does not specify files ok 376 Validator validate overrides should throw if override has an empty files array ok 377 Validator validate overrides should throw if override has nested overrides ok 378 Validator validate overrides should throw if override extends ok 379 Validator validate overrides should throw if override tries to set root ok 380 Validator validate overrides env should catch invalid environments ok 381 Validator validate overrides env should catch disabled invalid environments ok 382 Validator validate overrides rules should catch invalid rule options ok 383 Validator validate overrides rules should not allow options for rules with no options ok 384 Validator getRuleOptionsSchema should return null for a missing rule ok 385 Validator getRuleOptionsSchema should not modify object schema ok 386 Validator validateRuleOptions should throw for incorrect warning level number ok 387 Validator validateRuleOptions should throw for incorrect warning level string ok 388 Validator validateRuleOptions should throw for invalid-type warning level ok 389 Validator validateRuleOptions should only check warning level for nonexistent rules ok 390 Validator validateRuleOptions should only check warning level for plugin rules ok 391 Validator validateRuleOptions should throw for incorrect configuration values ok 392 Validator validateRuleOptions should throw for too many configuration values ok 393 Environments load() should have all default environments loaded ok 394 Environments define() should add an environment with the given name ok 395 Environments importPlugin() should import all environments from a plugin object ok 396 Plugins get should return null when plugin doesn't exist ok 397 Plugins load() should load a plugin when referenced by short name ok 398 Plugins load() should load a plugin when referenced by long name ok 399 Plugins load() should register environments when plugin has environments ok 400 Plugins load() should register rules when plugin has rules ok 401 Plugins load() should throw an error when a plugin has whitespace ok 402 Plugins load() should throw an error when a plugin doesn't exist ok 403 Plugins load() should rethrow an error that a plugin throws on load ok 404 Plugins load() should load a scoped plugin when referenced by short name ok 405 Plugins load() should load a scoped plugin when referenced by long name ok 406 Plugins load() should register environments when scoped plugin has environments ok 407 Plugins load() should register rules when scoped plugin has rules ok 408 Plugins load() when referencing a scope plugin and omitting @scope/ should load a scoped plugin when referenced by short name, but should not get the plugin if '@scope/' is omitted ok 409 Plugins load() when referencing a scope plugin and omitting @scope/ should load a scoped plugin when referenced by long name, but should not get the plugin if '@scope/' is omitted ok 410 Plugins load() when referencing a scope plugin and omitting @scope/ should register environments when scoped plugin has environments, but should not get the environment if '@scope/' is omitted ok 411 Plugins load() when referencing a scope plugin and omitting @scope/ should register rules when scoped plugin has rules, but should not get the rule if '@scope/' is omitted ok 412 Plugins loadAll() should load plugins when passed multiple plugins ok 413 Plugins loadAll() should load environments from plugins when passed multiple plugins ok 414 Plugins loadAll() should load rules from plugins when passed multiple plugins ok 415 Plugins loadAll() should throw an error if plugins is not an array ok 416 formatter:checkstyle when passed a single message should return a string in the format filename: line x, col y, Error - z for errors ok 417 formatter:checkstyle when passed a single message should return a string in the format filename: line x, col y, Warning - z for warnings ok 418 formatter:checkstyle when passed a message with XML control characters should return a string in the format filename: line x, col y, Error - z ok 419 formatter:checkstyle when passed a fatal error message should return a string in the format filename: line x, col y, Error - z ok 420 formatter:checkstyle when passed multiple messages should return a string with multiple entries ok 421 formatter:checkstyle when passed multiple files with 1 message each should return a string with multiple entries ok 422 formatter:checkstyle when passing single message without rule id should return a string in the format filename: line x, col y, Error - z for errors ok 423 formatter:compact when passed no messages should return nothing ok 424 formatter:compact when passed a single message should return a string in the format filename: line x, col y, Error - z for errors ok 425 formatter:compact when passed a single message should return a string in the format filename: line x, col y, Warning - z for warnings ok 426 formatter:compact when passed a fatal error message should return a string in the format filename: line x, col y, Error - z ok 427 formatter:compact when passed multiple messages should return a string with multiple entries ok 428 formatter:compact when passed multiple files with 1 message each should return a string with multiple entries ok 429 formatter:compact when passed one file not found message should return a string without line and column ok 430 formatter:html when passed a single error message should return a string in HTML format with 1 issue in 1 file and styled accordingly ok 431 formatter:html when passed a single error message should not fail if metadata is not available ok 432 formatter:html when passed a single warning message should return a string in HTML format with 1 issue in 1 file and styled accordingly ok 433 formatter:html when passed a single error message should return a string in HTML format with 1 issue in 1 file and styled accordingly ok 434 formatter:html when passed no error/warning messages should return a string in HTML format with 0 issues in 1 file and styled accordingly ok 435 formatter:html when passed multiple messages should return a string in HTML format with 2 issues in 1 file and styled accordingly ok 436 formatter:html when passed multiple files with 1 error & warning message respectively should return a string in HTML format with 2 issues in 2 files and styled accordingly ok 437 formatter:html when passed multiple files with 1 warning message each should return a string in HTML format with 2 issues in 2 files and styled accordingly ok 438 formatter:html when passing a single message with illegal characters should return a string in HTML format with 1 issue in 1 file ok 439 formatter:html when passing a single message with no rule id or message should return a string in HTML format with 1 issue in 1 file ok 440 formatter:html when passed a single message with no line or column should return a string in HTML format with 1 issue in 1 file and styled accordingly ok 441 formatter:jslint-xml when passed a single message should return a string in JSLint XML format with 1 issue in 1 file ok 442 formatter:jslint-xml when passed a fatal error message should return a string in JSLint XML format with 1 issue in 1 file ok 443 formatter:jslint-xml when passed multiple messages should return a string in JSLint XML format with 2 issues in 1 file ok 444 formatter:jslint-xml when passed multiple files with 1 message each should return a string in JSLint XML format with 2 issues in 2 files ok 445 formatter:jslint-xml when passing a single message with illegal characters should return a string in JSLint XML format with 1 issue in 1 file ok 446 formatter:jslint-xml when passing a single message with no source should return a string in JSLint XML format with 1 issue in 1 file ok 447 formatter:jslint-xml when passing a single message without rule id should return a string in JSLint XML format with 1 issue in 1 file ok 448 formatter:json should return passed results and data as a JSON string without any modification ok 449 formatter:json should return passed results as a JSON string without any modification ok 450 formatter:junit when there are no problems should not complain about anything ok 451 formatter:junit when passed a single message should return a single <testcase> with a message and the line and col number in the body (error) ok 452 formatter:junit when passed a single message should return a single <testcase> with a message and the line and col number in the body (warning) ok 453 formatter:junit when passed a fatal error message should return a single <testcase> and an <error> ok 454 formatter:junit when passed a fatal error message with no line or column should return a single <testcase> and an <error> ok 455 formatter:junit when passed a fatal error message with no line, column, or message text should return a single <testcase> and an <error> ok 456 formatter:junit when passed multiple messages should return a multiple <testcase>'s ok 457 formatter:junit when passed special characters should make them go away ok 458 formatter:junit when passed multiple files with 1 message each should return 2 <testsuite>'s ok 459 formatter:junit when passed multiple files should print even if no errors should return 2 <testsuite> ok 460 formatter:junit when passed a file with no errors should print a passing <testcase> ok 461 formatter:tap when passed no messages should return nothing ok 462 formatter:tap when passed a single message should return a string with YAML severity, line and column ok 463 formatter:tap when passed a single message should return a string with line: x, column: y, severity: warning for warnings ok 464 formatter:tap when passed a fatal error message should return an error string ok 465 formatter:tap when passed a message with a severity of 1 should return a warning string ok 466 formatter:tap when passed multiple messages with a severity of 1 should return a string with multiple entries ok 467 formatter:tap when passed multiple messages with different error severity should return a string with multiple entries ok 468 formatter:tap when passed multiple files with 1 message each should return a string with multiple entries ok 469 formatter:tap when passed one file not found message should return a string without line and column ok 470 formatter:compact when passed no messages should return nothing ok 471 formatter:compact when passed a single message should return a string in the format filename:line:column: error [Error/rule_id] ok 472 formatter:compact when passed a single message should return a string in the format filename:line:column: warning [Warning/rule_id] ok 473 formatter:compact when passed a fatal error message should return a string in the format filename:line:column: error [Error/rule_id] ok 474 formatter:compact when passed multiple messages should return a string with multiple entries ok 475 formatter:compact when passed multiple files with 1 message each should return a string with multiple entries ok 476 formatter:compact when passed one file not found message should return a string without line and column ok 477 formatter:visualstudio when passed no messages should return nothing ok 478 formatter:visualstudio when passed a single message should return a string in the format filename(x,y): error z for errors ok 479 formatter:visualstudio when passed a single message should return a string in the format filename(x,y): warning z for warnings ok 480 formatter:visualstudio when passed a fatal error message should return a string in the format filename(x,y): error z ok 481 formatter:visualstudio when passed multiple messages should return a string with multiple entries ok 482 formatter:visualstudio when passed multiple files with 1 message each should return a string with multiple entries ok 483 formatter:visualstudio when passed one file not found message should return a string without line and column ok 484 when given an invalid rules directory should throw an error ok 485 when given a valid rules directory should load rules and not throw an error ok 486 options --help should return true for .help when passed ok 487 options -h should return true for .help when passed ok 488 options --config should return a string for .config when passed a string ok 489 options -c should return a string for .config when passed a string ok 490 options --ext should return an array with one item when passed .jsx ok 491 options --ext should return an array with two items when passed .js and .jsx ok 492 options --ext should return an array with two items when passed .jsx,.js ok 493 options --ext should return an array one item when not passed ok 494 options --rulesdir should return a string for .rulesdir when passed a string ok 495 options --format should return a string for .format when passed a string ok 496 options --format should return stylish for .format when not passed ok 497 options -f should return a string for .format when passed a string ok 498 options --version should return true for .version when passed ok 499 options -v should return true for .version when passed ok 500 options when asking for help should return string of help text when called ok 501 options --no-ignore should return false for .ignore when passed ok 502 options --ignore-path should return a string for .ignorePath when passed ok 503 options --ignore-pattern should return a string array for .ignorePattern when passed ok 504 options --ignore-pattern should return a string array for multiple values ok 505 options --ignore-pattern should return a string array of properly parsed values, when those values include commas ok 506 options --color should return true for .color when passed --color ok 507 options --color should return false for .color when passed --no-color ok 508 options --stdin should return true for .stdin when passed ok 509 options --stdin-filename should return a string for .stdinFilename when passed ok 510 options --global should return an array for a single occurrence ok 511 options --global should split variable names using commas ok 512 options --global should not split on colons ok 513 options --global should concatenate successive occurrences ok 514 options --plugin should return an array when passed a single occurrence ok 515 options --plugin should return an array when passed a comma-delimiated string ok 516 options --plugin should return an array when passed multiple times ok 517 options --quiet should return true for .quiet when passed ok 518 options --max-warnings should return correct value for .maxWarnings when passed ok 519 options --max-warnings should return -1 for .maxWarnings when not passed ok 520 options --max-warnings should throw an error when supplied with a non-integer ok 521 options --init should return true for --init when passed ok 522 options --fix should return true for --fix when passed ok 523 options --fix-type should return one value with --fix-type is passed ok 524 options --fix-type should return two values when --fix-type is passed twice ok 525 options --fix-type should return two values when --fix-type is passed a comma-separated value ok 526 options --debug should return true for --debug when passed ok 527 options --inline-config should return false when passed --no-inline-config ok 528 options --inline-config should return true for --inline-config when empty ok 529 options --parser should return a string for --parser when passed ok 530 options --print-config should return file path when passed --print-config ok 531 rules when a rule has been defined should be able to retrieve the rule ok 532 rules when a rule has been defined should return the rule as an object with a create() method if the rule was defined as a function ok 533 rules when a rule has been defined should return the rule as-is if it was defined as an object with a create() method ok 534 rules when a rule is not found should return a stub rule that reports an error if the rule is unknown ok 535 rules when a rule is not found should return a stub rule that lists replacements if a rule is known to have been replaced ok 536 rules when loading all rules should return a map ok 537 accessor-pairs valid var o = { a: 1 }; ok 538 accessor-pairs valid var o = { get a() { return val; } }; ok 539 accessor-pairs valid var o = { set a(value) { val = value; }, get a() { return val; } }; ok 540 accessor-pairs valid var o = {a: 1}; Object.defineProperty(o, 'b', {set: function(value) { val = value; }, get: function() { return val; } }); ok 541 accessor-pairs valid var expr = 'foo'; var o = { set [expr](value) { val = value; }, get [expr]() { return val; } }; ok 542 accessor-pairs valid var o = { set a(value) { val = value; } }; ok 543 accessor-pairs valid var o = {set: function() {}} ok 544 accessor-pairs valid Object.defineProperties(obj, {set: {value: function() {}}}); ok 545 accessor-pairs valid Object.create(null, {set: {value: function() {}}}); ok 546 accessor-pairs valid var o = {get: function() {}} ok 547 accessor-pairs valid var o = {[set]: function() {}} ok 548 accessor-pairs valid var set = 'value'; Object.defineProperty(obj, 'foo', {[set]: function(value) {}}); ok 549 accessor-pairs invalid var o = { set a(value) { val = value; } }; ok 550 accessor-pairs invalid var o = { get a() { return val; } }; ok 551 accessor-pairs invalid var o = {d: 1}; Object.defineProperty(o, 'c', {set: function(value) { val = value; } }); ok 552 accessor-pairs invalid Reflect.defineProperty(obj, 'foo', {set: function(value) {}}); ok 553 accessor-pairs invalid Object.defineProperties(obj, {foo: {set: function(value) {}}}); ok 554 accessor-pairs invalid Object.create(null, {foo: {set: function(value) {}}}); ok 555 accessor-pairs invalid var expr = 'foo'; var o = { set [expr](value) { val = value; } }; ok 556 array-bracket-newline valid var foo = []; ok 557 array-bracket-newline valid var foo = [1]; ok 558 array-bracket-newline valid var foo = /* any comment */[1]; ok 559 array-bracket-newline valid var foo = /* any comment */ [1]; ok 560 array-bracket-newline valid var foo = [1, 2]; ok 561 array-bracket-newline valid var foo = [ // any comment 1, 2 ]; ok 562 array-bracket-newline valid var foo = [ // any comment 1, 2 ]; ok 563 array-bracket-newline valid var foo = [ 1, 2 // any comment ]; ok 564 array-bracket-newline valid var foo = [ 1, 2 ]; ok 565 array-bracket-newline valid var foo = [ function foo() { return dosomething(); } ]; ok 566 array-bracket-newline valid var foo = [/* any comment */]; ok 567 array-bracket-newline valid var foo = [/* single line multiline comment for no real reason */]; ok 568 array-bracket-newline valid var foo = [ ]; ok 569 array-bracket-newline valid var foo = [ 1 ]; ok 570 array-bracket-newline valid var foo = [ // any 1 ]; ok 571 array-bracket-newline valid var foo = [ /* any */ 1 ]; ok 572 array-bracket-newline valid var foo = [ 1, 2 ]; ok 573 array-bracket-newline valid var foo = [ 1, 2 // any comment ]; ok 574 array-bracket-newline valid var foo = [ 1, 2 /* any comment */ ]; ok 575 array-bracket-newline valid var foo = [ 1, 2 ]; ok 576 array-bracket-newline valid var foo = [ function foo() { dosomething(); } ]; ok 577 array-bracket-newline valid var foo = []; ok 578 array-bracket-newline valid var foo = [1]; ok 579 array-bracket-newline valid var foo = [/* any comment */1]; ok 580 array-bracket-newline valid var foo = [1, 2]; ok 581 array-bracket-newline valid var foo = [1, 2]; ok 582 array-bracket-newline valid var foo = [1, /* any comment */ 2]; ok 583 array-bracket-newline valid var foo = [function foo() { dosomething(); }]; ok 584 array-bracket-newline valid var a = [] ok 585 array-bracket-newline valid var a = [ ] ok 586 array-bracket-newline valid var a = [1] ok 587 array-bracket-newline valid var a = [ 1 ] ok 588 array-bracket-newline valid var foo = []; ok 589 array-bracket-newline valid var foo = [1]; ok 590 array-bracket-newline valid var foo = /* any comment */[1]; ok 591 array-bracket-newline valid var foo = /* any comment */ [1]; ok 592 array-bracket-newline valid var foo = [1, 2]; ok 593 array-bracket-newline valid var foo = [ // any comment 1, 2 ]; ok 594 array-bracket-newline valid var foo = [ // any comment 1, 2 ]; ok 595 array-bracket-newline valid var foo = [ 1, 2 // any comment ]; ok 596 array-bracket-newline valid var foo = [ 1, 2 ]; ok 597 array-bracket-newline valid var foo = [ function foo() { return dosomething(); } ]; ok 598 array-bracket-newline valid var foo = [/* any comment */]; ok 599 array-bracket-newline valid var foo = []; ok 600 array-bracket-newline valid var foo = [1]; ok 601 array-bracket-newline valid var foo = [1]/* any comment*/; ok 602 array-bracket-newline valid var foo = [1] /* any comment*/ ; ok 603 array-bracket-newline valid var foo = [1, 2]; ok 604 array-bracket-newline valid var foo = [1, 2]; ok 605 array-bracket-newline valid var foo = [function foo() { return dosomething(); }]; ok 606 array-bracket-newline valid var foo = []; ok 607 array-bracket-newline valid var foo = [1]; ok 608 array-bracket-newline valid var foo = [ 1, 2 ]; ok 609 array-bracket-newline valid var foo = [ 1, 2 ]; ok 610 array-bracket-newline valid var foo = [function foo() { dosomething(); }]; ok 611 array-bracket-newline valid var foo = [ ]; ok 612 array-bracket-newline valid var foo = [ 1 ]; ok 613 array-bracket-newline valid var foo = [ 1, 2 ]; ok 614 array-bracket-newline valid var foo = [ 1, 2 ]; ok 615 array-bracket-newline valid var foo = [ function foo() { dosomething(); } ]; ok 616 array-bracket-newline valid var foo = []; ok 617 array-bracket-newline valid var foo = [1]; ok 618 array-bracket-newline valid var foo = [1, 2]; ok 619 array-bracket-newline valid var foo = [1, 2]; ok 620 array-bracket-newline valid var foo = [function foo() { dosomething(); }]; ok 621 array-bracket-newline valid var foo = []; ok 622 array-bracket-newline valid var foo = [1]; ok 623 array-bracket-newline valid var foo = [1, 2]; ok 624 array-bracket-newline valid var foo = [ 1, 2 ]; ok 625 array-bracket-newline valid var foo = [ function foo() { dosomething(); } ]; ok 626 array-bracket-newline valid var a = []; ok 627 array-bracket-newline valid var b = [1]; ok 628 array-bracket-newline valid var b = [ // any comment 1 ]; ok 629 array-bracket-newline valid var b = [ /* any comment */ 1]; ok 630 array-bracket-newline valid var c = [ 1, 2 ]; ok 631 array-bracket-newline valid var c = [ /* any comment */1, 2 ]; ok 632 array-bracket-newline valid var c = [ 1, /* any comment */ 2 ]; ok 633 array-bracket-newline valid var d = [ 1, 2 ]; ok 634 array-bracket-newline valid var e = [ function foo() { dosomething(); } ]; ok 635 array-bracket-newline valid var [] = foo ok 636 array-bracket-newline valid var [a] = foo; ok 637 array-bracket-newline valid var /* any comment */[a] = foo; ok 638 array-bracket-newline valid var /* any comment */ [a] = foo; ok 639 array-bracket-newline valid var [a, b] = foo; ok 640 array-bracket-newline valid var [ // any comment a, b ] = foo; ok 641 array-bracket-newline valid var [ // any comment a, b ] = foo; ok 642 array-bracket-newline valid var [ a, b // any comment ] = foo; ok 643 array-bracket-newline valid var [ a, b ] = foo; ok 644 array-bracket-newline valid var [ ] = foo; ok 645 array-bracket-newline valid var [ a ] = foo; ok 646 array-bracket-newline valid var [ // any a ] = foo; ok 647 array-bracket-newline valid var [ /* any */ a ] = foo; ok 648 array-bracket-newline valid var [ a, b ] = foo; ok 649 array-bracket-newline valid var [ a, b // any comment ] = foo; ok 650 array-bracket-newline valid var [ a, b /* any comment */ ] = foo; ok 651 array-bracket-newline valid var [ a, b ] = foo; ok 652 array-bracket-newline valid var [] = foo ok 653 array-bracket-newline valid var [ ] = foo ok 654 array-bracket-newline valid var [a] = foo ok 655 array-bracket-newline valid var [ a ] = foo ok 656 array-bracket-newline valid var [] = foo; ok 657 array-bracket-newline valid var [a] = foo; ok 658 array-bracket-newline valid var /* any comment */[a] = foo; ok 659 array-bracket-newline valid var /* any comment */ [a] = foo; ok 660 array-bracket-newline valid var [a, b] = foo; ok 661 array-bracket-newline valid var [ // any comment a, b ] = foo; ok 662 array-bracket-newline valid var [ // any comment a, b ] = foo; ok 663 array-bracket-newline valid var [ a, b // any comment ] = foo; ok 664 array-bracket-newline valid var [ a, b ] = foo; ok 665 array-bracket-newline invalid var foo = []; ok 666 array-bracket-newline invalid var foo = [1]; ok 667 array-bracket-newline invalid var foo = [ // any comment 1]; ok 668 array-bracket-newline invalid var foo = [ /* any comment */ 1]; ok 669 array-bracket-newline invalid var foo = [1, 2]; ok 670 array-bracket-newline invalid var foo = [1, 2 // any comment ]; ok 671 array-bracket-newline invalid var foo = [1, 2 /* any comment */]; ok 672 array-bracket-newline invalid var foo = [1, 2]; ok 673 array-bracket-newline invalid var foo = [function foo() { dosomething(); }]; ok 674 array-bracket-newline invalid var foo = [ ]; ok 675 array-bracket-newline invalid var foo = [ 1 ]; ok 676 array-bracket-newline invalid var foo = [ 1 ]; ok 677 array-bracket-newline invalid var foo = [ /* any comment */ 1, 2 ]; ok 678 array-bracket-newline invalid var foo = [ 1, 2 /* any comment */]; ok 679 array-bracket-newline invalid var foo = [ // any comment 1, 2 ]; ok 680 array-bracket-newline invalid var foo = [ 1, 2 ]; ok 681 array-bracket-newline invalid var foo = [ function foo() { dosomething(); } ]; ok 682 array-bracket-newline invalid var foo = [ 1] ok 683 array-bracket-newline invalid var foo = [1 ] ok 684 array-bracket-newline invalid var foo = [ ]; ok 685 array-bracket-newline invalid var foo = [ // any comment ]; ok 686 array-bracket-newline invalid var foo = [ 1 ]; ok 687 array-bracket-newline invalid var foo = [ 1, 2 ]; ok 688 array-bracket-newline invalid var foo = [1, 2]; ok 689 array-bracket-newline invalid var foo = [function foo() { dosomething(); }]; ok 690 array-bracket-newline invalid var foo = [ ]; ok 691 array-bracket-newline invalid var foo = [ 1 ]; ok 692 array-bracket-newline invalid var foo = [1, 2]; ok 693 array-bracket-newline invalid var foo = [1, 2]; ok 694 array-bracket-newline invalid var foo = [ function foo() { dosomething(); } ]; ok 695 array-bracket-newline invalid var foo = []; ok 696 array-bracket-newline invalid var foo = [1]; ok 697 array-bracket-newline invalid var foo = [1, 2]; ok 698 array-bracket-newline invalid var foo = [1, 2]; ok 699 array-bracket-newline invalid var foo = [function foo() { dosomething(); }]; ok 700 array-bracket-newline invalid var foo = [ ]; ok 701 array-bracket-newline invalid var foo = [ 1 ]; ok 702 array-bracket-newline invalid var foo = [ 1, 2 ]; ok 703 array-bracket-newline invalid var foo = [ 1, 2 ]; ok 704 array-bracket-newline invalid var foo = [ function foo() { dosomething(); } ]; ok 705 array-bracket-newline invalid var foo = [ ]; ok 706 array-bracket-newline invalid var foo = [ 1 ]; ok 707 array-bracket-newline invalid var foo = [ 1, 2 ]; ok 708 array-bracket-newline invalid var foo = [1, 2]; ok 709 array-bracket-newline invalid var foo = [function foo() { dosomething(); }]; ok 710 array-bracket-newline invalid var foo = [ ]; ok 711 array-bracket-newline invalid var foo = [ 1 ]; ok 712 array-bracket-newline invalid var foo = [1, 2]; ok 713 array-bracket-newline invalid var foo = [1, 2]; ok 714 array-bracket-newline invalid var foo = [function foo() { dosomething(); }]; ok 715 array-bracket-newline invalid var foo = [ 1, 2]; ok 716 array-bracket-newline invalid var foo = [ 1, 2]; ok 717 array-bracket-newline invalid var foo = [1, 2 ]; ok 718 array-bracket-newline invalid var foo = [ ]; ok 719 array-bracket-newline invalid var foo = [ 1 ]; ok 720 array-bracket-newline invalid var foo = [ 1, 2 ]; ok 721 array-bracket-newline invalid var foo = [ 1, 2 ]; ok 722 array-bracket-newline invalid var foo = [ function foo() { dosomething(); } ]; ok 723 array-bracket-newline invalid var [] = foo; ok 724 array-bracket-newline invalid var [a] = foo; ok 725 array-bracket-newline invalid var [ // any comment a] = foo; ok 726 array-bracket-newline invalid var [ /* any comment */ a] = foo; ok 727 array-bracket-newline invalid var [a, b] = foo; ok 728 array-bracket-newline invalid var [a, b // any comment ] = foo; ok 729 array-bracket-newline invalid var [a, b /* any comment */] = foo; ok 730 array-bracket-newline invalid var [a, b] = foo; ok 731 array-bracket-newline invalid var [ a] = foo ok 732 array-bracket-newline invalid var [a ] = foo ok 733 array-bracket-newline invalid var [ ] = foo; ok 734 array-bracket-newline invalid var [ a ] = foo; ok 735 array-bracket-newline invalid var [a, b] = foo; ok 736 array-bracket-newline invalid var [a, b] = foo; ok 737 array-bracket-spacing valid var foo = obj[ 1 ] ok 738 array-bracket-spacing valid var foo = obj[ 'foo' ]; ok 739 array-bracket-spacing valid var foo = obj[ [ 1, 1 ] ]; ok 740 array-bracket-spacing valid var foo = ['foo'] ok 741 array-bracket-spacing valid var foo = [2] ok 742 array-bracket-spacing valid var foo = [[ 1, 1 ]] ok 743 array-bracket-spacing valid var foo = [{ 'foo': 'bar' }] ok 744 array-bracket-spacing valid var foo = [bar] ok 745 array-bracket-spacing valid var foo = [{ 'bar': 'baz' }, 1, 5 ]; ok 746 array-bracket-spacing valid var foo = [ 1, 5, { 'bar': 'baz' }]; ok 747 array-bracket-spacing valid var foo = [{ 'bar': 'baz', 'qux': [{ 'bar': 'baz' }], 'quxx': 1 }] ok 748 array-bracket-spacing valid var foo = [{ 'bar': 'baz' }] ok 749 array-bracket-spacing valid var foo = [{ 'bar': 'baz' }, 1, { 'bar': 'baz' }]; ok 750 array-bracket-spacing valid var foo = [ 1, { 'bar': 'baz' }, 5 ]; ok 751 array-bracket-spacing valid var foo = [ 1, { 'bar': 'baz' }, [{ 'bar': 'baz' }] ]; ok 752 array-bracket-spacing valid var foo = [ function(){} ]; ok 753 array-bracket-spacing valid var arr = [[ 1, 2 ], 2, 3, 4 ]; ok 754 array-bracket-spacing valid var arr = [[ 1, 2 ], [[[ 1 ]]], 3, 4 ]; ok 755 array-bracket-spacing valid var foo = [ arr[i], arr[j] ]; ok 756 array-bracket-spacing valid var arr = [[ 1, 2 ], 2, 3, { 'foo': 'bar' }]; ok 757 array-bracket-spacing valid var arr = [[ 1, 2 ], [2], 3, { 'foo': 'bar' }]; ok 758 array-bracket-spacing valid obj[ foo ] ok 759 array-bracket-spacing valid obj[ foo ] ok 760 array-bracket-spacing valid obj[ 'foo' ] ok 761 array-bracket-spacing valid obj[ 'foo' + 'bar' ] ok 762 array-bracket-spacing valid obj[ obj2[ foo ] ] ok 763 array-bracket-spacing valid obj.map(function(item) { return [ 1, 2, 3, 4 ]; }) ok 764 array-bracket-spacing valid obj[ 'map' ](function(item) { return [ 1, 2, 3, 4 ]; }) ok 765 array-bracket-spacing valid obj[ 'for' + 'Each' ](function(item) { return [ 1, 2, 3, 4 ]; }) ok 766 array-bracket-spacing valid var arr = [ 1, 2, 3, 4 ]; ok 767 array-bracket-spacing valid var arr = [ [ 1, 2 ], 2, 3, 4 ]; ok 768 array-bracket-spacing valid var arr = [ 1, 2, 3, 4 ]; ok 769 array-bracket-spacing valid var foo = []; ok 770 array-bracket-spacing valid this.db.mappings.insert([ { alias: 'a', url: 'http://www.amazon.de' }, { alias: 'g', url: 'http://www.google.de' } ], function() {}); ok 771 array-bracket-spacing valid var [ x, y ] = z ok 772 array-bracket-spacing valid var [ x,y ] = z ok 773 array-bracket-spacing valid var [ x, y ] = z ok 774 array-bracket-spacing valid var [ x, y ] = z ok 775 array-bracket-spacing valid var [ x, y ] = z ok 776 array-bracket-spacing valid var [ x,,, ] = z ok 777 array-bracket-spacing valid var [ ,x, ] = z ok 778 array-bracket-spacing valid var [ x, ...y ] = z ok 779 array-bracket-spacing valid var [ x, ...y ] = z ok 780 array-bracket-spacing valid var [[ x, y ], z ] = arr; ok 781 array-bracket-spacing valid var [ x, [ y, z ]] = arr; ok 782 array-bracket-spacing valid [{ x, y }, z ] = arr; ok 783 array-bracket-spacing valid [ x, { y, z }] = arr; ok 784 array-bracket-spacing valid obj[foo] ok 785 array-bracket-spacing valid obj['foo'] ok 786 array-bracket-spacing valid obj['foo' + 'bar'] ok 787 array-bracket-spacing valid obj['foo'+'bar'] ok 788 array-bracket-spacing valid obj[obj2[foo]] ok 789 array-bracket-spacing valid obj.map(function(item) { return [ 1, 2, 3, 4 ]; }) ok 790 array-bracket-spacing valid obj['map'](function(item) { return [ 1, 2, 3, 4 ]; }) ok 791 array-bracket-spacing valid obj['for' + 'Each'](function(item) { return [ 1, 2, 3, 4 ]; }) ok 792 array-bracket-spacing valid var arr = [1, 2, 3, 4]; ok 793 array-bracket-spacing valid var arr = [[1, 2], 2, 3, 4]; ok 794 array-bracket-spacing valid var arr = [ 1, 2, 3, 4 ]; ok 795 array-bracket-spacing valid obj[ foo] ok 796 array-bracket-spacing valid obj[foo ] ok 797 array-bracket-spacing valid var arr = [1, 2, 3, 4 ]; ok 798 array-bracket-spacing valid var arr = [ 1, 2, 3, 4]; ok 799 array-bracket-spacing valid var [x, y] = z ok 800 array-bracket-spacing valid var [x,y] = z ok 801 array-bracket-spacing valid var [x, y ] = z ok 802 array-bracket-spacing valid var [ x, y] = z ok 803 array-bracket-spacing valid var [ x, y ] = z ok 804 array-bracket-spacing valid var [ x,,, ] = z ok 805 array-bracket-spacing valid var [,x,] = z ok 806 array-bracket-spacing valid var [ x, ...y ] = z ok 807 array-bracket-spacing valid var [ x, ...y] = z ok 808 array-bracket-spacing valid var [ [x, y], z] = arr; ok 809 array-bracket-spacing valid var [x, [y, z] ] = arr; ok 810 array-bracket-spacing valid [ { x, y }, z] = arr; ok 811 array-bracket-spacing valid [x, { y, z } ] = arr; ok 812 array-bracket-spacing valid var foo = [ 'foo' ] ok 813 array-bracket-spacing valid var foo = [ 2 ] ok 814 array-bracket-spacing valid var foo = [ [1, 1] ] ok 815 array-bracket-spacing valid var foo = [ {'foo': 'bar'} ] ok 816 array-bracket-spacing valid var foo = [ bar ] ok 817 array-bracket-spacing valid var foo = [ {'bar': 'baz'}, 1, 5]; ok 818 array-bracket-spacing valid var foo = [1, 5, {'bar': 'baz'} ]; ok 819 array-bracket-spacing valid var foo = [ { 'bar': 'baz', 'qux': [ {'bar': 'baz'} ], 'quxx': 1 } ] ok 820 array-bracket-spacing valid var foo = [ {'bar': 'baz'} ] ok 821 array-bracket-spacing valid var foo = [ {'bar': 'baz'}, 1, {'bar': 'baz'} ]; ok 822 array-bracket-spacing valid var foo = [1, {'bar': 'baz'} , 5]; ok 823 array-bracket-spacing valid var foo = [1, {'bar': 'baz'}, [ {'bar': 'baz'} ]]; ok 824 array-bracket-spacing valid var foo = [function(){}]; ok 825 array-bracket-spacing valid var foo = []; ok 826 array-bracket-spacing valid var arr = [ [1, 2], 2, 3, 4]; ok 827 array-bracket-spacing valid var foo = [arr[i], arr[j]]; ok 828 array-bracket-spacing valid var foo = []; ok 829 array-bracket-spacing valid var arr = [ [1, 2], [ [ [ 1 ] ] ], 3, 4]; ok 830 array-bracket-spacing valid var arr = [ [1, 2], 2, 3, {'foo': 'bar'} ]; ok 831 array-bracket-spacing valid var foo = {}; ok 832 array-bracket-spacing valid var foo = []; ok 833 array-bracket-spacing valid var foo = [{'bar':'baz'}, 1, {'bar': 'baz'}]; ok 834 array-bracket-spacing valid var foo = [{'bar': 'baz'}]; ok 835 array-bracket-spacing valid var foo = [{ 'bar': 'baz', 'qux': [{'bar': 'baz'}], 'quxx': 1 }] ok 836 array-bracket-spacing valid var foo = [1, {'bar': 'baz'}, 5]; ok 837 array-bracket-spacing valid var foo = [{'bar': 'baz'}, 1, 5]; ok 838 array-bracket-spacing valid var foo = [1, 5, {'bar': 'baz'}]; ok 839 array-bracket-spacing valid var obj = {'foo': [1, 2]} ok 840 array-bracket-spacing valid ([ a, b ]: Array<any>) => {} ok 841 array-bracket-spacing valid ([a, b]: Array< any >) => {} ok 842 array-bracket-spacing invalid var foo = [ ] ok 843 array-bracket-spacing invalid var foo = [ { 'bar': 'baz' }, 1, 5]; ok 844 array-bracket-spacing invalid var foo = [1, 5, { 'bar': 'baz' } ]; ok 845 array-bracket-spacing invalid var foo = [ { 'bar':'baz' }, 1, { 'bar': 'baz' } ]; ok 846 array-bracket-spacing invalid var obj = [ 'foo' ]; ok 847 array-bracket-spacing invalid var obj = ['foo' ]; ok 848 array-bracket-spacing invalid var obj = ['foo']; ok 849 array-bracket-spacing invalid var arr = [ [ 1, 2 ], 2, 3, 4 ]; ok 850 array-bracket-spacing invalid var arr = [ 1, 2, 2, [ 3, 4 ] ]; ok 851 array-bracket-spacing invalid var arr = [[ 1, 2 ], 2, [ 3, 4 ] ]; ok 852 array-bracket-spacing invalid var arr = [ [ 1, 2 ], 2, [ 3, 4 ]]; ok 853 array-bracket-spacing invalid var arr = [ [ 1, 2 ], 2, [ 3, 4 ] ]; ok 854 array-bracket-spacing invalid var [x,y] = y ok 855 array-bracket-spacing invalid var [x,y ] = y ok 856 array-bracket-spacing invalid var [,,,x,,] = y ok 857 array-bracket-spacing invalid var [ ,,,x,,] = y ok 858 array-bracket-spacing invalid var [...horse] = y ok 859 array-bracket-spacing invalid var [...horse ] = y ok 860 array-bracket-spacing invalid var [ [ x, y ], z ] = arr; ok 861 array-bracket-spacing invalid [ { x, y }, z ] = arr; ok 862 array-bracket-spacing invalid [ x, { y, z } ] = arr; ok 863 array-bracket-spacing invalid var arr = [[1, 2], 2, [3, 4]]; ok 864 array-bracket-spacing invalid var arr = [ ]; ok 865 array-bracket-spacing invalid var arr = [ ]; ok 866 array-bracket-spacing invalid var arr = [1, 2, 3, 4]; ok 867 array-bracket-spacing invalid var arr = [1, 2, 3, 4 ]; ok 868 array-bracket-spacing invalid var arr = [ 1, 2, 3, 4]; ok 869 array-bracket-spacing invalid var arr = [ 1, 2, 3, 4 ]; ok 870 array-bracket-spacing invalid var arr = [1, 2, 3, 4 ]; ok 871 array-bracket-spacing invalid var arr = [ 1, 2, 3, 4]; ok 872 array-bracket-spacing invalid var arr = [ [ 1], 2, 3, 4]; ok 873 array-bracket-spacing invalid var arr = [[1 ], 2, 3, 4 ]; ok 874 array-bracket-spacing invalid ([ a, b ]: Array<any>) => {} ok 875 array-bracket-spacing invalid ([a, b]: Array< any >) => {} ok 876 array-callback-return valid Array.from(x, function() { return true; }) ok 877 array-callback-return valid Int32Array.from(x, function() { return true; }) ok 878 array-callback-return valid Array.from(x, function() { return true; }) ok 879 array-callback-return valid Int32Array.from(x, function() { return true; }) ok 880 array-callback-return valid Array.from(x, function() { return; }) ok 881 array-callback-return valid Int32Array.from(x, function() { return; }) ok 882 array-callback-return valid Arrow.from(x, function() {}) ok 883 array-callback-return valid foo.every(function() { return true; }) ok 884 array-callback-return valid foo.filter(function() { return true; }) ok 885 array-callback-return valid foo.find(function() { return true; }) ok 886 array-callback-return valid foo.findIndex(function() { return true; }) ok 887 array-callback-return valid foo.map(function() { return true; }) ok 888 array-callback-return valid foo.reduce(function() { return true; }) ok 889 array-callback-return valid foo.reduceRight(function() { return true; }) ok 890 array-callback-return valid foo.some(function() { return true; }) ok 891 array-callback-return valid foo.sort(function() { return 0; }) ok 892 array-callback-return valid foo.every(function() { return; }) ok 893 array-callback-return valid foo.filter(function() { return; }) ok 894 array-callback-return valid foo.find(function() { return; }) ok 895 array-callback-return valid foo.findIndex(function() { return; }) ok 896 array-callback-return valid foo.map(function() { return; }) ok 897 array-callback-return valid foo.reduce(function() { return; }) ok 898 array-callback-return valid foo.reduceRight(function() { return; }) ok 899 array-callback-return valid foo.some(function() { return; }) ok 900 array-callback-return valid foo.sort(function() { return; }) ok 901 array-callback-return valid foo.abc(function() {}) ok 902 array-callback-return valid every(function() {}) ok 903 array-callback-return valid foo[every](function() {}) ok 904 array-callback-return valid var every = function() {} ok 905 array-callback-return valid foo[`${every}`](function() {}) ok 906 array-callback-return valid foo.every(() => true) ok 907 array-callback-return valid foo.every(() => { return true; }) ok 908 array-callback-return valid foo.every(function() { if (a) return true; else return false; }) ok 909 array-callback-return valid foo.every(function() { switch (a) { case 0: bar(); default: return true; } }) ok 910 array-callback-return valid foo.every(function() { try { bar(); return true; } catch (err) { return false; } }) ok 911 array-callback-return valid foo.every(function() { try { bar(); } finally { return true; } }) ok 912 array-callback-return valid foo.every(() => { return; }) ok 913 array-callback-return valid foo.every(function() { if (a) return; else return a; }) ok 914 array-callback-return valid foo.every(function() { switch (a) { case 0: bar(); default: return; } }) ok 915 array-callback-return valid foo.every(function() { try { bar(); return; } catch (err) { return; } }) ok 916 array-callback-return valid foo.every(function() { try { bar(); } finally { return; } }) ok 917 array-callback-return valid foo.every(function(){}()) ok 918 array-callback-return valid foo.every(function(){ return function() { return true; }; }()) ok 919 array-callback-return valid foo.every(function(){ return function() { return; }; }) ok 920 array-callback-return valid foo.map(async function(){}) ok 921 array-callback-return valid foo.map(async () => {}) ok 922 array-callback-return valid foo.map(function* () {}) ok 923 array-callback-return invalid Array.from(x, function() {}) ok 924 array-callback-return invalid Array.from(x, function foo() {}) ok 925 array-callback-return invalid Int32Array.from(x, function() {}) ok 926 array-callback-return invalid Int32Array.from(x, function foo() {}) ok 927 array-callback-return invalid foo.every(function() {}) ok 928 array-callback-return invalid foo.every(function foo() {}) ok 929 array-callback-return invalid foo.filter(function() {}) ok 930 array-callback-return invalid foo.filter(function foo() {}) ok 931 array-callback-return invalid foo.find(function() {}) ok 932 array-callback-return invalid foo.find(function foo() {}) ok 933 array-callback-return invalid foo.findIndex(function() {}) ok 934 array-callback-return invalid foo.findIndex(function foo() {}) ok 935 array-callback-return invalid foo.map(function() {}) ok 936 array-callback-return invalid foo.map(function foo() {}) ok 937 array-callback-return invalid foo.reduce(function() {}) ok 938 array-callback-return invalid foo.reduce(function foo() {}) ok 939 array-callback-return invalid foo.reduceRight(function() {}) ok 940 array-callback-return invalid foo.reduceRight(function foo() {}) ok 941 array-callback-return invalid foo.some(function() {}) ok 942 array-callback-return invalid foo.some(function foo() {}) ok 943 array-callback-return invalid foo.sort(function() {}) ok 944 array-callback-return invalid foo.sort(function foo() {}) ok 945 array-callback-return invalid foo.bar.baz.every(function() {}) ok 946 array-callback-return invalid foo.bar.baz.every(function foo() {}) ok 947 array-callback-return invalid foo["every"](function() {}) ok 948 array-callback-return invalid foo["every"](function foo() {}) ok 949 array-callback-return invalid foo[`every`](function() {}) ok 950 array-callback-return invalid foo[`every`](function foo() {}) ok 951 array-callback-return invalid foo.every(() => {}) ok 952 array-callback-return invalid foo.every(function() { if (a) return true; }) ok 953 array-callback-return invalid foo.every(function cb() { if (a) return true; }) ok 954 array-callback-return invalid foo.every(function() { switch (a) { case 0: break; default: return true; } }) ok 955 array-callback-return invalid foo.every(function foo() { switch (a) { case 0: break; default: return true; } }) ok 956 array-callback-return invalid foo.every(function() { try { bar(); } catch (err) { return true; } }) ok 957 array-callback-return invalid foo.every(function foo() { try { bar(); } catch (err) { return true; } }) ok 958 array-callback-return invalid foo.every(function() { return; }) ok 959 array-callback-return invalid foo.every(function foo() { return; }) ok 960 array-callback-return invalid foo.every(function() { if (a) return; }) ok 961 array-callback-return invalid foo.every(function foo() { if (a) return; }) ok 962 array-callback-return invalid foo.every(function() { if (a) return; else return; }) ok 963 array-callback-return invalid foo.every(function foo() { if (a) return; else return; }) ok 964 array-callback-return invalid foo.every(cb || function() {}) ok 965 array-callback-return invalid foo.every(cb || function foo() {}) ok 966 array-callback-return invalid foo.every(a ? function() {} : function() {}) ok 967 array-callback-return invalid foo.every(a ? function foo() {} : function bar() {}) ok 968 array-callback-return invalid foo.every(function(){ return function() {}; }()) ok 969 array-callback-return invalid foo.every(function(){ return function foo() {}; }()) ok 970 array-callback-return invalid foo.every(() => {}) ok 971 array-callback-return invalid foo.every(() => {}) ok 972 array-element-newline valid var foo = []; ok 973 array-element-newline valid var foo = [1]; ok 974 array-element-newline valid var foo = [1, 2]; ok 975 array-element-newline valid var foo = [1, // any comment 2]; ok 976 array-element-newline valid var foo = [// any comment 1, 2]; ok 977 array-element-newline valid var foo = [1, 2 // any comment ]; ok 978 array-element-newline valid var foo = [1, 2, 3]; ok 979 array-element-newline valid var foo = [1 , (2 , 3)]; ok 980 array-element-newline valid var foo = [1, ( 2 ), 3]; ok 981 array-element-newline valid var foo = [1, ((((2)))), 3]; ok 982 array-element-newline valid var foo = [1, ( 2 ), 3]; ok 983 array-element-newline valid var foo = [1, (2), 3]; ok 984 array-element-newline valid var foo = [1, (2) , 3]; ok 985 array-element-newline valid var foo = [1 , 2 , 3]; ok 986 array-element-newline valid var foo = [1, 2, , 3]; ok 987 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { osomething(); } ]; ok 988 array-element-newline valid var foo = []; ok 989 array-element-newline valid var foo = [1]; ok 990 array-element-newline valid var foo = [1, 2]; ok 991 array-element-newline valid var foo = [1, (2)]; ok 992 array-element-newline valid var foo = [1 , (2)]; ok 993 array-element-newline valid var foo = [1, // any comment 2]; ok 994 array-element-newline valid var foo = [// any comment 1, 2]; ok 995 array-element-newline valid var foo = [1, 2 // any comment ]; ok 996 array-element-newline valid var foo = [1, 2, 3]; ok 997 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 998 array-element-newline valid var foo = []; ok 999 array-element-newline valid var foo = [1]; ok 1000 array-element-newline valid var foo = [1, 2]; ok 1001 array-element-newline valid var foo = [1, /* any comment */ 2]; ok 1002 array-element-newline valid var foo = [/* any comment */ 1, 2]; ok 1003 array-element-newline valid var foo = /* any comment */ [1, 2]; ok 1004 array-element-newline valid var foo = [1, 2, 3]; ok 1005 array-element-newline valid var foo = [1, ( 2 ), 3]; ok 1006 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1007 array-element-newline valid var foo = []; ok 1008 array-element-newline valid var foo = [1]; ok 1009 array-element-newline valid var foo = [1, 2]; ok 1010 array-element-newline valid var foo = [1, 2]; ok 1011 array-element-newline valid var foo = [1, 2, 3]; ok 1012 array-element-newline valid var foo = [1, 2, 3]; ok 1013 array-element-newline valid var foo = [1, 2, , 3]; ok 1014 array-element-newline valid var foo = [1, // any comment 2]; ok 1015 array-element-newline valid var foo = [/* any comment */ 1, 2]; ok 1016 array-element-newline valid var foo = [1, ( 2 ), 3]; ok 1017 array-element-newline valid var foo = [1, (2) , 3]; ok 1018 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1019 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1020 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); }, function bar() { dosomething(); }]; ok 1021 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); }, function bar() { dosomething(); }]; ok 1022 array-element-newline valid var foo = []; ok 1023 array-element-newline valid var foo = [1]; ok 1024 array-element-newline valid var foo = [1, 2]; ok 1025 array-element-newline valid var foo = [1, 2, 3]; ok 1026 array-element-newline valid var f = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1027 array-element-newline valid var foo = []; ok 1028 array-element-newline valid var foo = [1]; ok 1029 array-element-newline valid var foo = [1, 2]; ok 1030 array-element-newline valid var foo = [1, 2, 3]; ok 1031 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1032 array-element-newline valid var foo = []; ok 1033 array-element-newline valid var foo = [1]; ok 1034 array-element-newline valid var foo = [1, 2]; ok 1035 array-element-newline valid var foo = [1, 2, 3]; ok 1036 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1037 array-element-newline valid var foo = []; ok 1038 array-element-newline valid var foo = [1]; ok 1039 array-element-newline valid var foo = [1, 2]; ok 1040 array-element-newline valid var foo = [1, 2, 3]; ok 1041 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1042 array-element-newline valid var foo = []; ok 1043 array-element-newline valid var foo = [1]; ok 1044 array-element-newline valid var foo = [1, 2]; ok 1045 array-element-newline valid var foo = [1, // any comment 2, , 3]; ok 1046 array-element-newline valid var foo = [1, 2, // any comment , 3]; ok 1047 array-element-newline valid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1048 array-element-newline valid var [] = foo; ok 1049 array-element-newline valid var [a] = foo; ok 1050 array-element-newline valid var [a, b] = foo; ok 1051 array-element-newline valid var [a, // any comment b] = foo; ok 1052 array-element-newline valid var [// any comment a, b] = foo; ok 1053 array-element-newline valid var [a, b // any comment ] = foo; ok 1054 array-element-newline valid var [a, b, b] = foo; ok 1055 array-element-newline valid var [] = foo; ok 1056 array-element-newline valid var [a] = foo; ok 1057 array-element-newline valid var [a, b] = foo; ok 1058 array-element-newline valid var [a, b, c] = foo; ok 1059 array-element-newline invalid var foo = [1, 2]; ok 1060 array-element-newline invalid var foo = [1, 2, 3]; ok 1061 array-element-newline invalid var foo = [1,2, 3]; ok 1062 array-element-newline invalid var foo = [1, (2), 3]; ok 1063 array-element-newline invalid var foo = [1,( 2 ), 3]; ok 1064 array-element-newline invalid var foo = [1, ( 2 ), 3]; ok 1065 array-element-newline invalid var foo = [1, ((((2)))), 3]; ok 1066 array-element-newline invalid var foo = [1,/* any comment */(2), 3]; ok 1067 array-element-newline invalid var foo = [1,( 2), 3]; ok 1068 array-element-newline invalid var foo = [1, [2], 3]; ok 1069 array-element-newline invalid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1070 array-element-newline invalid var foo = [ (function foo() { dosomething(); }), function bar() { dosomething(); } ]; ok 1071 array-element-newline invalid var foo = [ 1, 2 ]; ok 1072 array-element-newline invalid var foo = [ 1 , 2 ]; ok 1073 array-element-newline invalid var foo = [ 1 // any comment , 2 ]; ok 1074 array-element-newline invalid var foo = [ 1, // any comment 2 ]; ok 1075 array-element-newline invalid var foo = [ 1, 2 // any comment ]; ok 1076 array-element-newline invalid var foo = [ 1, 2, 3 ]; ok 1077 array-element-newline invalid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1078 array-element-newline invalid var foo = [ function foo() { dosomething(); }, /* any comment */ function bar() { dosomething(); } ]; ok 1079 array-element-newline invalid var foo = [1, 2, 3]; ok 1080 array-element-newline invalid var foo = [1, 2, 3]; ok 1081 array-element-newline invalid var foo = [1, ( 2), 3]; ok 1082 array-element-newline invalid var foo = [1, ( 2 ), 3]; ok 1083 array-element-newline invalid var foo = [1, /* any comment */(2), 3]; ok 1084 array-element-newline invalid var foo = [ function foo() { dosomething(); },function bar() { dosomething(); }, function bar() { dosomething(); }]; ok 1085 array-element-newline invalid var foo = [1, 2, 3]; ok 1086 array-element-newline invalid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1087 array-element-newline invalid var foo = [ function foo() { dosomething(); }, /* any comment */ function bar() { dosomething(); } ]; ok 1088 array-element-newline invalid var foo = [1, 2]; ok 1089 array-element-newline invalid var foo = [1, 2, 3]; ok 1090 array-element-newline invalid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1091 array-element-newline invalid var foo = [1, 2]; ok 1092 array-element-newline invalid var foo = [1, 2, 3]; ok 1093 array-element-newline invalid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1094 array-element-newline invalid var foo = [1, 2]; ok 1095 array-element-newline invalid var foo = [1, 2, 3]; ok 1096 array-element-newline invalid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1097 array-element-newline invalid var foo = [1, 2, 3]; ok 1098 array-element-newline invalid var foo = [1, 2]; ok 1099 array-element-newline invalid var foo = [ function foo() { dosomething(); }, function bar() { dosomething(); } ]; ok 1100 array-element-newline invalid var [a, b] = foo; ok 1101 array-element-newline invalid var [a, b, c] = foo; ok 1102 array-element-newline invalid var [a, b] = foo; ok 1103 array-element-newline invalid var [a, b, c] = foo; ok 1104 arrow-body-style valid var foo = () => {}; ok 1105 arrow-body-style valid var foo = () => 0; ok 1106 arrow-body-style valid var addToB = (a) => { b = b + a }; ok 1107 arrow-body-style valid var foo = () => { /* do nothing */ }; ok 1108 arrow-body-style valid var foo = () => { /* do nothing */ }; ok 1109 arrow-body-style valid var foo = (retv, name) => { retv[name] = true; return retv; }; ok 1110 arrow-body-style valid var foo = () => ({}); ok 1111 arrow-body-style valid var foo = () => bar(); ok 1112 arrow-body-style valid var foo = () => { bar(); }; ok 1113 arrow-body-style valid var foo = () => { b = a }; ok 1114 arrow-body-style valid var foo = () => { bar: 1 }; ok 1115 arrow-body-style valid var foo = () => { return 0; }; ok 1116 arrow-body-style valid var foo = () => { return bar(); }; ok 1117 arrow-body-style valid var foo = () => 0; ok 1118 arrow-body-style valid var foo = () => ({ foo: 0 }); ok 1119 arrow-body-style valid var foo = () => {}; ok 1120 arrow-body-style valid var foo = () => 0; ok 1121 arrow-body-style valid var addToB = (a) => { b = b + a }; ok 1122 arrow-body-style valid var foo = () => { /* do nothing */ }; ok 1123 arrow-body-style valid var foo = () => { /* do nothing */ }; ok 1124 arrow-body-style valid var foo = (retv, name) => { retv[name] = true; return retv; }; ok 1125 arrow-body-style valid var foo = () => bar(); ok 1126 arrow-body-style valid var foo = () => { bar(); }; ok 1127 arrow-body-style valid var foo = () => { return { bar: 0 }; }; ok 1128 arrow-body-style invalid var foo = () => 0; ok 1129 arrow-body-style invalid var foo = () => ({}); ok 1130 arrow-body-style invalid var foo = () => { return 0; }; ok 1131 arrow-body-style invalid var foo = () => { return 0 }; ok 1132 arrow-body-style invalid var foo = () => { return bar(); }; ok 1133 arrow-body-style invalid var foo = () => {}; ok 1134 arrow-body-style invalid var foo = () => { return 0; }; ok 1135 arrow-body-style invalid var foo = () => { return { bar: 0 }; }; ok 1136 arrow-body-style invalid var foo = () => { return ({ bar: 0 }); }; ok 1137 arrow-body-style invalid var foo = () => { return }; ok 1138 arrow-body-style invalid var foo = () => { return; }; ok 1139 arrow-body-style invalid var foo = () => { return ( /* a */ {ok: true} /* b */ ) }; ok 1140 arrow-body-style invalid var foo = () => { return '{' }; ok 1141 arrow-body-style invalid var foo = () => { return { bar: 0 }.bar; }; ok 1142 arrow-body-style invalid var foo = (retv, name) => { retv[name] = true; return retv; }; ok 1143 arrow-body-style invalid var foo = () => { return 0; }; ok 1144 arrow-body-style invalid var foo = () => { return bar(); }; ok 1145 arrow-body-style invalid var foo = () => ({}); ok 1146 arrow-body-style invalid var foo = () => ({ bar: 0 }); ok 1147 arrow-body-style invalid var foo = () => (((((((5))))))); ok 1148 arrow-body-style invalid var foo = () => { return bar } [1, 2, 3].map(foo) ok 1149 arrow-body-style invalid var foo = () => { return bar } (1).toString(); ok 1150 arrow-body-style invalid var foo = () => { return bar }; [1, 2, 3].map(foo) ok 1151 arrow-body-style invalid var foo = /* a */ ( /* b */ ) /* c */ => /* d */ { /* e */ return /* f */ 5 /* g */ ; /* h */ } /* i */ ; ok 1152 arrow-body-style invalid var foo = /* a */ ( /* b */ ) /* c */ => /* d */ ( /* e */ 5 /* f */ ) /* g */ ; ok 1153 arrow-body-style invalid var foo = () => { return bar; }; ok 1154 arrow-body-style invalid var foo = () => { return bar;}; ok 1155 arrow-body-style invalid var foo = () => {return bar; }; ok 1156 arrow-body-style invalid var foo = () => { return foo .bar; }; ok 1157 arrow-body-style invalid var foo = () => { return { bar: 1, baz: 2 }; }; ok 1158 arrow-body-style invalid var foo = () => ({foo: 1}).foo(); ok 1159 arrow-body-style invalid var foo = () => ({foo: 1}.foo()); ok 1160 arrow-parens valid () => {} ok 1161 arrow-parens valid (a) => {} ok 1162 arrow-parens valid (a) => a ok 1163 arrow-parens valid (a) => { } ok 1164 arrow-parens valid a.then((foo) => {}); ok 1165 arrow-parens valid a.then((foo) => { if (true) {}; }); ok 1166 arrow-parens valid a.then(async (foo) => { if (true) {}; }); ok 1167 arrow-parens valid () => {} ok 1168 arrow-parens valid (a) => {} ok 1169 arrow-parens valid (a) => a ok 1170 arrow-parens valid (a) => { } ok 1171 arrow-parens valid a.then((foo) => {}); ok 1172 arrow-parens valid a.then((foo) => { if (true) {}; }); ok 1173 arrow-parens valid a.then(async (foo) => { if (true) {}; }); ok 1174 arrow-parens valid () => {} ok 1175 arrow-parens valid a => {} ok 1176 arrow-parens valid a => a ok 1177 arrow-parens valid ([a, b]) => {} ok 1178 arrow-parens valid ({ a, b }) => {} ok 1179 arrow-parens valid (a = 10) => {} ok 1180 arrow-parens valid (...a) => a[0] ok 1181 arrow-parens valid (a, b) => {} ok 1182 arrow-parens valid async ([a, b]) => {} ok 1183 arrow-parens valid async (a, b) => {} ok 1184 arrow-parens valid (a: T) => a ok 1185 arrow-parens valid (a): T => a ok 1186 arrow-parens valid () => {} ok 1187 arrow-parens valid a => a ok 1188 arrow-parens valid ([a, b]) => {} ok 1189 arrow-parens valid ([a, b]) => a ok 1190 arrow-parens valid ({ a, b }) => {} ok 1191 arrow-parens valid ({ a, b }) => a + b ok 1192 arrow-parens valid (a = 10) => {} ok 1193 arrow-parens valid (...a) => a[0] ok 1194 arrow-parens valid (a, b) => {} ok 1195 arrow-parens valid a => ({}) ok 1196 arrow-parens valid async a => ({}) ok 1197 arrow-parens valid async a => a ok 1198 arrow-parens valid (a: T) => a ok 1199 arrow-parens valid (a): T => a ok 1200 arrow-parens invalid a => {} ok 1201 arrow-parens invalid a => a ok 1202 arrow-parens invalid a => { } ok 1203 arrow-parens invalid a.then(foo => {}); ok 1204 arrow-parens invalid a.then(foo => a); ok 1205 arrow-parens invalid a(foo => { if (true) {}; }); ok 1206 arrow-parens invalid a(async foo => { if (true) {}; }); ok 1207 arrow-parens invalid (a) => a ok 1208 arrow-parens invalid (a,) => a ok 1209 arrow-parens invalid async (a) => a ok 1210 arrow-parens invalid async(a) => a ok 1211 arrow-parens invalid a => {} ok 1212 arrow-parens invalid (a) => a ok 1213 arrow-parens invalid async a => {} ok 1214 arrow-parens invalid async (a) => a ok 1215 arrow-parens invalid async(a) => a ok 1216 arrow-spacing valid a => a ok 1217 arrow-spacing valid () => {} ok 1218 arrow-spacing valid (a) => {} ok 1219 arrow-spacing valid a=> a ok 1220 arrow-spacing valid ()=> {} ok 1221 arrow-spacing valid (a)=> {} ok 1222 arrow-spacing valid a =>a ok 1223 arrow-spacing valid () =>{} ok 1224 arrow-spacing valid (a) =>{} ok 1225 arrow-spacing valid a=>a ok 1226 arrow-spacing valid ()=>{} ok 1227 arrow-spacing valid (a)=>{} ok 1228 arrow-spacing valid a => a ok 1229 arrow-spacing valid () => {} ok 1230 arrow-spacing valid (a) => {} ok 1231 arrow-spacing valid (a) => {} ok 1232 arrow-spacing valid (a) => {} ok 1233 arrow-spacing valid (a) => 0 ok 1234 arrow-spacing invalid a=>a ok 1235 arrow-spacing invalid ()=>{} ok 1236 arrow-spacing invalid (a)=>{} ok 1237 arrow-spacing invalid a=> a ok 1238 arrow-spacing invalid ()=> {} ok 1239 arrow-spacing invalid (a)=> {} ok 1240 arrow-spacing invalid a=> a ok 1241 arrow-spacing invalid ()=> {} ok 1242 arrow-spacing invalid (a)=> {} ok 1243 arrow-spacing invalid a =>a ok 1244 arrow-spacing invalid () =>{} ok 1245 arrow-spacing invalid (a) =>{} ok 1246 arrow-spacing invalid a =>a ok 1247 arrow-spacing invalid () =>{} ok 1248 arrow-spacing invalid (a) =>{} ok 1249 arrow-spacing invalid a => a ok 1250 arrow-spacing invalid () => {} ok 1251 arrow-spacing invalid (a) => {} ok 1252 arrow-spacing invalid a => a ok 1253 arrow-spacing invalid () => {} ok 1254 arrow-spacing invalid (a) => {} ok 1255 arrow-spacing invalid (a) => {} ok 1256 arrow-spacing invalid (a = ()=>0)=>1 ok 1257 arrow-spacing invalid (a = ()=>0)=>(1) ok 1258 block-scoped-var valid function f() { } f(); var exports = { f: f }; ok 1259 block-scoped-var valid var f = () => {}; f(); var exports = { f: f }; ok 1260 block-scoped-var valid !function f(){ f; } ok 1261 block-scoped-var valid function f() { } f(); var exports = { f: f }; ok 1262 block-scoped-var valid function f() { var a, b; { a = true; } b = a; } ok 1263 block-scoped-var valid var a; function f() { var b = a; } ok 1264 block-scoped-var valid function f(a) { } ok 1265 block-scoped-var valid !function(a) { }; ok 1266 block-scoped-var valid !function f(a) { }; ok 1267 block-scoped-var valid function f(a) { var b = a; } ok 1268 block-scoped-var valid !function f(a) { var b = a; }; ok 1269 block-scoped-var valid function f() { var g = f; } ok 1270 block-scoped-var valid function f() { } function g() { var f = g; } ok 1271 block-scoped-var valid function f() { var hasOwnProperty; { hasOwnProperty; } } ok 1272 block-scoped-var valid function f(){ a; b; var a, b; } ok 1273 block-scoped-var valid function f(){ g(); function g(){} } ok 1274 block-scoped-var valid if (true) { var a = 1; a; } ok 1275 block-scoped-var valid var a; if (true) { a; } ok 1276 block-scoped-var valid for (var i = 0; i < 10; i++) { i; } ok 1277 block-scoped-var valid var i; for(i; i; i) { i; } ok 1278 block-scoped-var valid function myFunc(foo) { "use strict"; var { bar } = foo; bar.hello();} ok 1279 block-scoped-var valid function myFunc(foo) { "use strict"; var [ bar ] = foo; bar.hello();} ok 1280 block-scoped-var valid function myFunc(...foo) { return foo;} ok 1281 block-scoped-var valid var f = () => { var g = f; } ok 1282 block-scoped-var valid class Foo {} export default Foo; ok 1283 block-scoped-var valid new Date ok 1284 block-scoped-var valid new Date ok 1285 block-scoped-var valid var eslint = require('eslint'); ok 1286 block-scoped-var valid var fun = function({x}) {return x;}; ok 1287 block-scoped-var valid var fun = function([,x]) {return x;}; ok 1288 block-scoped-var valid function f(a) { return a.b; } ok 1289 block-scoped-var valid var a = { "foo": 3 }; ok 1290 block-scoped-var valid var a = { foo: 3 }; ok 1291 block-scoped-var valid var a = { foo: 3, bar: 5 }; ok 1292 block-scoped-var valid var a = { set foo(a){}, get bar(){} }; ok 1293 block-scoped-var valid function f(a) { return arguments[0]; } ok 1294 block-scoped-var valid function f() { }; var a = f; ok 1295 block-scoped-var valid var a = f; function f() { }; ok 1296 block-scoped-var valid function f(){ for(var i; i; i) i; } ok 1297 block-scoped-var valid function f(){ for(var a=0, b=1; a; b) a, b; } ok 1298 block-scoped-var valid function f(){ for(var a in {}) a; } ok 1299 block-scoped-var valid function f(){ switch(2) { case 1: var b = 2; b; break; default: b; break;} } ok 1300 block-scoped-var valid a:; ok 1301 block-scoped-var valid foo: while (true) { bar: for (var i = 0; i < 13; ++i) {if (i === 7) break foo; } } ok 1302 block-scoped-var valid foo: while (true) { bar: for (var i = 0; i < 13; ++i) {if (i === 7) continue foo; } } ok 1303 block-scoped-var valid const React = require("react/addons");const cx = React.addons.classSet; ok 1304 block-scoped-var valid var v = 1; function x() { return v; }; ok 1305 block-scoped-var valid import * as y from "./other.js"; y(); ok 1306 block-scoped-var valid import y from "./other.js"; y(); ok 1307 block-scoped-var valid import {x as y} from "./other.js"; y(); ok 1308 block-scoped-var valid var x; export {x}; ok 1309 block-scoped-var valid var x; export {x as v}; ok 1310 block-scoped-var valid export {x} from "./other.js"; ok 1311 block-scoped-var valid export {x as v} from "./other.js"; ok 1312 block-scoped-var valid class Test { myFunction() { return true; }} ok 1313 block-scoped-var valid class Test { get flag() { return true; }} ok 1314 block-scoped-var valid var Test = class { myFunction() { return true; }} ok 1315 block-scoped-var valid var doStuff; let {x: y} = {x: 1}; doStuff(y); ok 1316 block-scoped-var valid function foo({x: y}) { return y; } ok 1317 block-scoped-var valid !function f(){}; f ok 1318 block-scoped-var valid var f = function foo() { }; foo(); var exports = { f: foo }; ok 1319 block-scoped-var valid var f = () => { x; } ok 1320 block-scoped-var valid function f(){ x; } ok 1321 block-scoped-var valid var eslint = require('eslint'); ok 1322 block-scoped-var valid function f(a) { return a[b]; } ok 1323 block-scoped-var valid function f() { return b.a; } ok 1324 block-scoped-var valid var a = { foo: bar }; ok 1325 block-scoped-var valid var a = { foo: foo }; ok 1326 block-scoped-var valid var a = { bar: 7, foo: bar }; ok 1327 block-scoped-var valid var a = arguments; ok 1328 block-scoped-var valid function x(){}; var a = arguments; ok 1329 block-scoped-var valid function z(b){}; var a = b; ok 1330 block-scoped-var valid function z(){var b;}; var a = b; ok 1331 block-scoped-var valid function f(){ try{}catch(e){} e } ok 1332 block-scoped-var valid a:b; ok 1333 block-scoped-var valid /*global React*/ let {PropTypes, addons: {PureRenderMixin}} = React; let Test = React.createClass({mixins: [PureRenderMixin]}); ok 1334 block-scoped-var valid /*global prevState*/ const { virtualSize: prevVirtualSize = 0 } = prevState; ok 1335 block-scoped-var valid const { dummy: { data, isLoading }, auth: { isLoggedIn } } = this.props; ok 1336 block-scoped-var valid function a(n) { return n > 0 ? b(n - 1) : "a"; } function b(n) { return n > 0 ? a(n - 1) : "b"; } ok 1337 block-scoped-var valid (function () { foo(); })(); function foo() {} ok 1338 block-scoped-var valid (function () { foo(); })(); function foo() {} ok 1339 block-scoped-var invalid function f(){ x; { var x; } } ok 1340 block-scoped-var invalid function f(){ { var x; } x; } ok 1341 block-scoped-var invalid function f() { var a; { var b = 0; } a = b; } ok 1342 block-scoped-var invalid function f() { try { var a = 0; } catch (e) { var b = a; } } ok 1343 block-scoped-var invalid function a() { for(var b in {}) { var c = b; } c; } ok 1344 block-scoped-var invalid function a() { for(var b of {}) { var c = b; } c; } ok 1345 block-scoped-var invalid function f(){ switch(2) { case 1: var b = 2; b; break; default: b; break;} b; } ok 1346 block-scoped-var invalid for (var a = 0;;) {} a; ok 1347 block-scoped-var invalid for (var a in []) {} a; ok 1348 block-scoped-var invalid for (var a of []) {} a; ok 1349 block-scoped-var invalid { var a = 0; } a; ok 1350 block-scoped-var invalid if (true) { var a; } a; ok 1351 block-scoped-var invalid if (true) { var a = 1; } else { var a = 2; } ok 1352 block-scoped-var invalid for (var i = 0;;) {} for(var i = 0;;) {} ok 1353 block-spacing valid { foo(); } ok 1354 block-spacing valid { foo(); } ok 1355 block-spacing valid { foo(); } ok 1356 block-spacing valid { foo(); } ok 1357 block-spacing valid { foo(); } ok 1358 block-spacing valid if (a) { foo(); } ok 1359 block-spacing valid if (a) {} else { foo(); } ok 1360 block-spacing valid switch (a) {} ok 1361 block-spacing valid switch (a) { case 0: foo(); } ok 1362 block-spacing valid while (a) { foo(); } ok 1363 block-spacing valid do { foo(); } while (a); ok 1364 block-spacing valid for (;;) { foo(); } ok 1365 block-spacing valid for (var a in b) { foo(); } ok 1366 block-spacing valid for (var a of b) { foo(); } ok 1367 block-spacing valid try { foo(); } catch (e) { foo(); } ok 1368 block-spacing valid function foo() { bar(); } ok 1369 block-spacing valid (function() { bar(); }); ok 1370 block-spacing valid (() => { bar(); }); ok 1371 block-spacing valid if (a) { /* comment */ foo(); /* comment */ } ok 1372 block-spacing valid if (a) { //comment foo(); } ok 1373 block-spacing valid {foo();} ok 1374 block-spacing valid {foo(); } ok 1375 block-spacing valid { foo();} ok 1376 block-spacing valid { foo(); } ok 1377 block-spacing valid if (a) {foo();} ok 1378 block-spacing valid if (a) {} else {foo();} ok 1379 block-spacing valid switch (a) {} ok 1380 block-spacing valid switch (a) {case 0: foo();} ok 1381 block-spacing valid while (a) {foo();} ok 1382 block-spacing valid do {foo();} while (a); ok 1383 block-spacing valid for (;;) {foo();} ok 1384 block-spacing valid for (var a in b) {foo();} ok 1385 block-spacing valid for (var a of b) {foo();} ok 1386 block-spacing valid try {foo();} catch (e) {foo();} ok 1387 block-spacing valid function foo() {bar();} ok 1388 block-spacing valid (function() {bar();}); ok 1389 block-spacing valid (() => {bar();}); ok 1390 block-spacing valid if (a) {/* comment */ foo(); /* comment */} ok 1391 block-spacing valid if (a) { //comment foo();} ok 1392 block-spacing invalid {foo();} ok 1393 block-spacing invalid {foo();} ok 1394 block-spacing invalid { foo();} ok 1395 block-spacing invalid {foo(); } ok 1396 block-spacing invalid { foo();} ok 1397 block-spacing invalid {foo(); } ok 1398 block-spacing invalid if (a) {foo();} ok 1399 block-spacing invalid if (a) {} else {foo();} ok 1400 block-spacing invalid switch (a) {case 0: foo();} ok 1401 block-spacing invalid while (a) {foo();} ok 1402 block-spacing invalid do {foo();} while (a); ok 1403 block-spacing invalid for (;;) {foo();} ok 1404 block-spacing invalid for (var a in b) {foo();} ok 1405 block-spacing invalid for (var a of b) {foo();} ok 1406 block-spacing invalid try {foo();} catch (e) {foo();} finally {foo();} ok 1407 block-spacing invalid function foo() {bar();} ok 1408 block-spacing invalid (function() {bar();}); ok 1409 block-spacing invalid (() => {bar();}); ok 1410 block-spacing invalid if (a) {/* comment */ foo(); /* comment */} ok 1411 block-spacing invalid if (a) {//comment foo(); } ok 1412 block-spacing invalid { foo(); } ok 1413 block-spacing invalid { foo();} ok 1414 block-spacing invalid {foo(); } ok 1415 block-spacing invalid { foo(); } ok 1416 block-spacing invalid { foo(); } ok 1417 block-spacing invalid if (a) { foo(); } ok 1418 block-spacing invalid if (a) {} else { foo(); } ok 1419 block-spacing invalid switch (a) { case 0: foo(); } ok 1420 block-spacing invalid while (a) { foo(); } ok 1421 block-spacing invalid do { foo(); } while (a); ok 1422 block-spacing invalid for (;;) { foo(); } ok 1423 block-spacing invalid for (var a in b) { foo(); } ok 1424 block-spacing invalid for (var a of b) { foo(); } ok 1425 block-spacing invalid try { foo(); } catch (e) { foo(); } finally { foo(); } ok 1426 block-spacing invalid function foo() { bar(); } ok 1427 block-spacing invalid (function() { bar(); }); ok 1428 block-spacing invalid (() => { bar(); }); ok 1429 block-spacing invalid if (a) { /* comment */ foo(); /* comment */ } ok 1430 brace-style valid function f() { if (true) return {x: 1} else { var y = 2 return y } } ok 1431 brace-style valid if (tag === 1) glyph.id = pbf.readVarint(); else if (tag === 2) glyph.bitmap = pbf.readBytes(); ok 1432 brace-style valid function foo () { return; } ok 1433 brace-style valid function a(b, c, d) { } ok 1434 brace-style valid !function foo () { return; } ok 1435 brace-style valid !function a(b, c, d) { } ok 1436 brace-style valid if (foo) { bar(); } ok 1437 brace-style valid if (a) { b(); } else { c(); } ok 1438 brace-style valid while (foo) { bar(); } ok 1439 brace-style valid for (;;) { bar(); } ok 1440 brace-style valid with (foo) { bar(); } ok 1441 brace-style valid switch (foo) { case "bar": break; } ok 1442 brace-style valid try { bar(); } catch (e) { baz(); } ok 1443 brace-style valid do { bar(); } while (true) ok 1444 brace-style valid for (foo in bar) { baz(); } ok 1445 brace-style valid if (a && b && c) { } ok 1446 brace-style valid switch(0) { } ok 1447 brace-style valid class Foo { } ok 1448 brace-style valid (class { }) ok 1449 brace-style valid class Foo { } ok 1450 brace-style valid class Foo { bar() { } } ok 1451 brace-style valid if (foo) { } else { } ok 1452 brace-style valid if (foo) { } else { } ok 1453 brace-style valid try { bar(); } catch (e) { baz(); } ok 1454 brace-style valid try { bar(); } catch (e) { baz(); } ok 1455 brace-style valid function foo () { return; } ok 1456 brace-style valid function foo () { a(); b(); return; } ok 1457 brace-style valid function a(b,c,d) { } ok 1458 brace-style valid !function foo () { return; } ok 1459 brace-style valid !function a(b,c,d) { } ok 1460 brace-style valid if (foo) { bar(); } ok 1461 brace-style valid if (a) { b(); } else { c(); } ok 1462 brace-style valid while (foo) { bar(); } ok 1463 brace-style valid for (;;) { bar(); } ok 1464 brace-style valid with (foo) { bar(); } ok 1465 brace-style valid switch (foo) { case "bar": break; } ok 1466 brace-style valid try { bar(); } catch (e) { baz(); } ok 1467 brace-style valid do { bar(); } while (true) ok 1468 brace-style valid for (foo in bar) { baz(); } ok 1469 brace-style valid if (a && b && c) { } ok 1470 brace-style valid switch(0) {} ok 1471 brace-style valid if (foo) {} else {} ok 1472 brace-style valid try { bar(); } catch (e) { baz(); } ok 1473 brace-style valid var foo = () => { return; } ok 1474 brace-style valid if (foo) {} else {} ok 1475 brace-style valid try { bar(); } catch (e) { baz(); } ok 1476 brace-style valid var foo = () => { return; } ok 1477 brace-style valid if (tag === 1) fontstack.name = pbf.readString(); else if (tag === 2) fontstack.range = pbf.readString(); else if (tag === 3) { var glyph = pbf.readMessage(readGlyph, {}); fontstack.glyphs[glyph.id] = glyph; } ok 1478 brace-style valid if (tag === 1) fontstack.name = pbf.readString(); else if (tag === 2) fontstack.range = pbf.readString(); else if (tag === 3) { var glyph = pbf.readMessage(readGlyph, {}); fontstack.glyphs[glyph.id] = glyph; } ok 1479 brace-style valid switch(x) { case 1: bar(); } ok 1480 brace-style valid switch(x) {} ok 1481 brace-style valid class Foo { } ok 1482 brace-style valid (class { }) ok 1483 brace-style valid class Foo { } ok 1484 brace-style valid (class { }) ok 1485 brace-style valid class Foo { } ok 1486 brace-style valid class Foo {} ok 1487 brace-style valid class Foo {} ok 1488 brace-style valid (class {}) ok 1489 brace-style valid (class {}) ok 1490 brace-style valid {} ok 1491 brace-style valid if (foo) { } { } ok 1492 brace-style valid switch (foo) { case bar: baz(); { qux(); } } ok 1493 brace-style valid { } ok 1494 brace-style valid { { } } ok 1495 brace-style valid class Ball { throw() {} catch() {} } ok 1496 brace-style valid ({ and() {}, finally() {} }) ok 1497 brace-style valid (class { or() {} else() {} }) ok 1498 brace-style valid if (foo) bar = function() {} else baz() ok 1499 brace-style invalid if (f) { bar; } else baz; ok 1500 brace-style invalid var foo = () => { return; } ok 1501 brace-style invalid function foo() { return; } ok 1502 brace-style invalid function foo() { return; } ok 1503 brace-style invalid !function foo() { return; } ok 1504 brace-style invalid if (foo) { bar(); } ok 1505 brace-style invalid if (a) { b(); } else { c(); } ok 1506 brace-style invalid while (foo) { bar(); } ok 1507 brace-style invalid for (;;) { bar(); } ok 1508 brace-style invalid with (foo) { bar(); } ok 1509 brace-style invalid switch (foo) { case "bar": break; } ok 1510 brace-style invalid switch (foo) { } ok 1511 brace-style invalid try { bar(); } catch (e) {} ok 1512 brace-style invalid try { bar(); } catch (e) {} ok 1513 brace-style invalid do { bar(); } while (true) ok 1514 brace-style invalid for (foo in bar) { baz(); } ok 1515 brace-style invalid for (foo of bar) { baz(); } ok 1516 brace-style invalid try { bar(); } catch (e) { } ok 1517 brace-style invalid try { bar(); } catch (e) { } finally { } ok 1518 brace-style invalid if (a) { b(); } else { c(); } ok 1519 brace-style invalid try { bar(); } catch (e) { } finally { } ok 1520 brace-style invalid try { bar(); } catch (e) { } finally { } ok 1521 brace-style invalid if (a) { b(); } else { c(); } ok 1522 brace-style invalid if (foo) { baz(); } else if (bar) { baz(); } else { qux(); } ok 1523 brace-style invalid if (foo) { poop(); } else if (bar) { baz(); } else if (thing) { boom(); } else { qux(); } ok 1524 brace-style invalid try { bar(); } catch (e) { } finally { } ok 1525 brace-style invalid switch(x) { case 1: bar(); } ok 1526 brace-style invalid if (a) { b(); } else { c(); } ok 1527 brace-style invalid if (foo) { baz(); } else if (bar) { baz(); } else { qux(); } ok 1528 brace-style invalid if (foo) { poop(); } else if (bar) { baz(); } else if (thing) { boom(); } else { qux(); } ok 1529 brace-style invalid if (foo) { bar(); } ok 1530 brace-style invalid try { somethingRisky(); } catch (e) { handleError() } ok 1531 brace-style invalid function foo() { return; } ok 1532 brace-style invalid function foo() { a(); b(); return; } ok 1533 brace-style invalid function foo() { return; } ok 1534 brace-style invalid function foo() { a(); b(); return; } ok 1535 brace-style invalid !function foo() { return; } ok 1536 brace-style invalid if (a) { b(); } else { c(); } ok 1537 brace-style invalid if (a) { b(); } else { c(); } ok 1538 brace-style invalid while (foo) { bar(); } ok 1539 brace-style invalid for (;;) { bar(); } ok 1540 brace-style invalid with (foo) { bar(); } ok 1541 brace-style invalid switch (foo) { case "bar": break; } ok 1542 brace-style invalid switch (foo) { } ok 1543 brace-style invalid try { bar(); } catch (e) { baz(); } ok 1544 brace-style invalid try { bar(); } catch (e) {} ok 1545 brace-style invalid try { bar(); } catch (e) {} ok 1546 brace-style invalid do { bar(); } while (true) ok 1547 brace-style invalid for (foo in bar) { baz(); } ok 1548 brace-style invalid try { bar(); } catch (e) { } ok 1549 brace-style invalid try { bar(); } catch (e) { } finally { } ok 1550 brace-style invalid if (a) { b(); } else { c(); } ok 1551 brace-style invalid try { bar(); } catch (e) { } finally { } ok 1552 brace-style invalid try { bar(); } catch (e) { } finally { } ok 1553 brace-style invalid if (a) { b(); } else { c(); } ok 1554 brace-style invalid if (foo) { poop(); } else if (bar) { baz(); } else if (thing) { boom(); } else { qux(); } ok 1555 brace-style invalid if (foo) // comment { bar(); } ok 1556 brace-style invalid if (foo) { bar .baz } ok 1557 brace-style invalid if (foo) { bar .baz } ok 1558 brace-style invalid if (foo) { bar .baz } ok 1559 brace-style invalid if (foo) { bar .baz } ok 1560 brace-style invalid switch (x) { case 1: foo() } ok 1561 brace-style invalid class Foo { } ok 1562 brace-style invalid (class { }) ok 1563 brace-style invalid class Foo{ } ok 1564 brace-style invalid (class { }) ok 1565 brace-style invalid class Foo { bar() { }} ok 1566 brace-style invalid (class Foo { bar() { }}) ok 1567 brace-style invalid class Foo{} ok 1568 brace-style invalid if (foo) { bar } else { baz } ok 1569 callback-return valid function a(err) { if (err) return callback (err); } ok 1570 callback-return valid function a(err) { if (err) return callback (err); callback(); } ok 1571 callback-return valid function a(err) { if (err) { return callback (err); } callback(); } ok 1572 callback-return valid function a(err) { if (err) { return /* confusing comment */ callback (err); } callback(); } ok 1573 callback-return valid function x(err) { if (err) { callback(); return; } } ok 1574 callback-return valid function x(err) { if (err) { log(); callback(); return; } } ok 1575 callback-return valid function x(err) { if (err) { callback(); return; } return callback(); } ok 1576 callback-return valid function x(err) { if (err) { return callback(); } else { return callback(); } } ok 1577 callback-return valid function x(err) { if (err) { return callback(); } else if (x) { return callback(); } } ok 1578 callback-return valid function x(err) { if (err) return callback(); else return callback(); } ok 1579 callback-return valid function x(cb) { cb && cb(); } ok 1580 callback-return valid function x(next) { typeof next !== 'undefined' && next(); } ok 1581 callback-return valid function x(next) { if (typeof next === 'function') { return next() } } ok 1582 callback-return valid function x() { switch(x) { case 'a': return next(); } } ok 1583 callback-return valid function x() { for(x = 0; x < 10; x++) { return next(); } } ok 1584 callback-return valid function x() { while(x) { return next(); } } ok 1585 callback-return valid function a(err) { if (err) { obj.method (err); } } ok 1586 callback-return valid callback() ok 1587 callback-return valid callback(); callback(); ok 1588 callback-return valid while(x) { move(); } ok 1589 callback-return valid for (var i = 0; i < 10; i++) { move(); } ok 1590 callback-return valid for (var i = 0; i < 10; i++) move(); ok 1591 callback-return valid if (x) callback(); ok 1592 callback-return valid if (x) { callback(); } ok 1593 callback-return valid var x = err => { if (err) { callback(); return; } } ok 1594 callback-return valid var x = err => callback(err) ok 1595 callback-return valid var x = err => { setTimeout( () => { callback(); }); } ok 1596 callback-return valid class x { horse() { callback(); } } ok 1597 callback-return valid class x { horse() { if (err) { return callback(); } callback(); } } ok 1598 callback-return valid function a(err) { if (err) { callback(err) } } ok 1599 callback-return valid function a(err) { if (err) { callback(err) } next(); } ok 1600 callback-return valid function a(err) { if (err) { return next(err) } else { callback(); } } ok 1601 callback-return valid function a(err) { if (err) { return obj.method(err); } } ok 1602 callback-return valid function a(err) { if (err) { return obj.prop.method(err); } } ok 1603 callback-return valid function a(err) { if (err) { return obj.prop.method(err); } otherObj.prop.method() } ok 1604 callback-return valid function a(err) { if (err) { callback(err); } } ok 1605 callback-return valid function a(err) { if (err) { otherObj.method(err); } } ok 1606 callback-return valid function a(err) { if (err) { //comment return obj.method(err); } } ok 1607 callback-return valid function a(err) { if (err) { /*comment*/return obj.method(err); } } ok 1608 callback-return valid function a(err) { if (err) { return obj.method(err); //comment } } ok 1609 callback-return valid function a(err) { if (err) { return obj.method(err); /*comment*/ } } ok 1610 callback-return valid function a(err) { if (err) { obj().method(err); } } ok 1611 callback-return valid function a(err) { if (err) { obj.prop().method(err); } } ok 1612 callback-return valid function a(err) { if (err) { obj().prop.method(err); } } ok 1613 callback-return valid function a(err) { if (err) { obj().method(err); } } ok 1614 callback-return valid function a(err) { if (err) { obj().method(err); } obj.method(); } ok 1615 callback-return valid function x(err) { if (err) { setTimeout(callback, 0); } callback(); } ok 1616 callback-return valid function x(err) { if (err) { process.nextTick(function(err) { callback(); }); } callback(); } ok 1617 callback-return invalid function a(err) { if (err) { callback (err); } } ok 1618 callback-return invalid function a(callback) { if (typeof callback !== 'undefined') { callback(); } } ok 1619 callback-return invalid function a(callback) { if (typeof callback !== 'undefined') callback(); } ok 1620 callback-return invalid function a(callback) { if (err) { callback(); horse && horse(); } } ok 1621 callback-return invalid var x = (err) => { if (err) { callback (err); } } ok 1622 callback-return invalid var x = { x(err) { if (err) { callback (err); } } } ok 1623 callback-return invalid function x(err) { if (err) { log(); callback(err); } } ok 1624 callback-return invalid var x = { x(err) { if (err) { callback && callback (err); } } } ok 1625 callback-return invalid function a(err) { callback (err); callback(); } ok 1626 callback-return invalid function a(err) { callback (err); horse(); } ok 1627 callback-return invalid function a(err) { if (err) { callback (err); horse(); return; } } ok 1628 callback-return invalid var a = (err) => { callback (err); callback(); } ok 1629 callback-return invalid function a(err) { if (err) { callback (err); } else if (x) { callback(err); return; } } ok 1630 callback-return invalid function x(err) { if (err) { return callback(); } else if (abc) { callback(); } else { return callback(); } } ok 1631 callback-return invalid class x { horse() { if (err) { callback(); } callback(); } } ok 1632 callback-return invalid function x(err) { if (err) { callback() } else { callback() } } ok 1633 callback-return invalid function x(err) { if (err) return callback(); else callback(); } ok 1634 callback-return invalid () => { if (x) { callback(); } } ok 1635 callback-return invalid function b() { switch(x) { case 'horse': callback(); } } ok 1636 callback-return invalid function a() { switch(x) { case 'horse': move(); } } ok 1637 callback-return invalid var x = function() { while(x) { move(); } } ok 1638 callback-return invalid function x() { for (var i = 0; i < 10; i++) { move(); } } ok 1639 callback-return invalid var x = function() { for (var i = 0; i < 10; i++) move(); } ok 1640 callback-return invalid function a(err) { if (err) { obj.method(err); } } ok 1641 callback-return invalid function a(err) { if (err) { obj.prop.method(err); } } ok 1642 callback-return invalid function a(err) { if (err) { obj.prop.method(err); } otherObj.prop.method() } ok 1643 callback-return invalid function a(err) { if (err) { /*comment*/obj.method(err); } } ok 1644 callback-return invalid function a(err) { if (err) { //comment obj.method(err); } } ok 1645 callback-return invalid function a(err) { if (err) { obj.method(err); /*comment*/ } } ok 1646 callback-return invalid function a(err) { if (err) { obj.method(err); //comment } } ok 1647 capitalized-comments valid //Uppercase ok 1648 capitalized-comments valid // Uppercase ok 1649 capitalized-comments valid /*Uppercase */ ok 1650 capitalized-comments valid /* Uppercase */ ok 1651 capitalized-comments valid /* Uppercase */ ok 1652 capitalized-comments valid /** Uppercase */ ok 1653 capitalized-comments valid /** Uppercase */ ok 1654 capitalized-comments valid //Über ok 1655 capitalized-comments valid //Π ok 1656 capitalized-comments valid /* Uppercase second line need not be uppercase */ ok 1657 capitalized-comments valid // ok 1658 capitalized-comments valid // ok 1659 capitalized-comments valid /* */ ok 1660 capitalized-comments valid /* */ ok 1661 capitalized-comments valid /* */ ok 1662 capitalized-comments valid /* */ ok 1663 capitalized-comments valid /* */ ok 1664 capitalized-comments valid /*
*/ ok 1665 capitalized-comments valid /*
*/ ok 1666 capitalized-comments valid //123 ok 1667 capitalized-comments valid // 123 ok 1668 capitalized-comments valid /*123*/ ok 1669 capitalized-comments valid /* 123 */ ok 1670 capitalized-comments valid /**123 */ ok 1671 capitalized-comments valid /** 123 */ ok 1672 capitalized-comments valid /** 123 */ ok 1673 capitalized-comments valid /* 123 */ ok 1674 capitalized-comments valid /*123 second line need not be uppercase */ ok 1675 capitalized-comments valid /** * @fileoverview This is a file */ ok 1676 capitalized-comments valid // jscs: enable ok 1677 capitalized-comments valid // jscs:disable ok 1678 capitalized-comments valid // eslint-disable-line ok 1679 capitalized-comments valid // eslint-disable-next-line ok 1680 capitalized-comments valid /* eslint semi:off */ ok 1681 capitalized-comments valid /* eslint-env node */ ok 1682 capitalized-comments valid /* istanbul ignore next */ ok 1683 capitalized-comments valid /* jshint asi:true */ ok 1684 capitalized-comments valid /* jscs: enable */ ok 1685 capitalized-comments valid /* global var1, var2 */ ok 1686 capitalized-comments valid /* global var1:true, var2 */ ok 1687 capitalized-comments valid /* globals var1, var2 */ ok 1688 capitalized-comments valid /* globals var1:true, var2 */ ok 1689 capitalized-comments valid /* exported myVar */ ok 1690 capitalized-comments valid !foo ok 1691 capitalized-comments valid !foo ok 1692 capitalized-comments valid !Foo ok 1693 capitalized-comments valid !/usr/bin/env node ok 1694 capitalized-comments valid !/usr/bin/env node ok 1695 capitalized-comments valid !/usr/bin/env node ok 1696 capitalized-comments valid //Uppercase ok 1697 capitalized-comments valid // Uppercase ok 1698 capitalized-comments valid /*Uppercase */ ok 1699 capitalized-comments valid /* Uppercase */ ok 1700 capitalized-comments valid /* Uppercase */ ok 1701 capitalized-comments valid /** Uppercase */ ok 1702 capitalized-comments valid /** Uppercase */ ok 1703 capitalized-comments valid //Über ok 1704 capitalized-comments valid //Π ok 1705 capitalized-comments valid /* Uppercase second line need not be uppercase */ ok 1706 capitalized-comments valid //123 ok 1707 capitalized-comments valid // 123 ok 1708 capitalized-comments valid /*123*/ ok 1709 capitalized-comments valid /**123*/ ok 1710 capitalized-comments valid /* 123 */ ok 1711 capitalized-comments valid /** 123*/ ok 1712 capitalized-comments valid /** 123*/ ok 1713 capitalized-comments valid /* 123 */ ok 1714 capitalized-comments valid /*123 second line need not be uppercase */ ok 1715 capitalized-comments valid /** @todo: foobar */ ok 1716 capitalized-comments valid /** * @fileoverview This is a file */ ok 1717 capitalized-comments valid // jscs: enable ok 1718 capitalized-comments valid // jscs:disable ok 1719 capitalized-comments valid // eslint-disable-line ok 1720 capitalized-comments valid // eslint-disable-next-line ok 1721 capitalized-comments valid /* eslint semi:off */ ok 1722 capitalized-comments valid /* eslint-env node */ ok 1723 capitalized-comments valid /* istanbul ignore next */ ok 1724 capitalized-comments valid /* jshint asi:true */ ok 1725 capitalized-comments valid /* jscs: enable */ ok 1726 capitalized-comments valid /* global var1, var2 */ ok 1727 capitalized-comments valid /* global var1:true, var2 */ ok 1728 capitalized-comments valid /* globals var1, var2 */ ok 1729 capitalized-comments valid /* globals var1:true, var2 */ ok 1730 capitalized-comments valid /* exported myVar */ ok 1731 capitalized-comments valid //lowercase ok 1732 capitalized-comments valid // lowercase ok 1733 capitalized-comments valid /*lowercase */ ok 1734 capitalized-comments valid /* lowercase */ ok 1735 capitalized-comments valid /* lowercase */ ok 1736 capitalized-comments valid //über ok 1737 capitalized-comments valid //π ok 1738 capitalized-comments valid /* lowercase Second line need not be lowercase */ ok 1739 capitalized-comments valid //123 ok 1740 capitalized-comments valid // 123 ok 1741 capitalized-comments valid /*123*/ ok 1742 capitalized-comments valid /* 123 */ ok 1743 capitalized-comments valid /* 123 */ ok 1744 capitalized-comments valid /*123 second line need not be uppercase */ ok 1745 capitalized-comments valid /** @TODO: foobar */ ok 1746 capitalized-comments valid /** * @Fileoverview This is a file */ ok 1747 capitalized-comments valid // matching ok 1748 capitalized-comments valid // Matching ok 1749 capitalized-comments valid // bar ok 1750 capitalized-comments valid // Bar ok 1751 capitalized-comments valid foo(/* ignored */ a); ok 1752 capitalized-comments valid foo(/* Ignored */ a); ok 1753 capitalized-comments valid foo(/* ignored */ a); ok 1754 capitalized-comments valid foo(/* Ignored */ a); ok 1755 capitalized-comments valid // This comment is valid since it is capitalized, // and this one is valid since it follows a valid one, // and same with this one. ok 1756 capitalized-comments valid /* This comment is valid since it is capitalized, */ /* and this one is valid since it follows a valid one, */ /* and same with this one. */ ok 1757 capitalized-comments valid /* * This comment is valid since it is capitalized, */ /* and this one is valid since it follows a valid one, */ /* * and same with this one. */ ok 1758 capitalized-comments valid // This comment is valid since it is capitalized, // and this one is valid since it follows a valid one, foo(); // This comment now has to be capitalized. ok 1759 capitalized-comments valid // https://github.com ok 1760 capitalized-comments valid // HTTPS://GITHUB.COM ok 1761 capitalized-comments valid // Valid capitalized line comment /* Valid capitalized block comment */ // lineCommentIgnorePattern /* blockCommentIgnorePattern */ ok 1762 capitalized-comments invalid //lowercase ok 1763 capitalized-comments invalid // lowercase ok 1764 capitalized-comments invalid /*lowercase */ ok 1765 capitalized-comments invalid /* lowercase */ ok 1766 capitalized-comments invalid /** lowercase */ ok 1767 capitalized-comments invalid /* lowercase */ ok 1768 capitalized-comments invalid /** lowercase */ ok 1769 capitalized-comments invalid //über ok 1770 capitalized-comments invalid //π ok 1771 capitalized-comments invalid /* lowercase Second line need not be lowercase */ ok 1772 capitalized-comments invalid //lowercase ok 1773 capitalized-comments invalid // lowercase ok 1774 capitalized-comments invalid /*lowercase */ ok 1775 capitalized-comments invalid /* lowercase */ ok 1776 capitalized-comments invalid /** lowercase */ ok 1777 capitalized-comments invalid /** lowercase */ ok 1778 capitalized-comments invalid //über ok 1779 capitalized-comments invalid //π ok 1780 capitalized-comments invalid /* lowercase Second line need not be lowercase */ ok 1781 capitalized-comments invalid //Uppercase ok 1782 capitalized-comments invalid // Uppercase ok 1783 capitalized-comments invalid /*Uppercase */ ok 1784 capitalized-comments invalid /* Uppercase */ ok 1785 capitalized-comments invalid /* Uppercase */ ok 1786 capitalized-comments invalid //Über ok 1787 capitalized-comments invalid //Π ok 1788 capitalized-comments invalid /* Uppercase second line need not be uppercase */ ok 1789 capitalized-comments invalid //* jscs: enable ok 1790 capitalized-comments invalid //* jscs:disable ok 1791 capitalized-comments invalid //* eslint-disable-line ok 1792 capitalized-comments invalid //* eslint-disable-next-line ok 1793 capitalized-comments invalid /* * eslint semi:off */ ok 1794 capitalized-comments invalid /* * eslint-env node */ ok 1795 capitalized-comments invalid /* * istanbul ignore next */ ok 1796 capitalized-comments invalid /* * jshint asi:true */ ok 1797 capitalized-comments invalid /* * jscs: enable */ ok 1798 capitalized-comments invalid /* * global var1, var2 */ ok 1799 capitalized-comments invalid /* * global var1:true, var2 */ ok 1800 capitalized-comments invalid /* * globals var1, var2 */ ok 1801 capitalized-comments invalid /* * globals var1:true, var2 */ ok 1802 capitalized-comments invalid /* * exported myVar */ ok 1803 capitalized-comments invalid foo(/* invalid */a); ok 1804 capitalized-comments invalid foo(/* invalid */a); ok 1805 capitalized-comments invalid foo(a, // not an inline comment b); ok 1806 capitalized-comments invalid foo(a, /* not an inline comment */ b); ok 1807 capitalized-comments invalid foo(a, /* not an inline comment */b); ok 1808 capitalized-comments invalid foo(a, /* not an inline comment */ b); ok 1809 capitalized-comments invalid foo(a, // Not an inline comment b); ok 1810 capitalized-comments invalid foo(a, /* Not an inline comment */ b); ok 1811 capitalized-comments invalid foo(a, /* Not an inline comment */b); ok 1812 capitalized-comments invalid foo(a, /* Not an inline comment */ b); ok 1813 capitalized-comments invalid // not matching ok 1814 capitalized-comments invalid // Not matching ok 1815 capitalized-comments invalid // This comment is valid since it is capitalized, // and this one is valid since it follows a valid one, foo(); // this comment is now invalid. ok 1816 capitalized-comments invalid // this comment is invalid since it is not capitalized, // but this one is ignored since it is consecutive. ok 1817 capitalized-comments invalid // This comment is invalid since it is not capitalized, // But this one is ignored since it is consecutive. ok 1818 capitalized-comments invalid // This comment is valid since it is capitalized, // but this one is invalid even if it follows a valid one. ok 1819 capitalized-comments invalid // should fail. https://github.com ok 1820 capitalized-comments invalid // Should fail. https://github.com ok 1821 class-methods-use-this valid class A { constructor() {} } ok 1822 class-methods-use-this valid class A { foo() {this} } ok 1823 class-methods-use-this valid class A { foo() {this.bar = 'bar';} } ok 1824 class-methods-use-this valid class A { foo() {bar(this);} } ok 1825 class-methods-use-this valid class A extends B { foo() {super.foo();} } ok 1826 class-methods-use-this valid class A { foo() { if(true) { return this; } } } ok 1827 class-methods-use-this valid class A { static foo() {} } ok 1828 class-methods-use-this valid ({ a(){} }); ok 1829 class-methods-use-this valid class A { foo() { () => this; } } ok 1830 class-methods-use-this valid ({ a: function () {} }); ok 1831 class-methods-use-this valid class A { foo() {this} bar() {} } ok 1832 class-methods-use-this invalid class A { foo() {} } ok 1833 class-methods-use-this invalid class A { foo() {/**this**/} } ok 1834 class-methods-use-this invalid class A { foo() {var a = function () {this};} } ok 1835 class-methods-use-this invalid class A { foo() {var a = function () {var b = function(){this}};} } ok 1836 class-methods-use-this invalid class A { foo() {window.this} } ok 1837 class-methods-use-this invalid class A { foo() {that.this = 'this';} } ok 1838 class-methods-use-this invalid class A { foo() { () => undefined; } } ok 1839 class-methods-use-this invalid class A { foo() {} bar() {} } ok 1840 class-methods-use-this invalid class A { foo() {} hasOwnProperty() {} } ok 1841 comma-dangle valid var foo = { bar: 'baz' } ok 1842 comma-dangle valid var foo = { bar: 'baz' } ok 1843 comma-dangle valid var foo = [ 'baz' ] ok 1844 comma-dangle valid var foo = [ 'baz' ] ok 1845 comma-dangle valid [,,] ok 1846 comma-dangle valid [ , , ] ok 1847 comma-dangle valid [,] ok 1848 comma-dangle valid [ , ] ok 1849 comma-dangle valid [] ok 1850 comma-dangle valid [ ] ok 1851 comma-dangle valid var foo = [ (bar ? baz : qux), ]; ok 1852 comma-dangle valid var foo = { bar: 'baz' } ok 1853 comma-dangle valid var foo = { bar: 'baz' } ok 1854 comma-dangle valid var foo = [ 'baz' ] ok 1855 comma-dangle valid var { a, b } = foo; ok 1856 comma-dangle valid var [ a, b ] = foo; ok 1857 comma-dangle valid var { a, b, } = foo; ok 1858 comma-dangle valid var [ a, b, ] = foo; ok 1859 comma-dangle valid [(1),] ok 1860 comma-dangle valid var x = { foo: (1),}; ok 1861 comma-dangle valid var foo = { bar: 'baz', } ok 1862 comma-dangle valid var foo = { bar: 'baz', } ok 1863 comma-dangle valid var foo = { bar: 'baz' ,} ok 1864 comma-dangle valid var foo = [ 'baz', ] ok 1865 comma-dangle valid var foo = [ 'baz', ] ok 1866 comma-dangle valid var foo = [ 'baz' ,] ok 1867 comma-dangle valid [,,] ok 1868 comma-dangle valid [ , , ] ok 1869 comma-dangle valid [,] ok 1870 comma-dangle valid [ , ] ok 1871 comma-dangle valid [] ok 1872 comma-dangle valid [ ] ok 1873 comma-dangle valid var foo = { bar: 'baz' } ok 1874 comma-dangle valid var foo = { bar: 'baz' } ok 1875 comma-dangle valid var foo = { bar: 'baz', } ok 1876 comma-dangle valid var foo = { bar: 'baz', } ok 1877 comma-dangle valid var foo = [ 'baz' ] ok 1878 comma-dangle valid var foo = [ 'baz' ] ok 1879 comma-dangle valid var foo = [ 'baz', ] ok 1880 comma-dangle valid var foo = [ 'baz', ] ok 1881 comma-dangle valid var foo = { bar: 'bar' } ok 1882 comma-dangle valid var foo = { bar: 'bar' } ok 1883 comma-dangle valid var foo = {a: 1, b: 2, c: 3, d: 4} ok 1884 comma-dangle valid var foo = {a: 1, b: 2, c: 3, d: 4} ok 1885 comma-dangle valid var foo = {a: 1, b: 2, c: 3, d: 4} ok 1886 comma-dangle valid var foo = {a: 1, b: 2, c: 3, d: 4} ok 1887 comma-dangle valid var foo = {x: { foo: 'bar', }} ok 1888 comma-dangle valid var foo = {x: { foo: 'bar', }} ok 1889 comma-dangle valid var foo = new Map([ [key, { a: 1, b: 2, c: 3, }], ]) ok 1890 comma-dangle valid var foo = new Map([ [key, { a: 1, b: 2, c: 3, }], ]) ok 1891 comma-dangle valid var [a, ...rest] = []; ok 1892 comma-dangle valid var [ a, ...rest ] = []; ok 1893 comma-dangle valid var [ a, ...rest ] = []; ok 1894 comma-dangle valid var [ a, ...rest ] = []; ok 1895 comma-dangle valid [a, ...rest] = []; ok 1896 comma-dangle valid for ([a, ...rest] of []); ok 1897 comma-dangle valid var a = [b, ...spread,]; ok 1898 comma-dangle valid var {foo, ...bar} = baz ok 1899 comma-dangle valid import {foo,} from 'foo'; ok 1900 comma-dangle valid import foo from 'foo'; ok 1901 comma-dangle valid import foo, {abc,} from 'foo'; ok 1902 comma-dangle valid import * as foo from 'foo'; ok 1903 comma-dangle valid export {foo,} from 'foo'; ok 1904 comma-dangle valid import {foo} from 'foo'; ok 1905 comma-dangle valid import foo from 'foo'; ok 1906 comma-dangle valid import foo, {abc} from 'foo'; ok 1907 comma-dangle valid import * as foo from 'foo'; ok 1908 comma-dangle valid export {foo} from 'foo'; ok 1909 comma-dangle valid import {foo} from 'foo'; ok 1910 comma-dangle valid import {foo} from 'foo'; ok 1911 comma-dangle valid export {foo} from 'foo'; ok 1912 comma-dangle valid export {foo} from 'foo'; ok 1913 comma-dangle valid import { foo, } from 'foo'; ok 1914 comma-dangle valid import { foo, } from 'foo'; ok 1915 comma-dangle valid export { foo, } from 'foo'; ok 1916 comma-dangle valid export { foo, } from 'foo'; ok 1917 comma-dangle valid import {foo} from 'foo'; ok 1918 comma-dangle valid import {foo} from 'foo'; ok 1919 comma-dangle valid function foo(a,) {} ok 1920 comma-dangle valid foo(a,) ok 1921 comma-dangle valid function foo(a) {} ok 1922 comma-dangle valid foo(a) ok 1923 comma-dangle valid function foo( a, b ) {} ok 1924 comma-dangle valid foo( a,b) ok 1925 comma-dangle valid function foo(a,b,) {} ok 1926 comma-dangle valid foo(a,b,) ok 1927 comma-dangle valid function foo(a,b,) {} ok 1928 comma-dangle valid foo(a,b,) ok 1929 comma-dangle valid function foo(a) {} ok 1930 comma-dangle valid foo(a) ok 1931 comma-dangle valid function foo(a,) {} ok 1932 comma-dangle valid function bar(a, ...b) {} ok 1933 comma-dangle valid foo(a,) ok 1934 comma-dangle valid bar(...a,) ok 1935 comma-dangle valid function foo(a) {} ok 1936 comma-dangle valid foo(a) ok 1937 comma-dangle valid function foo( a, b, ) {} ok 1938 comma-dangle valid function foo( a, ...b ) {} ok 1939 comma-dangle valid foo( a, b, ) ok 1940 comma-dangle valid foo( a, ...b, ) ok 1941 comma-dangle valid function foo(a) {} ok 1942 comma-dangle valid foo(a) ok 1943 comma-dangle valid function foo( a, b, ) {} ok 1944 comma-dangle valid foo( a, b, ) ok 1945 comma-dangle valid function foo( a, b ) {} ok 1946 comma-dangle valid foo( a, b ) ok 1947 comma-dangle valid function foo({a}: {a: string,}) {} ok 1948 comma-dangle valid function foo({a,}: {a: string}) {} ok 1949 comma-dangle valid function foo(a): {b: boolean,} {} ok 1950 comma-dangle valid function foo(a,): {b: boolean} {} ok 1951 comma-dangle invalid var foo = { bar: 'baz', } ok 1952 comma-dangle invalid var foo = { bar: 'baz', } ok 1953 comma-dangle invalid foo({ bar: 'baz', qux: 'quux', }); ok 1954 comma-dangle invalid foo({ bar: 'baz', qux: 'quux', }); ok 1955 comma-dangle invalid var foo = [ 'baz', ] ok 1956 comma-dangle invalid var foo = [ 'baz', ] ok 1957 comma-dangle invalid var foo = { bar: 'bar' , } ok 1958 comma-dangle invalid var foo = { bar: 'baz', } ok 1959 comma-dangle invalid var foo = { bar: 'baz', } ok 1960 comma-dangle invalid var foo = { bar: 'baz', } ok 1961 comma-dangle invalid foo({ bar: 'baz', qux: 'quux', }); ok 1962 comma-dangle invalid foo({ bar: 'baz', qux: 'quux', }); ok 1963 comma-dangle invalid var foo = { bar: 'baz' } ok 1964 comma-dangle invalid var foo = { bar: 'baz' } ok 1965 comma-dangle invalid foo({ bar: 'baz', qux: 'quux' }); ok 1966 comma-dangle invalid foo({ bar: 'baz', qux: 'quux' }); ok 1967 comma-dangle invalid var foo = [ 'baz' ] ok 1968 comma-dangle invalid var foo = [ 'baz' ] ok 1969 comma-dangle invalid var foo = { bar: 'bar' } ok 1970 comma-dangle invalid var foo = { bar: 'baz' } ok 1971 comma-dangle invalid var foo = [ bar, ( baz ) ]; ok 1972 comma-dangle invalid var foo = { foo: 'bar', baz: ( qux ) }; ok 1973 comma-dangle invalid var foo = [ (bar ? baz : qux ) ]; ok 1974 comma-dangle invalid var foo = { bar: 'baz', } ok 1975 comma-dangle invalid foo({ bar: 'baz', qux: 'quux' }); ok 1976 comma-dangle invalid foo({ bar: 'baz', qux: 'quux', }); ok 1977 comma-dangle invalid var foo = [ 'baz' ] ok 1978 comma-dangle invalid var foo = ['baz',] ok 1979 comma-dangle invalid var foo = ['baz',] ok 1980 comma-dangle invalid var foo = {x: { foo: 'bar', },} ok 1981 comma-dangle invalid var foo = {a: 1, b: 2, c: 3, d: 4,} ok 1982 comma-dangle invalid var foo = {a: 1, b: 2, c: 3, d: 4,} ok 1983 comma-dangle invalid var foo = [{ a: 1, b: 2, c: 3, d: 4, },] ok 1984 comma-dangle invalid var { a, b, } = foo; ok 1985 comma-dangle invalid var { a, b, } = foo; ok 1986 comma-dangle invalid var [ a, b, ] = foo; ok 1987 comma-dangle invalid var [ a, b, ] = foo; ok 1988 comma-dangle invalid [(1),] ok 1989 comma-dangle invalid [(1),] ok 1990 comma-dangle invalid var x = { foo: (1),}; ok 1991 comma-dangle invalid var x = { foo: (1),}; ok 1992 comma-dangle invalid import {foo} from 'foo'; ok 1993 comma-dangle invalid import foo, {abc} from 'foo'; ok 1994 comma-dangle invalid export {foo} from 'foo'; ok 1995 comma-dangle invalid import {foo,} from 'foo'; ok 1996 comma-dangle invalid import {foo,} from 'foo'; ok 1997 comma-dangle invalid import foo, {abc,} from 'foo'; ok 1998 comma-dangle invalid import foo, {abc,} from 'foo'; ok 1999 comma-dangle invalid export {foo,} from 'foo'; ok 2000 comma-dangle invalid export {foo,} from 'foo'; ok 2001 comma-dangle invalid import {foo,} from 'foo'; ok 2002 comma-dangle invalid export {foo,} from 'foo'; ok 2003 comma-dangle invalid import { foo } from 'foo'; ok 2004 comma-dangle invalid export { foo } from 'foo'; ok 2005 comma-dangle invalid var foo = {a: (1)} ok 2006 comma-dangle invalid var foo = [(1)] ok 2007 comma-dangle invalid var foo = [ 1, (2) ] ok 2008 comma-dangle invalid function foo(a,) {} ok 2009 comma-dangle invalid (function foo(a,) {}) ok 2010 comma-dangle invalid (a,) => a ok 2011 comma-dangle invalid (a,) => (a) ok 2012 comma-dangle invalid ({foo(a,) {}}) ok 2013 comma-dangle invalid class A {foo(a,) {}} ok 2014 comma-dangle invalid foo(a,) ok 2015 comma-dangle invalid foo(...a,) ok 2016 comma-dangle invalid function foo(a) {} ok 2017 comma-dangle invalid (function foo(a) {}) ok 2018 comma-dangle invalid (a) => a ok 2019 comma-dangle invalid (a) => (a) ok 2020 comma-dangle invalid ({foo(a) {}}) ok 2021 comma-dangle invalid class A {foo(a) {}} ok 2022 comma-dangle invalid foo(a) ok 2023 comma-dangle invalid foo(...a) ok 2024 comma-dangle invalid function foo(a,) {} ok 2025 comma-dangle invalid (function foo(a,) {}) ok 2026 comma-dangle invalid foo(a,) ok 2027 comma-dangle invalid foo(...a,) ok 2028 comma-dangle invalid function foo( a, b ) {} ok 2029 comma-dangle invalid foo( a, b ) ok 2030 comma-dangle invalid foo( ...a, ...b ) ok 2031 comma-dangle invalid function foo(a,) {} ok 2032 comma-dangle invalid (function foo(a,) {}) ok 2033 comma-dangle invalid foo(a,) ok 2034 comma-dangle invalid foo(...a,) ok 2035 comma-dangle invalid let {a,} = {a: 1,}; let [b,] = [1,]; import {c,} from "foo"; let d = 0;export {d,}; (function foo(e,) {})(f,); ok 2036 comma-dangle invalid let {a,} = {a: 1,}; let [b,] = [1,]; import {c,} from "foo"; let d = 0;export {d,}; (function foo(e,) {})(f,); ok 2037 comma-dangle invalid let {a,} = {a: 1,}; let [b,] = [1,]; import {c,} from "foo"; let d = 0;export {d,}; (function foo(e,) {})(f,); ok 2038 comma-dangle invalid let {a,} = {a: 1,}; let [b,] = [1,]; import {c,} from "foo"; let d = 0;export {d,}; (function foo(e,) {})(f,); ok 2039 comma-dangle invalid let {a,} = {a: 1,}; let [b,] = [1,]; import {c,} from "foo"; let d = 0;export {d,}; (function foo(e,) {})(f,); ok 2040 comma-dangle invalid function foo({a}: {a: string,}) {} ok 2041 comma-dangle invalid function foo({a,}: {a: string}) {} ok 2042 comma-dangle invalid function foo(a): {b: boolean,} {} ok 2043 comma-dangle invalid function foo(a,): {b: boolean} {} ok 2044 comma-spacing valid myfunc(404, true/* bla bla bla */, 'hello'); ok 2045 comma-spacing valid myfunc(404, true /* bla bla bla */, 'hello'); ok 2046 comma-spacing valid myfunc(404, true/* bla bla bla *//* hi */, 'hello'); ok 2047 comma-spacing valid myfunc(404, true/* bla bla bla */ /* hi */, 'hello'); ok 2048 comma-spacing valid myfunc(404, true, /* bla bla bla */ 'hello'); ok 2049 comma-spacing valid myfunc(404, // comment true, /* bla bla bla */ 'hello'); ok 2050 comma-spacing valid myfunc(404, // comment true,/* bla bla bla */ 'hello'); ok 2051 comma-spacing valid var a = 1, b = 2; ok 2052 comma-spacing valid var arr = [, ]; ok 2053 comma-spacing valid var arr = [1, ]; ok 2054 comma-spacing valid var arr = [, 2]; ok 2055 comma-spacing valid var arr = [1, 2]; ok 2056 comma-spacing valid var arr = [, , ]; ok 2057 comma-spacing valid var arr = [1, , ]; ok 2058 comma-spacing valid var arr = [, 2, ]; ok 2059 comma-spacing valid var arr = [, , 3]; ok 2060 comma-spacing valid var arr = [1, 2, ]; ok 2061 comma-spacing valid var arr = [, 2, 3]; ok 2062 comma-spacing valid var arr = [1, , 3]; ok 2063 comma-spacing valid var arr = [1, 2, 3]; ok 2064 comma-spacing valid var obj = {'foo':'bar', 'baz':'qur'}; ok 2065 comma-spacing valid var obj = {'foo':'bar', 'baz': 'qur'}; ok 2066 comma-spacing valid var obj = {'foo': 'bar', 'baz': 'qur'}; ok 2067 comma-spacing valid function foo(a, b){} ok 2068 comma-spacing valid function foo(a, b = 1){} ok 2069 comma-spacing valid function foo(a = 1, b, c){} ok 2070 comma-spacing valid var foo = (a, b) => {} ok 2071 comma-spacing valid var foo = (a=1, b) => {} ok 2072 comma-spacing valid var foo = a => a + 2 ok 2073 comma-spacing valid a, b ok 2074 comma-spacing valid var a = (1 + 2, 2); ok 2075 comma-spacing valid a(b, c) ok 2076 comma-spacing valid new A(b, c) ok 2077 comma-spacing valid foo((a), b) ok 2078 comma-spacing valid var b = ((1 + 2), 2); ok 2079 comma-spacing valid parseInt((a + b), 10) ok 2080 comma-spacing valid go.boom((a + b), 10) ok 2081 comma-spacing valid go.boom((a + b), 10, (4)) ok 2082 comma-spacing valid var x = [ (a + c), (b + b) ] ok 2083 comma-spacing valid [' , '] ok 2084 comma-spacing valid [` , `] ok 2085 comma-spacing valid `${[1, 2]}` ok 2086 comma-spacing valid fn(a, b,) ok 2087 comma-spacing valid const fn = (a, b,) => {} ok 2088 comma-spacing valid const fn = function (a, b,) {} ok 2089 comma-spacing valid function fn(a, b,) {} ok 2090 comma-spacing valid foo(/,/, 'a') ok 2091 comma-spacing valid var x = ',,,,,'; ok 2092 comma-spacing valid var code = 'var foo = 1, bar = 3;' ok 2093 comma-spacing valid ['apples', 'oranges']; ok 2094 comma-spacing valid {x: 'var x,y,z'} ok 2095 comma-spacing valid var obj = {'foo': 'bar' ,'baz': 'qur'}; ok 2096 comma-spacing valid var a = 1 ,b = 2; ok 2097 comma-spacing valid function foo(a ,b){} ok 2098 comma-spacing valid var arr = [,]; ok 2099 comma-spacing valid var arr = [1 ,]; ok 2100 comma-spacing valid var arr = [ ,2]; ok 2101 comma-spacing valid var arr = [1 ,2]; ok 2102 comma-spacing valid var arr = [,,]; ok 2103 comma-spacing valid var arr = [1 , ,]; ok 2104 comma-spacing valid var arr = [ ,2 ,]; ok 2105 comma-spacing valid var arr = [ , ,3]; ok 2106 comma-spacing valid var arr = [1 ,2 ,]; ok 2107 comma-spacing valid var arr = [ ,2 ,3]; ok 2108 comma-spacing valid var arr = [1 , ,3]; ok 2109 comma-spacing valid var arr = [1 ,2 ,3]; ok 2110 comma-spacing valid var obj = {'foo':'bar' , 'baz':'qur'}; ok 2111 comma-spacing valid var a = 1 , b = 2; ok 2112 comma-spacing valid var arr = [, ]; ok 2113 comma-spacing valid var arr = [1 , ]; ok 2114 comma-spacing valid var arr = [ , 2]; ok 2115 comma-spacing valid var arr = [1 , 2]; ok 2116 comma-spacing valid var arr = [, , ]; ok 2117 comma-spacing valid var arr = [1 , , ]; ok 2118 comma-spacing valid var arr = [ , 2 , ]; ok 2119 comma-spacing valid var arr = [ , , 3]; ok 2120 comma-spacing valid var arr = [1 , 2 , ]; ok 2121 comma-spacing valid var arr = [, 2 , 3]; ok 2122 comma-spacing valid var arr = [1 , , 3]; ok 2123 comma-spacing valid var arr = [1 , 2 , 3]; ok 2124 comma-spacing valid a , b ok 2125 comma-spacing valid var arr = [,]; ok 2126 comma-spacing valid var arr = [ ,]; ok 2127 comma-spacing valid var arr = [1,]; ok 2128 comma-spacing valid var arr = [,2]; ok 2129 comma-spacing valid var arr = [ ,2]; ok 2130 comma-spacing valid var arr = [1,2]; ok 2131 comma-spacing valid var arr = [,,]; ok 2132 comma-spacing valid var arr = [ ,,]; ok 2133 comma-spacing valid var arr = [1,,]; ok 2134 comma-spacing valid var arr = [,2,]; ok 2135 comma-spacing valid var arr = [ ,2,]; ok 2136 comma-spacing valid var arr = [,,3]; ok 2137 comma-spacing valid var arr = [1,2,]; ok 2138 comma-spacing valid var arr = [,2,3]; ok 2139 comma-spacing valid var arr = [1,,3]; ok 2140 comma-spacing valid var arr = [1,2,3]; ok 2141 comma-spacing valid var a = (1 + 2,2) ok 2142 comma-spacing valid var a; console.log(`${a}`, "a"); ok 2143 comma-spacing valid var [a, b] = [1, 2]; ok 2144 comma-spacing valid var [a, b, ] = [1, 2]; ok 2145 comma-spacing valid var [a, , b] = [1, 2, 3]; ok 2146 comma-spacing valid var [ , b] = a; ok 2147 comma-spacing valid var [, b] = a; ok 2148 comma-spacing valid <a>,</a> ok 2149 comma-spacing valid <a> , </a> ok 2150 comma-spacing valid <a>Hello, world</a> ok 2151 comma-spacing invalid a(b,c) ok 2152 comma-spacing invalid new A(b,c) ok 2153 comma-spacing invalid var a = 1 ,b = 2; ok 2154 comma-spacing invalid var arr = [1 , 2]; ok 2155 comma-spacing invalid var arr = [1 , ]; ok 2156 comma-spacing invalid var arr = [1 , ]; ok 2157 comma-spacing invalid var arr = [1 ,2]; ok 2158 comma-spacing invalid var arr = [(1) , 2]; ok 2159 comma-spacing invalid var arr = [1, 2]; ok 2160 comma-spacing invalid var arr = [1 , 2]; ok 2161 comma-spacing invalid var arr = [1, 2]; ok 2162 comma-spacing invalid var obj = {'foo': 'bar', 'baz': 'qur'}; ok 2163 comma-spacing invalid var obj = {a: 1 ,b: 2}; ok 2164 comma-spacing invalid var obj = {a: 1 , b: 2}; ok 2165 comma-spacing invalid var arr = [1 ,2]; ok 2166 comma-spacing invalid var arr = [1,2]; ok 2167 comma-spacing invalid var obj = {'foo': 'bar','baz': 'qur'}; ok 2168 comma-spacing invalid var arr = [1 , 2]; ok 2169 comma-spacing invalid a ,b ok 2170 comma-spacing invalid function foo(a,b){} ok 2171 comma-spacing invalid var foo = (a,b) => {} ok 2172 comma-spacing invalid var foo = (a = 1,b) => {} ok 2173 comma-spacing invalid function foo(a = 1 ,b = 2) {} ok 2174 comma-spacing invalid <a>{foo(1 ,2)}</a> ok 2175 comma-spacing invalid myfunc(404, true/* bla bla bla */ , 'hello'); ok 2176 comma-spacing invalid myfunc(404, true,/* bla bla bla */ 'hello'); ok 2177 comma-spacing invalid myfunc(404,// comment true, 'hello'); ok 2178 comma-style valid var foo = 1, bar = 3; ok 2179 comma-style valid var foo = {'a': 1, 'b': 2}; ok 2180 comma-style valid var foo = [1, 2]; ok 2181 comma-style valid var foo = [, 2]; ok 2182 comma-style valid var foo = [1, ]; ok 2183 comma-style valid var foo = ['apples', 'oranges']; ok 2184 comma-style valid var foo = {'a': 1, 'b': 2, 'c': 3}; ok 2185 comma-style valid var foo = {'a': 1, 'b': 2, 'c': 3}; ok 2186 comma-style valid var foo = {'a': 1, 'b': 2, 'c': [{'d': 1}, {'e': 2}, {'f': 3}]}; ok 2187 comma-style valid var foo = [1, 2, 3]; ok 2188 comma-style valid function foo(){var a=[1, 2]} ok 2189 comma-style valid function foo(){return {'a': 1, 'b': 2}} ok 2190 comma-style valid var foo = 1, bar = 2; ok 2191 comma-style valid var foo = [ (bar), baz ]; ok 2192 comma-style valid var foo = [ (bar ), baz ]; ok 2193 comma-style valid var foo = [ ( bar ), baz ]; ok 2194 comma-style valid new Foo(a ,b); ok 2195 comma-style valid var foo = [ (bar ) ,baz ]; ok 2196 comma-style valid var foo = 1, bar = [1, 2, 3] ok 2197 comma-style valid var foo = ['apples' ,'oranges']; ok 2198 comma-style valid var foo = 1, bar = 2; ok 2199 comma-style valid var foo = 1 ,bar = 2; ok 2200 comma-style valid var foo = {'a': 1 ,'b': 2 ,'c': 3}; ok 2201 comma-style valid var foo = [1 ,2 , 3]; ok 2202 comma-style valid function foo(){return {'a': 1 ,'b': 2}} ok 2203 comma-style valid function foo(){var a=[1 , 2]} ok 2204 comma-style valid new Foo(a, b); ok 2205 comma-style valid f(1 , 2); ok 2206 comma-style valid function foo(a , b) { return a + b; } ok 2207 comma-style valid var a = 'a', o = 'o'; ok 2208 comma-style valid var arr = ['a', 'o']; ok 2209 comma-style valid var obj = {a: 'a', b: 'b'}; ok 2210 comma-style valid var a = 'a', o = 'o', arr = [1, 2]; ok 2211 comma-style valid var ar ={fst:1, snd: [1, 2]}; ok 2212 comma-style valid var a = 'a', ar ={fst:1, snd: [1, 2]}; ok 2213 comma-style valid const foo = (a , b) => { return a + b; } ok 2214 comma-style valid function foo([a , b]) { return a + b; } ok 2215 comma-style valid const foo = ([a , b]) => { return a + b; } ok 2216 comma-style valid import { a , b } from './source'; ok 2217 comma-style valid const foo = function (a , b) { return a + b; } ok 2218 comma-style valid var {foo , bar} = {foo:'apples', bar:'oranges'}; ok 2219 comma-style valid var {foo , bar} = {foo:'apples', bar:'oranges'}; ok 2220 comma-style valid new Foo(a, b); ok 2221 comma-style valid f(1 , 2); ok 2222 comma-style valid function foo(a , b) { return a + b; } ok 2223 comma-style valid const foo = function (a , b) { return a + b; } ok 2224 comma-style valid function foo([a , b]) { return a + b; } ok 2225 comma-style valid const foo = (a , b) => { return a + b; } ok 2226 comma-style valid const foo = ([a , b]) => { return a + b; } ok 2227 comma-style valid import { a , b } from './source'; ok 2228 comma-style valid var {foo , bar} = {foo:'apples', bar:'oranges'}; ok 2229 comma-style valid new Foo(a, b); ok 2230 comma-style valid new Foo(a ,b); ok 2231 comma-style invalid var foo = { a: 1. //comment , b: 2 } ok 2232 comma-style invalid var foo = { a: 1. //comment //comment1 //comment2 , b: 2 } ok 2233 comma-style invalid var foo = 1 , bar = 2; ok 2234 comma-style invalid var foo = 1 //comment , bar = 2; ok 2235 comma-style invalid var foo = 1 //comment , // comment 2 bar = 2; ok 2236 comma-style invalid new Foo(a , b); ok 2237 comma-style invalid var foo = 1 ,bar = 2; ok 2238 comma-style invalid f([1,2 ,3]); ok 2239 comma-style invalid f([1,2 ,]); ok 2240 comma-style invalid f([,2 ,3]); ok 2241 comma-style invalid var foo = ['apples' , 'oranges']; ok 2242 comma-style invalid var [foo , bar] = ['apples', 'oranges']; ok 2243 comma-style invalid f(1 , 2); ok 2244 comma-style invalid function foo(a , b) { return a + b; } ok 2245 comma-style invalid const foo = function (a , b) { return a + b; } ok 2246 comma-style invalid function foo([a , b]) { return a + b; } ok 2247 comma-style invalid const foo = (a , b) => { return a + b; } ok 2248 comma-style invalid const foo = ([a , b]) => { return a + b; } ok 2249 comma-style invalid import { a , b } from './source'; ok 2250 comma-style invalid var {foo , bar} = {foo:'apples', bar:'oranges'}; ok 2251 comma-style invalid var foo = 1, bar = 2; ok 2252 comma-style invalid f([1, 2,3]); ok 2253 comma-style invalid var foo = ['apples', 'oranges']; ok 2254 comma-style invalid var foo = {'a': 1, 'b': 2 ,'c': 3}; ok 2255 comma-style invalid var a = 'a', o = 'o', arr = [1, 2]; ok 2256 comma-style invalid var a = 'a', obj = {a: 'a', b: 'b'}; ok 2257 comma-style invalid var a = 'a', obj = {a: 'a', b: 'b'}; ok 2258 comma-style invalid var a = 'a', arr = [1, 2]; ok 2259 comma-style invalid var ar =[1, {a: 'a', b: 'b'}]; ok 2260 comma-style invalid var ar =[1, {a: 'a', b: 'b'}]; ok 2261 comma-style invalid var ar ={fst:1, snd: [1, 2]}; ok 2262 comma-style invalid var ar ={fst:1, snd: [1, 2]}; ok 2263 comma-style invalid new Foo(a, b); ok 2264 comma-style invalid var foo = [ (bar ) , baz ]; ok 2265 comma-style invalid [(foo), , bar] ok 2266 comma-style invalid new Foo(a ,b); ok 2267 comma-style invalid [ [foo(3)], , bar ]; ok 2268 comma-style invalid [foo// ,/*block comment*/]; ok 2269 complexity valid function a(x) {} ok 2270 complexity valid function b(x) {} ok 2271 complexity valid function a(x) {if (true) {return x;}} ok 2272 complexity valid function a(x) {if (true) {return x;} else {return x+1;}} ok 2273 complexity valid function a(x) {if (true) {return x;} else if (false) {return x+1;} else {return 4;}} ok 2274 complexity valid function a(x) {for(var i = 0; i < 5; i ++) {x ++;} return x;} ok 2275 complexity valid function a(obj) {for(var i in obj) {obj[i] = 3;}} ok 2276 complexity valid function a(x) {for(var i = 0; i < 5; i ++) {if(i % 2 === 0) {x ++;}} return x;} ok 2277 complexity valid function a(obj) {if(obj){ for(var x in obj) {try {x.getThis();} catch (e) {x.getThat();}}} else {return false;}} ok 2278 complexity valid function a(x) {try {x.getThis();} catch (e) {x.getThat();}} ok 2279 complexity valid function a(x) {return x === 4 ? 3 : 5;} ok 2280 complexity valid function a(x) {return x === 4 ? 3 : (x === 3 ? 2 : 1);} ok 2281 complexity valid function a(x) {return x || 4;} ok 2282 complexity valid function a(x) {x && 4;} ok 2283 complexity valid function a(x) {switch(x){case 1: 1; break; case 2: 2; break; default: 3;}} ok 2284 complexity valid function a(x) {switch(x){case 1: 1; break; case 2: 2; break; default: if(x == 'foo') {5;};}} ok 2285 complexity valid function a(x) {while(true) {'foo';}} ok 2286 complexity valid function a(x) {do {'foo';} while (true)} ok 2287 complexity valid if (foo) { bar(); } ok 2288 complexity valid var a = (x) => {do {'foo';} while (true)} ok 2289 complexity valid function b(x) {} ok 2290 complexity invalid function a(x) {} ok 2291 complexity invalid var func = function () {} ok 2292 complexity invalid var obj = { a(x) {} } ok 2293 complexity invalid class Test { a(x) {} } ok 2294 complexity invalid var a = (x) => {if (true) {return x;}} ok 2295 complexity invalid function a(x) {if (true) {return x;}} ok 2296 complexity invalid function a(x) {if (true) {return x;} else {return x+1;}} ok 2297 complexity invalid function a(x) {if (true) {return x;} else if (false) {return x+1;} else {return 4;}} ok 2298 complexity invalid function a(x) {for(var i = 0; i < 5; i ++) {x ++;} return x;} ok 2299 complexity invalid function a(obj) {for(var i in obj) {obj[i] = 3;}} ok 2300 complexity invalid function a(obj) {for(var i of obj) {obj[i] = 3;}} ok 2301 complexity invalid function a(x) {for(var i = 0; i < 5; i ++) {if(i % 2 === 0) {x ++;}} return x;} ok 2302 complexity invalid function a(obj) {if(obj){ for(var x in obj) {try {x.getThis();} catch (e) {x.getThat();}}} else {return false;}} ok 2303 complexity invalid function a(x) {try {x.getThis();} catch (e) {x.getThat();}} ok 2304 complexity invalid function a(x) {return x === 4 ? 3 : 5;} ok 2305 complexity invalid function a(x) {return x === 4 ? 3 : (x === 3 ? 2 : 1);} ok 2306 complexity invalid function a(x) {return x || 4;} ok 2307 complexity invalid function a(x) {x && 4;} ok 2308 complexity invalid function a(x) {switch(x){case 1: 1; break; case 2: 2; break; default: 3;}} ok 2309 complexity invalid function a(x) {switch(x){case 1: 1; break; case 2: 2; break; default: if(x == 'foo') {5;};}} ok 2310 complexity invalid function a(x) {while(true) {'foo';}} ok 2311 complexity invalid function a(x) {do {'foo';} while (true)} ok 2312 complexity invalid function a(x) {(function() {while(true){'foo';}})(); (function() {while(true){'bar';}})();} ok 2313 complexity invalid function a(x) {(function() {while(true){'foo';}})(); (function() {'bar';})();} ok 2314 complexity invalid var obj = { a(x) { return x ? 0 : 1; } }; ok 2315 complexity invalid var obj = { a: function b(x) { return x ? 0 : 1; } }; ok 2316 complexity invalid function test (a) { if (a === 1) {} else if (a === 2) {} else if (a === 3) {} else if (a === 4) {} else if (a === 5) {} else if (a === 6) {} else if (a === 7) {} else if (a === 8) {} else if (a === 9) {} else if (a === 10) {} else if (a === 11) {} else if (a === 12) {} else if (a === 13) {} else if (a === 14) {} else if (a === 15) {} else if (a === 16) {} else if (a === 17) {} else if (a === 18) {} else if (a === 19) {} else if (a === 20) {} }; ok 2317 complexity invalid function test (a) { if (a === 1) {} else if (a === 2) {} else if (a === 3) {} else if (a === 4) {} else if (a === 5) {} else if (a === 6) {} else if (a === 7) {} else if (a === 8) {} else if (a === 9) {} else if (a === 10) {} else if (a === 11) {} else if (a === 12) {} else if (a === 13) {} else if (a === 14) {} else if (a === 15) {} else if (a === 16) {} else if (a === 17) {} else if (a === 18) {} else if (a === 19) {} else if (a === 20) {} }; ok 2318 complexity invalid function a(x) {} ok 2319 computed-property-spacing valid obj[foo] ok 2320 computed-property-spacing valid obj['foo'] ok 2321 computed-property-spacing valid var x = {[b]: a} ok 2322 computed-property-spacing valid obj[ foo ] ok 2323 computed-property-spacing valid obj[ foo ] ok 2324 computed-property-spacing valid obj[ 'foo' ] ok 2325 computed-property-spacing valid obj[ 'foo' + 'bar' ] ok 2326 computed-property-spacing valid obj[ obj2[ foo ] ] ok 2327 computed-property-spacing valid obj.map(function(item) { return [ 1, 2, 3, 4 ]; }) ok 2328 computed-property-spacing valid obj[ 'map' ](function(item) { return [ 1, 2, 3, 4 ]; }) ok 2329 computed-property-spacing valid obj[ 'for' + 'Each' ](function(item) { return [ 1, 2, 3, 4 ]; }) ok 2330 computed-property-spacing valid var foo = obj[ 1 ] ok 2331 computed-property-spacing valid var foo = obj[ 'foo' ]; ok 2332 computed-property-spacing valid var foo = obj[ [1, 1] ]; ok 2333 computed-property-spacing valid var x = {[ "a" ]: a} ok 2334 computed-property-spacing valid var y = {[ x ]: a} ok 2335 computed-property-spacing valid var x = {[ "a" ]() {}} ok 2336 computed-property-spacing valid var y = {[ x ]() {}} ok 2337 computed-property-spacing valid var foo = {}; ok 2338 computed-property-spacing valid var foo = []; ok 2339 computed-property-spacing valid obj[foo] ok 2340 computed-property-spacing valid obj['foo'] ok 2341 computed-property-spacing valid obj['foo' + 'bar'] ok 2342 computed-property-spacing valid obj['foo'+'bar'] ok 2343 computed-property-spacing valid obj[obj2[foo]] ok 2344 computed-property-spacing valid obj.map(function(item) { return [ 1, 2, 3, 4 ]; }) ok 2345 computed-property-spacing valid obj['map'](function(item) { return [ 1, 2, 3, 4 ]; }) ok 2346 computed-property-spacing valid obj['for' + 'Each'](function(item) { return [ 1, 2, 3, 4 ]; }) ok 2347 computed-property-spacing valid obj[ foo] ok 2348 computed-property-spacing valid obj[foo ] ok 2349 computed-property-spacing valid var foo = obj[1] ok 2350 computed-property-spacing valid var foo = obj['foo']; ok 2351 computed-property-spacing valid var foo = obj[[ 1, 1 ]]; ok 2352 computed-property-spacing valid var x = {["a"]: a} ok 2353 computed-property-spacing valid var y = {[x]: a} ok 2354 computed-property-spacing valid var x = {["a"]() {}} ok 2355 computed-property-spacing valid var y = {[x]() {}} ok 2356 computed-property-spacing valid var foo = {}; ok 2357 computed-property-spacing valid var foo = []; ok 2358 computed-property-spacing invalid var foo = obj[ 1]; ok 2359 computed-property-spacing invalid var foo = obj[1 ]; ok 2360 computed-property-spacing invalid var foo = obj[ 1]; ok 2361 computed-property-spacing invalid var foo = obj[1 ]; ok 2362 computed-property-spacing invalid obj[ foo ] ok 2363 computed-property-spacing invalid obj[foo ] ok 2364 computed-property-spacing invalid obj[ foo] ok 2365 computed-property-spacing invalid var foo = obj[1] ok 2366 computed-property-spacing invalid var x = {[a]: b} ok 2367 computed-property-spacing invalid var x = {[a ]: b} ok 2368 computed-property-spacing invalid var x = {[ a]: b} ok 2369 computed-property-spacing invalid var x = {[ a ]: b} ok 2370 computed-property-spacing invalid var x = {[a ]: b} ok 2371 computed-property-spacing invalid var x = {[ a]: b} ok 2372 computed-property-spacing invalid var x = {[ a ]: b} ok 2373 consistent-return valid function foo() { return; } ok 2374 consistent-return valid function foo() { if (true) return; } ok 2375 consistent-return valid function foo() { if (true) return; else return; } ok 2376 consistent-return valid function foo() { if (true) return true; else return false; } ok 2377 consistent-return valid f(function() { return; }) ok 2378 consistent-return valid f(function() { if (true) return; }) ok 2379 consistent-return valid f(function() { if (true) return; else return; }) ok 2380 consistent-return valid f(function() { if (true) return true; else return false; }) ok 2381 consistent-return valid function foo() { function bar() { return true; } return; } ok 2382 consistent-return valid function foo() { function bar() { return; } return false; } ok 2383 consistent-return valid function Foo() { if (!(this instanceof Foo)) return new Foo(); } ok 2384 consistent-return valid function foo() { if (true) return; else return undefined; } ok 2385 consistent-return valid function foo() { if (true) return; else return void 0; } ok 2386 consistent-return valid function foo() { if (true) return undefined; else return; } ok 2387 consistent-return valid function foo() { if (true) return undefined; else return void 0; } ok 2388 consistent-return valid function foo() { if (true) return void 0; else return; } ok 2389 consistent-return valid function foo() { if (true) return void 0; else return undefined; } ok 2390 consistent-return valid var x = () => { return {}; }; ok 2391 consistent-return valid if (true) { return 1; } return 0; ok 2392 consistent-return valid class Foo { constructor() { if (true) return foo; } } ok 2393 consistent-return valid var Foo = class { constructor() { if (true) return foo; } } ok 2394 consistent-return invalid function foo() { if (true) return true; else return; } ok 2395 consistent-return invalid var foo = () => { if (true) return true; else return; } ok 2396 consistent-return invalid function foo() { if (true) return; else return false; } ok 2397 consistent-return invalid f(function() { if (true) return true; else return; }) ok 2398 consistent-return invalid f(function() { if (true) return; else return false; }) ok 2399 consistent-return invalid f(a => { if (true) return; else return false; }) ok 2400 consistent-return invalid function foo() { if (true) return true; return undefined; } ok 2401 consistent-return invalid function foo() { if (true) return true; return void 0; } ok 2402 consistent-return invalid function foo() { if (true) return undefined; return true; } ok 2403 consistent-return invalid function foo() { if (true) return void 0; return true; } ok 2404 consistent-return invalid if (true) { return 1; } return; ok 2405 consistent-return invalid function foo() { if (a) return true; } ok 2406 consistent-return invalid function _foo() { if (a) return true; } ok 2407 consistent-return invalid f(function foo() { if (a) return true; }); ok 2408 consistent-return invalid f(function() { if (a) return true; }); ok 2409 consistent-return invalid f(() => { if (a) return true; }); ok 2410 consistent-return invalid var obj = {foo() { if (a) return true; }}; ok 2411 consistent-return invalid class A {foo() { if (a) return true; }}; ok 2412 consistent-return invalid if (a) return true; ok 2413 consistent-return invalid class A { CapitalizedFunction() { if (a) return true; } } ok 2414 consistent-return invalid ({ constructor() { if (a) return true; } }); ok 2415 consistent-this valid var foo = 42, that = this ok 2416 consistent-this valid var foo = 42, self = this ok 2417 consistent-this valid var self = 42 ok 2418 consistent-this valid var self ok 2419 consistent-this valid var self; self = this ok 2420 consistent-this valid var foo, self; self = this ok 2421 consistent-this valid var foo, self; foo = 42; self = this ok 2422 consistent-this valid self = 42 ok 2423 consistent-this valid var foo = {}; foo.bar = this ok 2424 consistent-this valid var self = this; var vm = this; ok 2425 consistent-this valid var {foo, bar} = this ok 2426 consistent-this valid ({foo, bar} = this) ok 2427 consistent-this valid var [foo, bar] = this ok 2428 consistent-this valid [foo, bar] = this ok 2429 consistent-this invalid var context = this ok 2430 consistent-this invalid var that = this ok 2431 consistent-this invalid var foo = 42, self = this ok 2432 consistent-this invalid var self = 42 ok 2433 consistent-this invalid var self ok 2434 consistent-this invalid var self; self = 42 ok 2435 consistent-this invalid context = this ok 2436 consistent-this invalid that = this ok 2437 consistent-this invalid self = this ok 2438 consistent-this invalid self += this ok 2439 consistent-this invalid var self; (function() { self = this; }()) ok 2440 constructor-super valid class A { } ok 2441 constructor-super valid class A { constructor() { } } ok 2442 constructor-super valid class A extends null { } ok 2443 constructor-super valid class A extends B { } ok 2444 constructor-super valid class A extends B { constructor() { super(); } } ok 2445 constructor-super valid class A extends B { constructor() { if (true) { super(); } else { super(); } } } ok 2446 constructor-super valid class A extends (class B {}) { constructor() { super(); } } ok 2447 constructor-super valid class A extends (B = C) { constructor() { super(); } } ok 2448 constructor-super valid class A extends (B || C) { constructor() { super(); } } ok 2449 constructor-super valid class A extends (a ? B : C) { constructor() { super(); } } ok 2450 constructor-super valid class A extends (B, C) { constructor() { super(); } } ok 2451 constructor-super valid class A { constructor() { class B extends C { constructor() { super(); } } } } ok 2452 constructor-super valid class A extends B { constructor() { super(); class C extends D { constructor() { super(); } } } } ok 2453 constructor-super valid class A extends B { constructor() { super(); class C { constructor() { } } } } ok 2454 constructor-super valid class A extends B { constructor() { a ? super() : super(); } } ok 2455 constructor-super valid class A extends B { constructor() { if (a) super(); else super(); } } ok 2456 constructor-super valid class A extends B { constructor() { switch (a) { case 0: super(); break; default: super(); } } } ok 2457 constructor-super valid class A extends B { constructor() { try {} finally { super(); } } } ok 2458 constructor-super valid class A extends B { constructor() { if (a) throw Error(); super(); } } ok 2459 constructor-super valid class A extends B { constructor() { if (true) return a; super(); } } ok 2460 constructor-super valid class A extends null { constructor() { return a; } } ok 2461 constructor-super valid class A { constructor() { return a; } } ok 2462 constructor-super valid class A extends B { constructor(a) { super(); for (const b of a) { this.a(); } } } ok 2463 constructor-super valid class Foo extends Object { constructor(method) { super(); this.method = method || function() {}; } } ok 2464 constructor-super valid class A extends Object { constructor() { super(); for (let i = 0; i < 0; i++); } } ok 2465 constructor-super valid class A extends B { constructor(props) { super(props); try { let arr = []; for (let a of arr) { } } catch (err) { } } } ok 2466 constructor-super invalid class A extends null { constructor() { super(); } } ok 2467 constructor-super invalid class A extends null { constructor() { } } ok 2468 constructor-super invalid class A extends 100 { constructor() { super(); } } ok 2469 constructor-super invalid class A extends 'test' { constructor() { super(); } } ok 2470 constructor-super invalid class A extends B { constructor() { } } ok 2471 constructor-super invalid class A extends B { constructor() { for (var a of b) super.foo(); } } ok 2472 constructor-super invalid class A extends B { constructor() { class C extends D { constructor() { super(); } } } } ok 2473 constructor-super invalid class A extends B { constructor() { var c = class extends D { constructor() { super(); } } } } ok 2474 constructor-super invalid class A extends B { constructor() { var c = () => super(); } } ok 2475 constructor-super invalid class A extends B { constructor() { class C extends D { constructor() { super(); } } } } ok 2476 constructor-super invalid class A extends B { constructor() { var C = class extends D { constructor() { super(); } } } } ok 2477 constructor-super invalid class A extends B { constructor() { super(); class C extends D { constructor() { } } } } ok 2478 constructor-super invalid class A extends B { constructor() { super(); var C = class extends D { constructor() { } } } } ok 2479 constructor-super invalid class A extends B { constructor() { if (a) super(); } } ok 2480 constructor-super invalid class A extends B { constructor() { if (a); else super(); } } ok 2481 constructor-super invalid class A extends B { constructor() { a && super(); } } ok 2482 constructor-super invalid class A extends B { constructor() { switch (a) { case 0: super(); } } } ok 2483 constructor-super invalid class A extends B { constructor() { switch (a) { case 0: break; default: super(); } } } ok 2484 constructor-super invalid class A extends B { constructor() { try { super(); } catch (err) {} } } ok 2485 constructor-super invalid class A extends B { constructor() { try { a; } catch (err) { super(); } } } ok 2486 constructor-super invalid class A extends B { constructor() { if (a) return; super(); } } ok 2487 constructor-super invalid class A extends B { constructor() { super(); super(); } } ok 2488 constructor-super invalid class A extends B { constructor() { super() || super(); } } ok 2489 constructor-super invalid class A extends B { constructor() { if (a) super(); super(); } } ok 2490 constructor-super invalid class A extends B { constructor() { switch (a) { case 0: super(); default: super(); } } } ok 2491 constructor-super invalid class A extends B { constructor(a) { while (a) super(); } } ok 2492 constructor-super invalid class A extends B { constructor() { return; super(); } } ok 2493 constructor-super invalid class Foo extends Bar { constructor() { for (a in b) for (c in d); } } ok 2494 curly valid if (foo) { bar() } ok 2495 curly valid if (foo) { bar() } else if (foo2) { baz() } ok 2496 curly valid while (foo) { bar() } ok 2497 curly valid do { bar(); } while (foo) ok 2498 curly valid for (;foo;) { bar() } ok 2499 curly valid for (var foo in bar) { console.log(foo) } ok 2500 curly valid for (var foo of bar) { console.log(foo) } ok 2501 curly valid for (;foo;) bar() ok 2502 curly valid if (foo) bar() ok 2503 curly valid if (a) { b; c; } ok 2504 curly valid for (var foo in bar) console.log(foo) ok 2505 curly valid for (var foo in bar) { console.log(1); console.log(2) } ok 2506 curly valid for (var foo of bar) console.log(foo) ok 2507 curly valid for (var foo of bar) { console.log(1); console.log(2) } ok 2508 curly valid if (foo) bar() ok 2509 curly valid if (foo) bar() ok 2510 curly valid if (foo) bar(); else baz() ok 2511 curly valid if (foo) bar(); else baz() ok 2512 curly valid if (foo) bar() else if (foo) bar() else baz() ok 2513 curly valid do baz(); while (foo) ok 2514 curly valid if (foo) { bar() } ok 2515 curly valid for (var foo in bar) console.log(foo) ok 2516 curly valid for (var foo in bar) { console.log(1); console.log(2); } ok 2517 curly valid for (var foo of bar) console.log(foo) ok 2518 curly valid for (var foo of bar) { console.log(1); console.log(2); } ok 2519 curly valid if (foo) { bar(); baz(); } ok 2520 curly valid do bar() while (foo) ok 2521 curly valid if (foo) { quz = { bar: baz, qux: foo }; } ok 2522 curly valid while (true) { if (foo) doSomething(); else doSomethingElse(); } ok 2523 curly valid if (foo) quz = true; ok 2524 curly valid if (foo) { // line of comment quz = true; } ok 2525 curly valid // line of comment if (foo) quz = true; ok 2526 curly valid while (true) doSomething(); ok 2527 curly valid for (var i = 0; foo; i++) doSomething(); ok 2528 curly valid if (foo) { if(bar) doSomething(); } else doSomethingElse(); ok 2529 curly valid for (var foo in bar) console.log(foo) ok 2530 curly valid for (var foo in bar) { if (foo) console.log(1); else console.log(2) } ok 2531 curly valid for (var foo of bar) console.log(foo) ok 2532 curly valid for (var foo of bar) { if (foo) console.log(1); else console.log(2) } ok 2533 curly valid if (true) { if (false) console.log(1) } else console.log(2) ok 2534 curly valid if (a) { if (b) console.log(1); else if (c) console.log(2) } else console.log(3) ok 2535 curly valid if (true) { while(false) if (true); } else; ok 2536 curly valid if (true) { label: if (false); } else; ok 2537 curly valid if (true) { with(0) if (false); } else; ok 2538 curly valid if (true) { while(a) if(b) while(c) if (d); else; } else; ok 2539 curly valid if (true) foo(); else { bar(); baz(); } ok 2540 curly valid if (true) { foo(); } else { bar(); baz(); } ok 2541 curly valid if (true) { foo(); } else if (true) { faa(); } else { bar(); baz(); } ok 2542 curly valid if (true) { foo(); faa(); } else { bar(); } ok 2543 curly valid if (true) foo() ;[1, 2, 3].bar() ok 2544 curly invalid if (foo) bar() ok 2545 curly invalid if (foo) { bar() } else baz() ok 2546 curly invalid if (foo) { bar() } else if (faa) baz() ok 2547 curly invalid while (foo) bar() ok 2548 curly invalid do bar(); while (foo) ok 2549 curly invalid for (;foo;) bar() ok 2550 curly invalid for (var foo in bar) console.log(foo) ok 2551 curly invalid for (var foo of bar) console.log(foo) ok 2552 curly invalid for (;foo;) { bar() } ok 2553 curly invalid if (foo) { bar() } ok 2554 curly invalid while (foo) { bar() } ok 2555 curly invalid if (foo) baz(); else { bar() } ok 2556 curly invalid if (true) { if (false) console.log(1) } ok 2557 curly invalid if (a) { if (b) console.log(1); else console.log(2) } else console.log(3) ok 2558 curly invalid if (0) console.log(0) else if (1) { console.log(1) console.log(1) } else { if (2) console.log(2) else console.log(3) } ok 2559 curly invalid for (var foo in bar) { console.log(foo) } ok 2560 curly invalid for (var foo of bar) { console.log(foo) } ok 2561 curly invalid if (foo) baz() ok 2562 curly invalid while (foo) baz() ok 2563 curly invalid for (;foo;) bar() ok 2564 curly invalid while (bar && baz) foo() ok 2565 curly invalid if (foo) bar(baz, baz) ok 2566 curly invalid do foo(); while (bar) ok 2567 curly invalid for (var foo in bar) console.log(foo) ok 2568 curly invalid for (var foo in bar) console.log(1); console.log(2) ok 2569 curly invalid for (var foo of bar) console.log(foo) ok 2570 curly invalid for (var foo of bar) console.log(1); console.log(2) ok 2571 curly invalid if (foo) quz = { bar: baz, qux: foo }; ok 2572 curly invalid while (true) if (foo) doSomething(); else doSomethingElse(); ok 2573 curly invalid if (foo) { quz = true; } ok 2574 curly invalid while (true) { doSomething(); } ok 2575 curly invalid for (var i = 0; foo; i++) { doSomething(); } ok 2576 curly invalid for (var foo in bar) if (foo) console.log(1); else console.log(2); ok 2577 curly invalid for (var foo in bar) { if (foo) console.log(1) } ok 2578 curly invalid for (var foo of bar) if (foo) console.log(1); else console.log(2); ok 2579 curly invalid for (var foo of bar) { if (foo) console.log(1) } ok 2580 curly invalid if (true) foo(); else { bar(); baz(); } ok 2581 curly invalid if (true) { foo(); faa(); } else bar(); ok 2582 curly invalid if (true) foo(); else { baz(); } ok 2583 curly invalid if (true) foo(); else if (true) faa(); else { bar(); baz(); } ok 2584 curly invalid do{foo();} while (bar) ok 2585 curly invalid do{[1, 2, 3].map(bar);} while (bar) ok 2586 curly invalid if (foo) {bar()} baz() ok 2587 curly invalid do {foo();} while (bar) ok 2588 curly invalid if (foo) { bar } ++baz; ok 2589 curly invalid if (foo) { bar; } ++baz; ok 2590 curly invalid if (foo) { bar++ } baz; ok 2591 curly invalid if (foo) { bar } [1, 2, 3].map(foo); ok 2592 curly invalid if (foo) { bar } (1).toString(); ok 2593 curly invalid if (foo) { bar } /regex/.test('foo'); ok 2594 curly invalid if (foo) { bar } Baz(); ok 2595 curly invalid if (a) { while (b) { c(); d(); } } else e(); ok 2596 curly invalid if (foo) { while (bar) {} } else {} ok 2597 curly invalid if (foo) { var foo = () => {} } else {} ok 2598 curly invalid if (foo) { var foo = function() {} } else {} ok 2599 curly invalid if (foo) { var foo = function*() {} } else {} ok 2600 curly invalid if (true) foo() ;[1, 2, 3].bar() ok 2601 default-case valid switch (a) { case 1: break; default: break; } ok 2602 default-case valid switch (a) { case 1: break; case 2: default: break; } ok 2603 default-case valid switch (a) { case 1: break; default: break; //no default } ok 2604 default-case valid switch (a) { case 1: break; //oh-oh // no default } ok 2605 default-case valid switch (a) { case 1: // no default } ok 2606 default-case valid switch (a) { case 1: // No default } ok 2607 default-case valid switch (a) { case 1: // no deFAUlt } ok 2608 default-case valid switch (a) { case 1: // NO DEFAULT } ok 2609 default-case valid switch (a) { case 1: a = 4; // no default } ok 2610 default-case valid switch (a) { case 1: a = 4; /* no default */ } ok 2611 default-case valid switch (a) { case 1: a = 4; break; break; // no default } ok 2612 default-case valid switch (a) { // no default } ok 2613 default-case valid switch (a) { } ok 2614 default-case valid switch (a) { case 1: break; default: break; } ok 2615 default-case valid switch (a) { case 1: break; // skip default case } ok 2616 default-case valid switch (a) { case 1: break; /* TODO: throw error in default case */ } ok 2617 default-case valid switch (a) { case 1: break; // } ok 2618 default-case invalid switch (a) { case 1: break; } ok 2619 default-case invalid switch (a) { // no default case 1: break; } ok 2620 default-case invalid switch (a) { case 1: break; // no default // nope } ok 2621 default-case invalid switch (a) { case 1: break; // no default } ok 2622 default-case invalid switch (a) { case 1: break; // default omitted intentionally // TODO: add default case } ok 2623 default-case invalid switch (a) { case 1: break; } ok 2624 dot-location valid obj. prop ok 2625 dot-location valid obj. prop ok 2626 dot-location valid obj. prop ok 2627 dot-location valid (obj). prop ok 2628 dot-location valid obj ['prop'] ok 2629 dot-location valid obj['prop'] ok 2630 dot-location valid obj. prop ok 2631 dot-location valid obj .prop ok 2632 dot-location valid (obj) .prop ok 2633 dot-location invalid obj .property ok 2634 dot-location invalid obj. property ok 2635 dot-location invalid (obj). property ok 2636 dot-location invalid 5 .toExponential() ok 2637 dot-location invalid -5 .toExponential() ok 2638 dot-location invalid foo /* a */ . /* b */ /* c */ bar ok 2639 dot-location invalid foo /* a */ /* b */ . /* c */ bar ok 2640 dot-notation valid a.b; ok 2641 dot-notation valid a.b.c; ok 2642 dot-notation valid a['12']; ok 2643 dot-notation valid a[b]; ok 2644 dot-notation valid a[0]; ok 2645 dot-notation valid a.b.c; ok 2646 dot-notation valid a.arguments; ok 2647 dot-notation valid a.let; ok 2648 dot-notation valid a.yield; ok 2649 dot-notation valid a.eval; ok 2650 dot-notation valid a[0]; ok 2651 dot-notation valid a['while']; ok 2652 dot-notation valid a['true']; ok 2653 dot-notation valid a['null']; ok 2654 dot-notation valid a[true]; ok 2655 dot-notation valid a[null]; ok 2656 dot-notation valid a.true; ok 2657 dot-notation valid a.null; ok 2658 dot-notation valid a['snake_case']; ok 2659 dot-notation valid a['lots_of_snake_case']; ok 2660 dot-notation valid a[`time${range}`]; ok 2661 dot-notation valid a[`while`]; ok 2662 dot-notation valid a[`time range`]; ok 2663 dot-notation valid a.true; ok 2664 dot-notation valid a.null; ok 2665 dot-notation valid a[undefined]; ok 2666 dot-notation valid a[void 0]; ok 2667 dot-notation valid a[b()]; ok 2668 dot-notation invalid a.true; ok 2669 dot-notation invalid a['true']; ok 2670 dot-notation invalid a[`time`]; ok 2671 dot-notation invalid a[null]; ok 2672 dot-notation invalid a['b']; ok 2673 dot-notation invalid a.b['c']; ok 2674 dot-notation invalid a['_dangle']; ok 2675 dot-notation invalid a['SHOUT_CASE']; ok 2676 dot-notation invalid a ['SHOUT_CASE']; ok 2677 dot-notation invalid getResource() .then(function(){}) ["catch"](function(){}) .then(function(){}) ["catch"](function(){}); ok 2678 dot-notation invalid foo .while; ok 2679 dot-notation invalid foo[ /* comment */ 'bar' ] ok 2680 dot-notation invalid foo[ 'bar' /* comment */ ] ok 2681 dot-notation invalid foo[ 'bar' ]; ok 2682 dot-notation invalid foo. /* comment */ while ok 2683 dot-notation invalid foo[('bar')] ok 2684 dot-notation invalid foo[(null)] ok 2685 dot-notation invalid (foo)['bar'] ok 2686 dot-notation invalid 1['toString'] ok 2687 dot-notation invalid foo['bar']instanceof baz ok 2688 dot-notation invalid let.if() ok 2689 eol-last valid ok 2690 eol-last valid ok 2691 eol-last valid var a = 123; ok 2692 eol-last valid var a = 123; ok 2693 eol-last valid var a = 123; ok 2694 eol-last valid ok 2695 eol-last valid var a = 123; ok 2696 eol-last valid var a = 123; ok 2697 eol-last valid var a = 123; ok 2698 eol-last valid var a = 123; ok 2699 eol-last valid var a = 123; var b = 456; ok 2700 eol-last valid var a = 123; var b = 456; ok 2701 eol-last valid ok 2702 eol-last valid ok 2703 eol-last valid var a = 123; ok 2704 eol-last valid var a = 123; ok 2705 eol-last valid var a = 123; ok 2706 eol-last valid ok 2707 eol-last valid ok 2708 eol-last valid ok 2709 eol-last valid var a = 123; ok 2710 eol-last valid var a = 123; ok 2711 eol-last valid var a = 123; ok 2712 eol-last invalid var a = 123; ok 2713 eol-last invalid var a = 123; ok 2714 eol-last invalid var a = 123; ok 2715 eol-last invalid var a = 123; ok 2716 eol-last invalid var a = 123; ok 2717 eol-last invalid var a = 123; var b = 456; ok 2718 eol-last invalid var a = 123; var b = 456; ok 2719 eol-last invalid var a = 123; ok 2720 eol-last invalid var a = 123; ok 2721 eol-last invalid var a = 123; ok 2722 eol-last invalid var a = 123; ok 2723 eol-last invalid var a = 123; ok 2724 eqeqeq valid a === b ok 2725 eqeqeq valid a !== b ok 2726 eqeqeq valid a === b ok 2727 eqeqeq valid typeof a == 'number' ok 2728 eqeqeq valid 'string' != typeof a ok 2729 eqeqeq valid 'hello' != 'world' ok 2730 eqeqeq valid 2 == 3 ok 2731 eqeqeq valid true == true ok 2732 eqeqeq valid null == a ok 2733 eqeqeq valid a == null ok 2734 eqeqeq valid null == a ok 2735 eqeqeq valid a == null ok 2736 eqeqeq valid a == null ok 2737 eqeqeq valid a != null ok 2738 eqeqeq valid a !== null ok 2739 eqeqeq valid a === null ok 2740 eqeqeq valid a !== null ok 2741 eqeqeq valid null === null ok 2742 eqeqeq valid null !== null ok 2743 eqeqeq valid a == null ok 2744 eqeqeq valid a != null ok 2745 eqeqeq valid null == null ok 2746 eqeqeq valid null != null ok 2747 eqeqeq valid foo === /abc/u ok 2748 eqeqeq invalid a == b ok 2749 eqeqeq invalid a != b ok 2750 eqeqeq invalid typeof a == 'number' ok 2751 eqeqeq invalid typeof a == 'number' ok 2752 eqeqeq invalid 'string' != typeof a ok 2753 eqeqeq invalid true == true ok 2754 eqeqeq invalid 2 == 3 ok 2755 eqeqeq invalid 2 == 3 ok 2756 eqeqeq invalid 'hello' != 'world' ok 2757 eqeqeq invalid 'hello' != 'world' ok 2758 eqeqeq invalid a == null ok 2759 eqeqeq invalid a == null ok 2760 eqeqeq invalid null != a ok 2761 eqeqeq invalid true == 1 ok 2762 eqeqeq invalid 0 != '1' ok 2763 eqeqeq invalid 'wee' == /wee/ ok 2764 eqeqeq invalid typeof a == 'number' ok 2765 eqeqeq invalid 'string' != typeof a ok 2766 eqeqeq invalid 'hello' != 'world' ok 2767 eqeqeq invalid 2 == 3 ok 2768 eqeqeq invalid true == true ok 2769 eqeqeq invalid true == null ok 2770 eqeqeq invalid true != null ok 2771 eqeqeq invalid null == null ok 2772 eqeqeq invalid null != null ok 2773 eqeqeq invalid true === null ok 2774 eqeqeq invalid true !== null ok 2775 eqeqeq invalid null === null ok 2776 eqeqeq invalid null !== null ok 2777 eqeqeq invalid a == b ok 2778 eqeqeq invalid (a) == b ok 2779 eqeqeq invalid (a) != b ok 2780 eqeqeq invalid a == (b) ok 2781 eqeqeq invalid a != (b) ok 2782 eqeqeq invalid (a) == (b) ok 2783 eqeqeq invalid (a) != (b) ok 2784 eqeqeq invalid (a == b) == (c) ok 2785 eqeqeq invalid (a != b) != (c) ok 2786 for-direction valid for(var i = 0; i < 10; i++){} ok 2787 for-direction valid for(var i = 0; i <= 10; i++){} ok 2788 for-direction valid for(var i = 10; i > 0; i--){} ok 2789 for-direction valid for(var i = 10; i >= 0; i--){} ok 2790 for-direction valid for(var i = 0; i < 10; i+=1){} ok 2791 for-direction valid for(var i = 0; i <= 10; i+=1){} ok 2792 for-direction valid for(var i = 0; i < 10; i-=-1){} ok 2793 for-direction valid for(var i = 0; i <= 10; i-=-1){} ok 2794 for-direction valid for(var i = 10; i > 0; i-=1){} ok 2795 for-direction valid for(var i = 10; i >= 0; i-=1){} ok 2796 for-direction valid for(var i = 10; i > 0; i+=-1){} ok 2797 for-direction valid for(var i = 10; i >= 0; i+=-1){} ok 2798 for-direction valid for(var i = 10; i > 0;){} ok 2799 for-direction valid for(var i = 10; i >= 0;){} ok 2800 for-direction valid for(var i = 10; i < 0;){} ok 2801 for-direction valid for(var i = 10; i <= 0;){} ok 2802 for-direction valid for(var i = 10; i <= 0; j++){} ok 2803 for-direction valid for(var i = 10; i <= 0; j--){} ok 2804 for-direction valid for(var i = 10; i >= 0; j++){} ok 2805 for-direction valid for(var i = 10; i >= 0; j--){} ok 2806 for-direction valid for(var i = 10; i >= 0; j += 2){} ok 2807 for-direction valid for(var i = 10; i >= 0; j -= 2){} ok 2808 for-direction valid for(var i = 10; i >= 0; i |= 2){} ok 2809 for-direction valid for(var i = 10; i >= 0; i %= 2){} ok 2810 for-direction valid for(var i = 0; i < MAX; i += STEP_SIZE); ok 2811 for-direction valid for(var i = 0; i < MAX; i -= STEP_SIZE); ok 2812 for-direction valid for(var i = 10; i > 0; i += STEP_SIZE); ok 2813 for-direction invalid for(var i = 0; i < 10; i--){} ok 2814 for-direction invalid for(var i = 0; i <= 10; i--){} ok 2815 for-direction invalid for(var i = 10; i > 10; i++){} ok 2816 for-direction invalid for(var i = 10; i >= 0; i++){} ok 2817 for-direction invalid for(var i = 0; i < 10; i-=1){} ok 2818 for-direction invalid for(var i = 0; i <= 10; i-=1){} ok 2819 for-direction invalid for(var i = 10; i > 10; i+=1){} ok 2820 for-direction invalid for(var i = 10; i >= 0; i+=1){} ok 2821 for-direction invalid for(var i = 0; i < 10; i+=-1){} ok 2822 for-direction invalid for(var i = 0; i <= 10; i+=-1){} ok 2823 for-direction invalid for(var i = 10; i > 10; i-=-1){} ok 2824 for-direction invalid for(var i = 10; i >= 0; i-=-1){} ok 2825 func-call-spacing valid f(); ok 2826 func-call-spacing valid f(a, b); ok 2827 func-call-spacing valid f.b(); ok 2828 func-call-spacing valid f.b().c(); ok 2829 func-call-spacing valid f()() ok 2830 func-call-spacing valid (function() {}()) ok 2831 func-call-spacing valid var f = new Foo() ok 2832 func-call-spacing valid var f = new Foo ok 2833 func-call-spacing valid f( (0) ) ok 2834 func-call-spacing valid ( f )( 0 ) ok 2835 func-call-spacing valid ( (f) )( (0) ) ok 2836 func-call-spacing valid ( f()() )(0) ok 2837 func-call-spacing valid (function(){ if (foo) { bar(); } }()); ok 2838 func-call-spacing valid f(0, (1)) ok 2839 func-call-spacing valid describe/**/('foo', function () {}); ok 2840 func-call-spacing valid new (foo()) ok 2841 func-call-spacing valid f(); ok 2842 func-call-spacing valid f(a, b); ok 2843 func-call-spacing valid f.b(); ok 2844 func-call-spacing valid f.b().c(); ok 2845 func-call-spacing valid f()() ok 2846 func-call-spacing valid (function() {}()) ok 2847 func-call-spacing valid var f = new Foo() ok 2848 func-call-spacing valid var f = new Foo ok 2849 func-call-spacing valid f( (0) ) ok 2850 func-call-spacing valid ( f )( 0 ) ok 2851 func-call-spacing valid ( (f) )( (0) ) ok 2852 func-call-spacing valid ( f()() )(0) ok 2853 func-call-spacing valid (function(){ if (foo) { bar(); } }()); ok 2854 func-call-spacing valid f(0, (1)) ok 2855 func-call-spacing valid describe/**/('foo', function () {}); ok 2856 func-call-spacing valid new (foo()) ok 2857 func-call-spacing valid f (); ok 2858 func-call-spacing valid f (a, b); ok 2859 func-call-spacing valid f.b (); ok 2860 func-call-spacing valid f.b ().c (); ok 2861 func-call-spacing valid f () () ok 2862 func-call-spacing valid (function() {} ()) ok 2863 func-call-spacing valid var f = new Foo () ok 2864 func-call-spacing valid var f = new Foo ok 2865 func-call-spacing valid f ( (0) ) ok 2866 func-call-spacing valid f (0) (1) ok 2867 func-call-spacing valid (f) (0) ok 2868 func-call-spacing valid f (); t (); ok 2869 func-call-spacing valid f (); ok 2870 func-call-spacing valid f.b (); ok 2871 func-call-spacing valid f () ().b () () ok 2872 func-call-spacing valid var f = new Foo (); ok 2873 func-call-spacing valid f// comment () ok 2874 func-call-spacing valid f // comment () ok 2875 func-call-spacing valid f /* */ () ok 2876 func-call-spacing valid f (); ok 2877 func-call-spacing valid f
(); ok 2878 func-call-spacing valid f
(); ok 2879 func-call-spacing valid f (); ok 2880 func-call-spacing invalid f (); ok 2881 func-call-spacing invalid f (a, b); ok 2882 func-call-spacing invalid f.b (); ok 2883 func-call-spacing invalid f.b().c (); ok 2884 func-call-spacing invalid f() () ok 2885 func-call-spacing invalid (function() {} ()) ok 2886 func-call-spacing invalid var f = new Foo () ok 2887 func-call-spacing invalid f ( (0) ) ok 2888 func-call-spacing invalid f(0) (1) ok 2889 func-call-spacing invalid (f) (0) ok 2890 func-call-spacing invalid f (); t (); ok 2891 func-call-spacing invalid f (); ok 2892 func-call-spacing invalid f (); ok 2893 func-call-spacing invalid f
(); ok 2894 func-call-spacing invalid f
(); ok 2895 func-call-spacing invalid f (); ok 2896 func-call-spacing invalid f (); ok 2897 func-call-spacing invalid f (a, b); ok 2898 func-call-spacing invalid f.b (); ok 2899 func-call-spacing invalid f.b().c (); ok 2900 func-call-spacing invalid f() () ok 2901 func-call-spacing invalid (function() {} ()) ok 2902 func-call-spacing invalid var f = new Foo () ok 2903 func-call-spacing invalid f ( (0) ) ok 2904 func-call-spacing invalid f(0) (1) ok 2905 func-call-spacing invalid (f) (0) ok 2906 func-call-spacing invalid f (); t (); ok 2907 func-call-spacing invalid f (); ok 2908 func-call-spacing invalid this.cancelled.add(request) this.decrement(request) (0, request.reject)(new api.Cancel()) ok 2909 func-call-spacing invalid var a = foo (function(global) {}(this)); ok 2910 func-call-spacing invalid var a = foo (0, baz()) ok 2911 func-call-spacing invalid f (); ok 2912 func-call-spacing invalid f
(); ok 2913 func-call-spacing invalid f
(); ok 2914 func-call-spacing invalid f (); ok 2915 func-call-spacing invalid f(); ok 2916 func-call-spacing invalid f (); ok 2917 func-call-spacing invalid f(a, b); ok 2918 func-call-spacing invalid f (a, b); ok 2919 func-call-spacing invalid f.b(); ok 2920 func-call-spacing invalid f.b (); ok 2921 func-call-spacing invalid f.b().c (); ok 2922 func-call-spacing invalid f.b ().c (); ok 2923 func-call-spacing invalid f() () ok 2924 func-call-spacing invalid f () () ok 2925 func-call-spacing invalid f ()() ok 2926 func-call-spacing invalid (function() {}()) ok 2927 func-call-spacing invalid var f = new Foo() ok 2928 func-call-spacing invalid f( (0) ) ok 2929 func-call-spacing invalid f(0) (1) ok 2930 func-call-spacing invalid (f)(0) ok 2931 func-call-spacing invalid f(); t(); ok 2932 func-call-spacing invalid f (); ok 2933 func-call-spacing invalid f
(); ok 2934 func-call-spacing invalid f
(); ok 2935 func-call-spacing invalid f (); ok 2936 func-call-spacing invalid f(); ok 2937 func-call-spacing invalid f(a, b); ok 2938 func-call-spacing invalid f.b(); ok 2939 func-call-spacing invalid f.b().c (); ok 2940 func-call-spacing invalid f() () ok 2941 func-call-spacing invalid (function() {}()) ok 2942 func-call-spacing invalid var f = new Foo() ok 2943 func-call-spacing invalid f( (0) ) ok 2944 func-call-spacing invalid f(0) (1) ok 2945 func-call-spacing invalid (f)(0) ok 2946 func-call-spacing invalid f(); t(); ok 2947 func-name-matching valid var foo; ok 2948 func-name-matching valid var foo = function foo() {}; ok 2949 func-name-matching valid var foo = function foo() {}; ok 2950 func-name-matching valid var foo = function bar() {}; ok 2951 func-name-matching valid var foo = function() {} ok 2952 func-name-matching valid var foo = () => {} ok 2953 func-name-matching valid foo = function foo() {}; ok 2954 func-name-matching valid foo = function foo() {}; ok 2955 func-name-matching valid foo = function bar() {}; ok 2956 func-name-matching valid obj.foo = function foo() {}; ok 2957 func-name-matching valid obj.foo = function foo() {}; ok 2958 func-name-matching valid obj.foo = function bar() {}; ok 2959 func-name-matching valid obj.foo = function() {}; ok 2960 func-name-matching valid obj.foo = function() {}; ok 2961 func-name-matching valid obj.foo = function() {}; ok 2962 func-name-matching valid obj.bar.foo = function foo() {}; ok 2963 func-name-matching valid obj.bar.foo = function foo() {}; ok 2964 func-name-matching valid obj.bar.foo = function baz() {}; ok 2965 func-name-matching valid obj['foo'] = function foo() {}; ok 2966 func-name-matching valid obj['foo'] = function foo() {}; ok 2967 func-name-matching valid obj['foo'] = function bar() {}; ok 2968 func-name-matching valid obj['foo//bar'] = function foo() {}; ok 2969 func-name-matching valid obj['foo//bar'] = function foo() {}; ok 2970 func-name-matching valid obj['foo//bar'] = function foo() {}; ok 2971 func-name-matching valid obj[foo] = function bar() {}; ok 2972 func-name-matching valid obj[foo] = function bar() {}; ok 2973 func-name-matching valid obj[foo] = function bar() {}; ok 2974 func-name-matching valid var obj = {foo: function foo() {}}; ok 2975 func-name-matching valid var obj = {foo: function foo() {}}; ok 2976 func-name-matching valid var obj = {foo: function bar() {}}; ok 2977 func-name-matching valid var obj = {'foo': function foo() {}}; ok 2978 func-name-matching valid var obj = {'foo': function foo() {}}; ok 2979 func-name-matching valid var obj = {'foo': function bar() {}}; ok 2980 func-name-matching valid var obj = {'foo//bar': function foo() {}}; ok 2981 func-name-matching valid var obj = {'foo//bar': function foo() {}}; ok 2982 func-name-matching valid var obj = {'foo//bar': function foo() {}}; ok 2983 func-name-matching valid var obj = {foo: function() {}}; ok 2984 func-name-matching valid var obj = {foo: function() {}}; ok 2985 func-name-matching valid var obj = {foo: function() {}}; ok 2986 func-name-matching valid var obj = {[foo]: function bar() {}} ok 2987 func-name-matching valid var obj = {['x' + 2]: function bar(){}}; ok 2988 func-name-matching valid obj['x' + 2] = function bar(){}; ok 2989 func-name-matching valid var [ bar ] = [ function bar(){} ]; ok 2990 func-name-matching valid function a(foo = function bar() {}) {} ok 2991 func-name-matching valid module.exports = function foo(name) {}; ok 2992 func-name-matching valid module['exports'] = function foo(name) {}; ok 2993 func-name-matching valid module.exports = function foo(name) {}; ok 2994 func-name-matching valid module.exports = function foo(name) {}; ok 2995 func-name-matching valid module.exports = function foo(name) {}; ok 2996 func-name-matching valid module['exports'] = function foo(name) {}; ok 2997 func-name-matching valid module['exports'] = function foo(name) {}; ok 2998 func-name-matching valid module['exports'] = function foo(name) {}; ok 2999 func-name-matching valid ({['foo']: function foo() {}}) ok 3000 func-name-matching valid ({['foo']: function foo() {}}) ok 3001 func-name-matching valid ({['foo']: function bar() {}}) ok 3002 func-name-matching valid ({['❤']: function foo() {}}) ok 3003 func-name-matching valid ({[foo]: function bar() {}}) ok 3004 func-name-matching valid ({[null]: function foo() {}}) ok 3005 func-name-matching valid ({[1]: function foo() {}}) ok 3006 func-name-matching valid ({[true]: function foo() {}}) ok 3007 func-name-matching valid ({[`x`]: function foo() {}}) ok 3008 func-name-matching valid ({[/abc/]: function foo() {}}) ok 3009 func-name-matching valid ({[[1, 2, 3]]: function foo() {}}) ok 3010 func-name-matching valid ({[{x: 1}]: function foo() {}}) ok 3011 func-name-matching valid [] = function foo() {} ok 3012 func-name-matching valid ({} = function foo() {}) ok 3013 func-name-matching valid [a] = function foo() {} ok 3014 func-name-matching valid ({a} = function foo() {}) ok 3015 func-name-matching valid var [] = function foo() {} ok 3016 func-name-matching valid var {} = function foo() {} ok 3017 func-name-matching valid var [a] = function foo() {} ok 3018 func-name-matching valid var {a} = function foo() {} ok 3019 func-name-matching valid ({ value: function value() {} }) ok 3020 func-name-matching valid obj.foo = function foo() {}; ok 3021 func-name-matching valid obj.bar.foo = function foo() {}; ok 3022 func-name-matching valid var obj = {foo: function foo() {}}; ok 3023 func-name-matching valid var obj = {foo: function() {}}; ok 3024 func-name-matching valid var obj = { value: function value() {} } ok 3025 func-name-matching valid Object.defineProperty(foo, 'bar', { value: function bar() {} }) ok 3026 func-name-matching valid Object.defineProperties(foo, { bar: { value: function bar() {} } }) ok 3027 func-name-matching valid Object.create(proto, { bar: { value: function bar() {} } }) ok 3028 func-name-matching valid Object.defineProperty(foo, 'b' + 'ar', { value: function bar() {} }) ok 3029 func-name-matching valid Object.defineProperties(foo, { ['bar']: { value: function bar() {} } }) ok 3030 func-name-matching valid Object.create(proto, { ['bar']: { value: function bar() {} } }) ok 3031 func-name-matching valid Object.defineProperty(foo, 'bar', { value() {} }) ok 3032 func-name-matching valid Object.defineProperties(foo, { bar: { value() {} } }) ok 3033 func-name-matching valid Object.create(proto, { bar: { value() {} } }) ok 3034 func-name-matching valid Reflect.defineProperty(foo, 'bar', { value: function bar() {} }) ok 3035 func-name-matching valid Reflect.defineProperty(foo, 'b' + 'ar', { value: function baz() {} }) ok 3036 func-name-matching valid Reflect.defineProperty(foo, 'bar', { value() {} }) ok 3037 func-name-matching invalid let foo = function bar() {}; ok 3038 func-name-matching invalid let foo = function bar() {}; ok 3039 func-name-matching invalid foo = function bar() {}; ok 3040 func-name-matching invalid obj.foo = function bar() {}; ok 3041 func-name-matching invalid obj.bar.foo = function bar() {}; ok 3042 func-name-matching invalid obj['foo'] = function bar() {}; ok 3043 func-name-matching invalid let obj = {foo: function bar() {}}; ok 3044 func-name-matching invalid let obj = {'foo': function bar() {}}; ok 3045 func-name-matching invalid ({['foo']: function bar() {}}) ok 3046 func-name-matching invalid module.exports = function foo(name) {}; ok 3047 func-name-matching invalid module.exports = function foo(name) {}; ok 3048 func-name-matching invalid module.exports = function exports(name) {}; ok 3049 func-name-matching invalid module['exports'] = function foo(name) {}; ok 3050 func-name-matching invalid module['exports'] = function foo(name) {}; ok 3051 func-name-matching invalid module['exports'] = function exports(name) {}; ok 3052 func-name-matching invalid var foo = function foo(name) {}; ok 3053 func-name-matching invalid obj.foo = function foo(name) {}; ok 3054 func-name-matching invalid Object.defineProperty(foo, 'bar', { value: function baz() {} }) ok 3055 func-name-matching invalid Object.defineProperties(foo, { bar: { value: function baz() {} } }) ok 3056 func-name-matching invalid Object.create(proto, { bar: { value: function baz() {} } }) ok 3057 func-name-matching invalid var obj = { value: function foo(name) {} } ok 3058 func-name-matching invalid Object.defineProperty(foo, 'bar', { value: function bar() {} }) ok 3059 func-name-matching invalid Object.defineProperties(foo, { bar: { value: function bar() {} } }) ok 3060 func-name-matching invalid Object.create(proto, { bar: { value: function bar() {} } }) ok 3061 func-name-matching invalid Reflect.defineProperty(foo, 'bar', { value: function baz() {} }) ok 3062 func-name-matching invalid Reflect.defineProperty(foo, 'bar', { value: function bar() {} }) ok 3063 func-names valid Foo.prototype.bar = function bar(){}; ok 3064 func-names valid Foo.prototype.bar = () => {} ok 3065 func-names valid function foo(){} ok 3066 func-names valid function test(d, e, f) {} ok 3067 func-names valid new function bar(){} ok 3068 func-names valid exports = { get foo() { return 1; }, set bar(val) { return val; } }; ok 3069 func-names valid ({ foo() { return 1; } }); ok 3070 func-names valid class A { constructor(){} foo(){} get bar(){} set baz(value){} static qux(){}} ok 3071 func-names valid function foo() {} ok 3072 func-names valid var a = function foo() {}; ok 3073 func-names valid class A { constructor(){} foo(){} get bar(){} set baz(value){} static qux(){}} ok 3074 func-names valid ({ foo() {} }); ok 3075 func-names valid var foo = function(){}; ok 3076 func-names valid ({foo: function(){}}); ok 3077 func-names valid (foo = function(){}); ok 3078 func-names valid export default (function(){}); ok 3079 func-names valid ({foo = function(){}} = {}); ok 3080 func-names valid ({key: foo = function(){}} = {}); ok 3081 func-names valid [foo = function(){}] = []; ok 3082 func-names valid function fn(foo = function(){}) {} ok 3083 func-names valid function foo() {} ok 3084 func-names valid var a = function() {}; ok 3085 func-names valid var a = function foo() { foo(); }; ok 3086 func-names valid var foo = {bar: function() {}}; ok 3087 func-names valid $('foo').click(function() {}); ok 3088 func-names valid Foo.prototype.bar = function() {}; ok 3089 func-names valid class A { constructor(){} foo(){} get bar(){} set baz(value){} static qux(){}} ok 3090 func-names valid ({ foo() {} }); ok 3091 func-names valid var foo = bar(function *baz() {}); ok 3092 func-names valid var foo = bar(function *baz() {}); ok 3093 func-names valid var foo = bar(function *baz() {}); ok 3094 func-names valid var foo = function*() {}; ok 3095 func-names valid var foo = bar(function *baz() {}); ok 3096 func-names valid var foo = function*() {}; ok 3097 func-names valid var foo = bar(function *baz() {}); ok 3098 func-names valid var foo = bar(function *baz() {}); ok 3099 func-names valid var foo = function*() {}; ok 3100 func-names valid var foo = bar(function *baz() {}); ok 3101 func-names valid var foo = bar(function *baz() {}); ok 3102 func-names valid var foo = function*() {}; ok 3103 func-names valid var foo = bar(function *() {}); ok 3104 func-names valid var foo = function*() {}; ok 3105 func-names valid (function*() {}()) ok 3106 func-names valid var foo = bar(function *() {}); ok 3107 func-names valid var foo = function*() {}; ok 3108 func-names valid (function*() {}()) ok 3109 func-names valid var foo = bar(function *() {}); ok 3110 func-names valid var foo = function*() {}; ok 3111 func-names valid (function*() {}()) ok 3112 func-names valid var foo = bar(function *() {}); ok 3113 func-names valid var foo = function*() {}; ok 3114 func-names valid (function*() {}()) ok 3115 func-names invalid Foo.prototype.bar = function() {}; ok 3116 func-names invalid (function(){}()) ok 3117 func-names invalid f(function(){}) ok 3118 func-names invalid var a = new Date(function() {}); ok 3119 func-names invalid var test = function(d, e, f) {}; ok 3120 func-names invalid new function() {} ok 3121 func-names invalid Foo.prototype.bar = function() {}; ok 3122 func-names invalid (function(){}()) ok 3123 func-names invalid f(function(){}) ok 3124 func-names invalid var a = new Date(function() {}); ok 3125 func-names invalid new function() {} ok 3126 func-names invalid var {foo} = function(){}; ok 3127 func-names invalid var x = function foo() {}; ok 3128 func-names invalid Foo.prototype.bar = function foo() {}; ok 3129 func-names invalid ({foo: function foo() {}}) ok 3130 func-names invalid var foo = bar(function *() {}); ok 3131 func-names invalid var foo = function*() {}; ok 3132 func-names invalid (function*() {}()) ok 3133 func-names invalid var foo = bar(function *() {}); ok 3134 func-names invalid var foo = function*() {}; ok 3135 func-names invalid (function*() {}()) ok 3136 func-names invalid var foo = bar(function *() {}); ok 3137 func-names invalid (function*() {}()) ok 3138 func-names invalid var foo = bar(function *() {}); ok 3139 func-names invalid (function*() {}()) ok 3140 func-names invalid var foo = bar(function *() {}); ok 3141 func-names invalid var foo = function*() {}; ok 3142 func-names invalid (function*() {}()) ok 3143 func-names invalid var foo = bar(function *() {}); ok 3144 func-names invalid (function*() {}()) ok 3145 func-names invalid var foo = bar(function *() {}); ok 3146 func-names invalid var foo = function*() {}; ok 3147 func-names invalid (function*() {}()) ok 3148 func-names invalid var foo = bar(function *() {}); ok 3149 func-names invalid (function*() {}()) ok 3150 func-names invalid var foo = bar(function *baz() {}); ok 3151 func-names invalid var foo = bar(function *baz() {}); ok 3152 func-names invalid var foo = bar(function *baz() {}); ok 3153 func-names invalid var foo = bar(function *baz() {}); ok 3154 func-style valid function foo(){} function bar(){} ok 3155 func-style valid foo.bar = function(){}; ok 3156 func-style valid (function() { /* code */ }()); ok 3157 func-style valid var module = (function() { return {}; }()); ok 3158 func-style valid var object = { foo: function(){} }; ok 3159 func-style valid Array.prototype.foo = function(){}; ok 3160 func-style valid foo.bar = function(){}; ok 3161 func-style valid var foo = function(){}; var bar = function(){}; ok 3162 func-style valid var foo = () => {}; var bar = () => {} ok 3163 func-style valid var foo = function() { this; }.bind(this); ok 3164 func-style valid var foo = () => { this; }; ok 3165 func-style valid export default function () {}; ok 3166 func-style valid var foo = () => {}; ok 3167 func-style valid var foo = () => { function foo() { this; } }; ok 3168 func-style invalid var foo = function(){}; ok 3169 func-style invalid var foo = () => {}; ok 3170 func-style invalid var foo = () => { function foo() { this; } }; ok 3171 func-style invalid function foo(){} ok 3172 function-paren-newline valid function baz(foo, bar) {} ok 3173 function-paren-newline valid (function(foo, bar) {}); ok 3174 function-paren-newline valid (function baz(foo, bar) {}); ok 3175 function-paren-newline valid (foo, bar) => {}; ok 3176 function-paren-newline valid foo => {}; ok 3177 function-paren-newline valid baz(foo, bar); ok 3178 function-paren-newline valid function baz() {} ok 3179 function-paren-newline valid function baz( foo, bar ) {} ok 3180 function-paren-newline valid (function( foo, bar ) {}); ok 3181 function-paren-newline valid (function baz( foo, bar ) {}); ok 3182 function-paren-newline valid ( foo, bar ) => {}; ok 3183 function-paren-newline valid baz( foo, bar ); ok 3184 function-paren-newline valid baz(`foo bar`) ok 3185 function-paren-newline valid new Foo(bar, baz) ok 3186 function-paren-newline valid new Foo ok 3187 function-paren-newline valid new (Foo) ok 3188 function-paren-newline valid (foo) (bar) ok 3189 function-paren-newline valid foo.map(value => { return value; }) ok 3190 function-paren-newline valid function baz(foo, bar) {} ok 3191 function-paren-newline valid function baz( foo, bar ) {} ok 3192 function-paren-newline valid (function( foo, bar ) {}); ok 3193 function-paren-newline valid (function baz( foo, bar ) {}); ok 3194 function-paren-newline valid ( foo, bar ) => {}; ok 3195 function-paren-newline valid baz( foo, bar ); ok 3196 function-paren-newline valid function baz( ) {} ok 3197 function-paren-newline valid function baz(foo, bar) {} ok 3198 function-paren-newline valid (function(foo, bar) {}); ok 3199 function-paren-newline valid (function baz(foo, bar) {}); ok 3200 function-paren-newline valid (foo, bar) => {}; ok 3201 function-paren-newline valid baz(foo, bar); ok 3202 function-paren-newline valid function baz() {} ok 3203 function-paren-newline valid function baz(foo, bar) {} ok 3204 function-paren-newline valid function baz( foo, bar, qux ) {} ok 3205 function-paren-newline valid baz( foo, bar, qux ); ok 3206 function-paren-newline valid baz(foo, bar); ok 3207 function-paren-newline valid foo(bar, baz) ok 3208 function-paren-newline valid foo(bar, baz) ok 3209 function-paren-newline valid foo( bar, baz ) ok 3210 function-paren-newline valid foo( bar, baz ) ok 3211 function-paren-newline invalid function baz(foo, bar ) {} ok 3212 function-paren-newline invalid (function( foo, bar) {}) ok 3213 function-paren-newline invalid (function baz(foo, bar) {}) ok 3214 function-paren-newline invalid baz( foo, bar); ok 3215 function-paren-newline invalid (foo, bar ) => {}; ok 3216 function-paren-newline invalid function baz( foo, bar ) {} ok 3217 function-paren-newline invalid function baz( foo = 1 ) {} ok 3218 function-paren-newline invalid function baz( ) {} ok 3219 function-paren-newline invalid new Foo(bar, baz); ok 3220 function-paren-newline invalid function baz(/* not fixed due to comment */ foo) {} ok 3221 function-paren-newline invalid function baz(foo /* not fixed due to comment */) {} ok 3222 function-paren-newline invalid function baz(foo, bar ) {} ok 3223 function-paren-newline invalid (function( foo, bar) {}) ok 3224 function-paren-newline invalid (function baz(foo, bar) {}) ok 3225 function-paren-newline invalid function baz(foo, bar) {} ok 3226 function-paren-newline invalid (function(foo, bar) {}); ok 3227 function-paren-newline invalid (function baz(foo, bar) {}); ok 3228 function-paren-newline invalid (foo, bar) => {}; ok 3229 function-paren-newline invalid baz(foo, bar); ok 3230 function-paren-newline invalid function baz() {} ok 3231 function-paren-newline invalid function baz(foo, bar ) {} ok 3232 function-paren-newline invalid (function( foo, bar) {}) ok 3233 function-paren-newline invalid function baz( foo, bar ) {} ok 3234 function-paren-newline invalid (function( foo, bar ) {}); ok 3235 function-paren-newline invalid (function baz( foo, bar ) {}); ok 3236 function-paren-newline invalid ( foo, bar ) => {}; ok 3237 function-paren-newline invalid baz( foo, bar ); ok 3238 function-paren-newline invalid function baz( ) {} ok 3239 function-paren-newline invalid function baz(foo, bar, qux) {} ok 3240 function-paren-newline invalid function baz( foo, bar ) {} ok 3241 function-paren-newline invalid baz(foo, bar, qux); ok 3242 function-paren-newline invalid baz( foo, bar ); ok 3243 function-paren-newline invalid foo( bar, baz) ok 3244 function-paren-newline invalid foo(bar, baz ) ok 3245 generator-star-spacing valid function foo(){} ok 3246 generator-star-spacing valid function *foo(){} ok 3247 generator-star-spacing valid function *foo(arg1, arg2){} ok 3248 generator-star-spacing valid var foo = function *foo(){}; ok 3249 generator-star-spacing valid var foo = function *(){}; ok 3250 generator-star-spacing valid var foo = { *foo(){} }; ok 3251 generator-star-spacing valid var foo = {*foo(){} }; ok 3252 generator-star-spacing valid class Foo { *foo(){} } ok 3253 generator-star-spacing valid class Foo {*foo(){} } ok 3254 generator-star-spacing valid class Foo { static *foo(){} } ok 3255 generator-star-spacing valid var foo = {*[ foo ](){} }; ok 3256 generator-star-spacing valid class Foo {*[ foo ](){} } ok 3257 generator-star-spacing valid function foo(){} ok 3258 generator-star-spacing valid function *foo(){} ok 3259 generator-star-spacing valid function *foo(arg1, arg2){} ok 3260 generator-star-spacing valid var foo = function *foo(){}; ok 3261 generator-star-spacing valid var foo = function *(){}; ok 3262 generator-star-spacing valid var foo = { *foo(){} }; ok 3263 generator-star-spacing valid var foo = {*foo(){} }; ok 3264 generator-star-spacing valid class Foo { *foo(){} } ok 3265 generator-star-spacing valid class Foo {*foo(){} } ok 3266 generator-star-spacing valid class Foo { static *foo(){} } ok 3267 generator-star-spacing valid class Foo {*[ foo ](){} } ok 3268 generator-star-spacing valid var foo = {*[ foo ](){} }; ok 3269 generator-star-spacing valid function foo(){} ok 3270 generator-star-spacing valid function* foo(){} ok 3271 generator-star-spacing valid function* foo(arg1, arg2){} ok 3272 generator-star-spacing valid var foo = function* foo(){}; ok 3273 generator-star-spacing valid var foo = function* (){}; ok 3274 generator-star-spacing valid var foo = {* foo(){} }; ok 3275 generator-star-spacing valid var foo = { * foo(){} }; ok 3276 generator-star-spacing valid class Foo {* foo(){} } ok 3277 generator-star-spacing valid class Foo { * foo(){} } ok 3278 generator-star-spacing valid class Foo { static* foo(){} } ok 3279 generator-star-spacing valid var foo = {* [foo](){} }; ok 3280 generator-star-spacing valid class Foo {* [foo](){} } ok 3281 generator-star-spacing valid function foo(){} ok 3282 generator-star-spacing valid function * foo(){} ok 3283 generator-star-spacing valid function * foo(arg1, arg2){} ok 3284 generator-star-spacing valid var foo = function * foo(){}; ok 3285 generator-star-spacing valid var foo = function * (){}; ok 3286 generator-star-spacing valid var foo = { * foo(){} }; ok 3287 generator-star-spacing valid var foo = {* foo(){} }; ok 3288 generator-star-spacing valid class Foo { * foo(){} } ok 3289 generator-star-spacing valid class Foo {* foo(){} } ok 3290 generator-star-spacing valid class Foo { static * foo(){} } ok 3291 generator-star-spacing valid var foo = {* [foo](){} }; ok 3292 generator-star-spacing valid class Foo {* [foo](){} } ok 3293 generator-star-spacing valid function foo(){} ok 3294 generator-star-spacing valid function*foo(){} ok 3295 generator-star-spacing valid function*foo(arg1, arg2){} ok 3296 generator-star-spacing valid var foo = function*foo(){}; ok 3297 generator-star-spacing valid var foo = function*(){}; ok 3298 generator-star-spacing valid var foo = {*foo(){} }; ok 3299 generator-star-spacing valid var foo = { *foo(){} }; ok 3300 generator-star-spacing valid class Foo {*foo(){} } ok 3301 generator-star-spacing valid class Foo { *foo(){} } ok 3302 generator-star-spacing valid class Foo { static*foo(){} } ok 3303 generator-star-spacing valid var foo = {*[ foo ](){} }; ok 3304 generator-star-spacing valid class Foo {*[ foo ](){} } ok 3305 generator-star-spacing valid function foo(){} ok 3306 generator-star-spacing valid function *foo(){} ok 3307 generator-star-spacing valid function *foo(arg1, arg2){} ok 3308 generator-star-spacing valid var foo = function *foo(){}; ok 3309 generator-star-spacing valid var foo = function *(){}; ok 3310 generator-star-spacing valid var foo = { *foo(){} }; ok 3311 generator-star-spacing valid var foo = {*foo(){} }; ok 3312 generator-star-spacing valid class Foo { *foo(){} } ok 3313 generator-star-spacing valid class Foo {*foo(){} } ok 3314 generator-star-spacing valid class Foo { static *foo(){} } ok 3315 generator-star-spacing valid function foo(){} ok 3316 generator-star-spacing valid function* foo(){} ok 3317 generator-star-spacing valid function* foo(arg1, arg2){} ok 3318 generator-star-spacing valid var foo = function* foo(){}; ok 3319 generator-star-spacing valid var foo = function* (){}; ok 3320 generator-star-spacing valid var foo = {* foo(){} }; ok 3321 generator-star-spacing valid var foo = { * foo(){} }; ok 3322 generator-star-spacing valid class Foo {* foo(){} } ok 3323 generator-star-spacing valid class Foo { * foo(){} } ok 3324 generator-star-spacing valid class Foo { static* foo(){} } ok 3325 generator-star-spacing valid function foo(){} ok 3326 generator-star-spacing valid function * foo(){} ok 3327 generator-star-spacing valid function * foo(arg1, arg2){} ok 3328 generator-star-spacing valid var foo = function * foo(){}; ok 3329 generator-star-spacing valid var foo = function * (){}; ok 3330 generator-star-spacing valid var foo = { * foo(){} }; ok 3331 generator-star-spacing valid var foo = {* foo(){} }; ok 3332 generator-star-spacing valid class Foo { * foo(){} } ok 3333 generator-star-spacing valid class Foo {* foo(){} } ok 3334 generator-star-spacing valid class Foo { static * foo(){} } ok 3335 generator-star-spacing valid function foo(){} ok 3336 generator-star-spacing valid function*foo(){} ok 3337 generator-star-spacing valid function*foo(arg1, arg2){} ok 3338 generator-star-spacing valid var foo = function*foo(){}; ok 3339 generator-star-spacing valid var foo = function*(){}; ok 3340 generator-star-spacing valid var foo = {*foo(){} }; ok 3341 generator-star-spacing valid var foo = { *foo(){} }; ok 3342 generator-star-spacing valid class Foo {*foo(){} } ok 3343 generator-star-spacing valid class Foo { *foo(){} } ok 3344 generator-star-spacing valid class Foo { static*foo(){} } ok 3345 generator-star-spacing valid function * foo(){} ok 3346 generator-star-spacing valid var foo = function * (){}; ok 3347 generator-star-spacing valid class Foo { * foo(){} } ok 3348 generator-star-spacing valid var foo = { * foo(){} } ok 3349 generator-star-spacing valid var foo = { bar: function * () {} } ok 3350 generator-star-spacing valid class Foo { static * foo(){} } ok 3351 generator-star-spacing valid function *foo(){} ok 3352 generator-star-spacing valid function*foo(){} ok 3353 generator-star-spacing valid function * foo(){} ok 3354 generator-star-spacing valid function *foo(){} ok 3355 generator-star-spacing valid async function foo() { } ok 3356 generator-star-spacing valid (async function() { }) ok 3357 generator-star-spacing valid async () => { } ok 3358 generator-star-spacing valid ({async foo() { }}) ok 3359 generator-star-spacing valid class A {async foo() { }} ok 3360 generator-star-spacing valid (class {async foo() { }}) ok 3361 generator-star-spacing invalid function*foo(){} ok 3362 generator-star-spacing invalid function* foo(arg1, arg2){} ok 3363 generator-star-spacing invalid var foo = function*foo(){}; ok 3364 generator-star-spacing invalid var foo = function* (){}; ok 3365 generator-star-spacing invalid var foo = {* foo(){} }; ok 3366 generator-star-spacing invalid class Foo {* foo(){} } ok 3367 generator-star-spacing invalid class Foo { static* foo(){} } ok 3368 generator-star-spacing invalid function*foo(){} ok 3369 generator-star-spacing invalid function* foo(arg1, arg2){} ok 3370 generator-star-spacing invalid var foo = function*foo(){}; ok 3371 generator-star-spacing invalid var foo = function* (){}; ok 3372 generator-star-spacing invalid var foo = {* foo(){} }; ok 3373 generator-star-spacing invalid class Foo {* foo(){} } ok 3374 generator-star-spacing invalid var foo = {* [ foo ](){} }; ok 3375 generator-star-spacing invalid class Foo {* [ foo ](){} } ok 3376 generator-star-spacing invalid function*foo(){} ok 3377 generator-star-spacing invalid function *foo(arg1, arg2){} ok 3378 generator-star-spacing invalid var foo = function *foo(){}; ok 3379 generator-star-spacing invalid var foo = function *(){}; ok 3380 generator-star-spacing invalid var foo = { *foo(){} }; ok 3381 generator-star-spacing invalid class Foo { *foo(){} } ok 3382 generator-star-spacing invalid class Foo { static *foo(){} } ok 3383 generator-star-spacing invalid var foo = { *[foo](){} }; ok 3384 generator-star-spacing invalid class Foo { *[foo](){} } ok 3385 generator-star-spacing invalid function*foo(){} ok 3386 generator-star-spacing invalid function*foo(arg1, arg2){} ok 3387 generator-star-spacing invalid var foo = function*foo(){}; ok 3388 generator-star-spacing invalid var foo = function*(){}; ok 3389 generator-star-spacing invalid var foo = {*foo(){} }; ok 3390 generator-star-spacing invalid class Foo {*foo(){} } ok 3391 generator-star-spacing invalid class Foo { static*foo(){} } ok 3392 generator-star-spacing invalid var foo = {*[foo](){} }; ok 3393 generator-star-spacing invalid class Foo {*[foo](){} } ok 3394 generator-star-spacing invalid function * foo(){} ok 3395 generator-star-spacing invalid function * foo(arg1, arg2){} ok 3396 generator-star-spacing invalid var foo = function * foo(){}; ok 3397 generator-star-spacing invalid var foo = function * (){}; ok 3398 generator-star-spacing invalid var foo = { * foo(){} }; ok 3399 generator-star-spacing invalid class Foo { * foo(){} } ok 3400 generator-star-spacing invalid class Foo { static * foo(){} } ok 3401 generator-star-spacing invalid var foo = { * [ foo ](){} }; ok 3402 generator-star-spacing invalid class Foo { * [ foo ](){} } ok 3403 generator-star-spacing invalid function*foo(){} ok 3404 generator-star-spacing invalid function* foo(arg1, arg2){} ok 3405 generator-star-spacing invalid var foo = function*foo(){}; ok 3406 generator-star-spacing invalid var foo = function* (){}; ok 3407 generator-star-spacing invalid var foo = {* foo(){} }; ok 3408 generator-star-spacing invalid class Foo {* foo(){} } ok 3409 generator-star-spacing invalid function*foo(){} ok 3410 generator-star-spacing invalid function *foo(arg1, arg2){} ok 3411 generator-star-spacing invalid var foo = function *foo(){}; ok 3412 generator-star-spacing invalid var foo = function *(){}; ok 3413 generator-star-spacing invalid var foo = { *foo(){} }; ok 3414 generator-star-spacing invalid class Foo { *foo(){} } ok 3415 generator-star-spacing invalid class Foo { static *foo(){} } ok 3416 generator-star-spacing invalid function*foo(){} ok 3417 generator-star-spacing invalid function*foo(arg1, arg2){} ok 3418 generator-star-spacing invalid var foo = function*foo(){}; ok 3419 generator-star-spacing invalid var foo = function*(){}; ok 3420 generator-star-spacing invalid var foo = {*foo(){} }; ok 3421 generator-star-spacing invalid class Foo {*foo(){} } ok 3422 generator-star-spacing invalid class Foo { static*foo(){} } ok 3423 generator-star-spacing invalid function * foo(){} ok 3424 generator-star-spacing invalid function * foo(arg1, arg2){} ok 3425 generator-star-spacing invalid var foo = function * foo(){}; ok 3426 generator-star-spacing invalid var foo = function * (){}; ok 3427 generator-star-spacing invalid var foo = { * foo(){} }; ok 3428 generator-star-spacing invalid class Foo { * foo(){} } ok 3429 generator-star-spacing invalid class Foo { static * foo(){} } ok 3430 generator-star-spacing invalid function*foo(){} ok 3431 generator-star-spacing invalid var foo = function*(){}; ok 3432 generator-star-spacing invalid class Foo { *foo(){} } ok 3433 generator-star-spacing invalid var foo = { *foo(){} } ok 3434 generator-star-spacing invalid var foo = { bar: function*() {} } ok 3435 generator-star-spacing invalid class Foo { static*foo(){} } ok 3436 generator-star-spacing invalid function*foo(){} ok 3437 generator-star-spacing invalid function * foo(){} ok 3438 generator-star-spacing invalid function*foo(){} ok 3439 generator-star-spacing invalid function*foo(){} ok 3440 generator-star-spacing invalid ({ async * foo(){} }) ok 3441 generator-star-spacing invalid ({ async*foo(){} }) ok 3442 generator-star-spacing invalid class Foo { async * foo(){} } ok 3443 generator-star-spacing invalid class Foo { async*foo(){} } ok 3444 generator-star-spacing invalid class Foo { static async * foo(){} } ok 3445 generator-star-spacing invalid class Foo { static async*foo(){} } ok 3446 getter-return valid var foo = { get bar(){return true;} }; ok 3447 getter-return valid var foo = { get bar() {return;} }; ok 3448 getter-return valid var foo = { get bar(){return true;} }; ok 3449 getter-return valid var foo = { get bar(){if(bar) {return;} return true;} }; ok 3450 getter-return valid class foo { get bar(){return true;} } ok 3451 getter-return valid class foo { get bar(){if(baz){return true;} else {return false;} } } ok 3452 getter-return valid class foo { get(){return true;} } ok 3453 getter-return valid class foo { get bar(){return true;} } ok 3454 getter-return valid class foo { get bar(){return;} } ok 3455 getter-return valid Object.defineProperty(foo, "bar", { get: function () {return true;}}); ok 3456 getter-return valid Object.defineProperty(foo, "bar", { get: function () { ~function (){ return true; }();return true;}}); ok 3457 getter-return valid Object.defineProperties(foo, { bar: { get: function () {return true;}} }); ok 3458 getter-return valid Object.defineProperties(foo, { bar: { get: function () { ~function (){ return true; }(); return true;}} }); ok 3459 getter-return valid Object.defineProperty(foo, "bar", { get: function () {return true;}}); ok 3460 getter-return valid Object.defineProperty(foo, "bar", { get: function (){return;}}); ok 3461 getter-return valid Object.defineProperties(foo, { bar: { get: function () {return true;}} }); ok 3462 getter-return valid Object.defineProperties(foo, { bar: { get: function () {return;}} }); ok 3463 getter-return valid var get = function(){}; ok 3464 getter-return valid var get = function(){ return true; }; ok 3465 getter-return valid var foo = { bar(){} }; ok 3466 getter-return valid var foo = { bar(){ return true; } }; ok 3467 getter-return valid var foo = { bar: function(){} }; ok 3468 getter-return valid var foo = { bar: function(){return;} }; ok 3469 getter-return valid var foo = { bar: function(){return true;} }; ok 3470 getter-return valid var foo = { get: function () {} } ok 3471 getter-return valid var foo = { get: () => {}}; ok 3472 getter-return invalid var foo = { get bar() {} }; ok 3473 getter-return invalid var foo = { get bar(){if(baz) {return true;}} }; ok 3474 getter-return invalid var foo = { get bar() { ~function () {return true;}} }; ok 3475 getter-return invalid var foo = { get bar() {} }; ok 3476 getter-return invalid var foo = { get bar() {if (baz) {return;}} }; ok 3477 getter-return invalid class foo { get bar(){} } ok 3478 getter-return invalid class foo { get bar(){ if (baz) { return true; }}} ok 3479 getter-return invalid class foo { get bar(){ ~function () { return true; }()}} ok 3480 getter-return invalid class foo { get bar(){} } ok 3481 getter-return invalid class foo { get bar(){if (baz) {return true;} } } ok 3482 getter-return invalid Object.defineProperty(foo, "bar", { get: function (){}}); ok 3483 getter-return invalid Object.defineProperty(foo, "bar", { get: () => {}}); ok 3484 getter-return invalid Object.defineProperty(foo, "bar", { get: function (){if(bar) {return true;}}}); ok 3485 getter-return invalid Object.defineProperty(foo, "bar", { get: function (){ ~function () { return true; }()}}); ok 3486 getter-return invalid Object.defineProperties(foo, { bar: { get: function () {}} }); ok 3487 getter-return invalid Object.defineProperties(foo, { bar: { get: function (){if(bar) {return true;}}}}); ok 3488 getter-return invalid Object.defineProperties(foo, { bar: { get: function () {~function () { return true; }()}} }); ok 3489 getter-return invalid Object.defineProperty(foo, "bar", { get: function (){}}); ok 3490 global-require valid var x = require('y'); ok 3491 global-require valid if (x) { x.require('y'); } ok 3492 global-require valid var x; x = require('y'); ok 3493 global-require valid var x = 1, y = require('y'); ok 3494 global-require valid var x = require('y'), y = require('y'), z = require('z'); ok 3495 global-require valid var x = require('y').foo; ok 3496 global-require valid require('y').foo(); ok 3497 global-require valid require('y'); ok 3498 global-require valid function x(){} x(); if (x > y) { doSomething() } var x = require('y').foo; ok 3499 global-require valid var logger = require(DEBUG ? 'dev-logger' : 'logger'); ok 3500 global-require valid var logger = DEBUG ? require('dev-logger') : require('logger'); ok 3501 global-require valid function localScopedRequire(require) { require('y'); } ok 3502 global-require valid var someFunc = require('./someFunc'); someFunc(function(require) { return('bananas'); }); ok 3503 global-require invalid if (process.env.NODE_ENV === 'DEVELOPMENT') { require('debug'); } ok 3504 global-require invalid var x; if (y) { x = require('debug'); } ok 3505 global-require invalid var x; if (y) { x = require('debug').baz; } ok 3506 global-require invalid function x() { require('y') } ok 3507 global-require invalid try { require('x'); } catch (e) { console.log(e); } ok 3508 global-require invalid var getModule = x => require(x); ok 3509 global-require invalid var x = (x => require(x))('weird') ok 3510 global-require invalid switch(x) { case '1': require('1'); break; } ok 3511 guard-for-in valid for (var x in o); ok 3512 guard-for-in valid for (var x in o) {} ok 3513 guard-for-in valid for (var x in o) if (x) f(); ok 3514 guard-for-in valid for (var x in o) { if (x) { f(); } } ok 3515 guard-for-in valid for (var x in o) { if (x) continue; f(); } ok 3516 guard-for-in valid for (var x in o) { if (x) { continue; } f(); } ok 3517 guard-for-in invalid for (var x in o) { if (x) { f(); continue; } g(); } ok 3518 guard-for-in invalid for (var x in o) { if (x) { continue; f(); } g(); } ok 3519 guard-for-in invalid for (var x in o) { if (x) { f(); } g(); } ok 3520 guard-for-in invalid for (var x in o) { if (x) f(); g(); } ok 3521 guard-for-in invalid for (var x in o) { foo() } ok 3522 guard-for-in invalid for (var x in o) foo(); ok 3523 handle-callback-err valid function test(error) {} ok 3524 handle-callback-err valid function test(err) {console.log(err);} ok 3525 handle-callback-err valid function test(err, data) {if(err){ data = 'ERROR';}} ok 3526 handle-callback-err valid var test = function(err) {console.log(err);}; ok 3527 handle-callback-err valid var test = function(err) {if(err){/* do nothing */}}; ok 3528 handle-callback-err valid var test = function(err) {if(!err){doSomethingHere();}else{};} ok 3529 handle-callback-err valid var test = function(err, data) {if(!err) { good(); } else { bad(); }} ok 3530 handle-callback-err valid try { } catch(err) {} ok 3531 handle-callback-err valid getData(function(err, data) {if (err) {}getMoreDataWith(data, function(err, moreData) {if (err) {}getEvenMoreDataWith(moreData, function(err, allOfTheThings) {if (err) {}});});}); ok 3532 handle-callback-err valid var test = function(err) {if(! err){doSomethingHere();}}; ok 3533 handle-callback-err valid function test(err, data) {if (data) {doSomething(function(err) {console.error(err);});} else if (err) {console.log(err);}} ok 3534 handle-callback-err valid function handler(err, data) {if (data) {doSomethingWith(data);} else if (err) {console.log(err);}} ok 3535 handle-callback-err valid function handler(err) {logThisAction(function(err) {if (err) {}}); console.log(err);} ok 3536 handle-callback-err valid function userHandler(err) {process.nextTick(function() {if (err) {}})} ok 3537 handle-callback-err valid function help() { function userHandler(err) {function tester() { err; process.nextTick(function() { err; }); } } } ok 3538 handle-callback-err valid function help(done) { var err = new Error('error'); done(); } ok 3539 handle-callback-err valid var test = err => err; ok 3540 handle-callback-err valid var test = err => !err; ok 3541 handle-callback-err valid var test = err => err.message; ok 3542 handle-callback-err valid var test = function(error) {if(error){/* do nothing */}}; ok 3543 handle-callback-err valid var test = (error) => {if(error){/* do nothing */}}; ok 3544 handle-callback-err valid var test = function(error) {if(! error){doSomethingHere();}}; ok 3545 handle-callback-err valid var test = function(err) { console.log(err); }; ok 3546 handle-callback-err valid var test = function(error) { console.log(error); }; ok 3547 handle-callback-err valid var test = function(anyError) { console.log(anyError); }; ok 3548 handle-callback-err valid var test = function(any_error) { console.log(anyError); }; ok 3549 handle-callback-err valid var test = function(any_error) { console.log(any_error); }; ok 3550 handle-callback-err invalid function test(err) {} ok 3551 handle-callback-err invalid function test(err, data) {} ok 3552 handle-callback-err invalid function test(err) {errorLookingWord();} ok 3553 handle-callback-err invalid function test(err) {try{} catch(err) {}} ok 3554 handle-callback-err invalid function test(err, callback) { foo(function(err, callback) {}); } ok 3555 handle-callback-err invalid var test = (err) => {}; ok 3556 handle-callback-err invalid var test = function(err) {}; ok 3557 handle-callback-err invalid var test = function test(err, data) {}; ok 3558 handle-callback-err invalid var test = function test(err) {/* if(err){} */}; ok 3559 handle-callback-err invalid function test(err) {doSomethingHere(function(err){console.log(err);})} ok 3560 handle-callback-err invalid function test(error) {} ok 3561 handle-callback-err invalid getData(function(err, data) {getMoreDataWith(data, function(err, moreData) {if (err) {}getEvenMoreDataWith(moreData, function(err, allOfTheThings) {if (err) {}});}); }); ok 3562 handle-callback-err invalid getData(function(err, data) {getMoreDataWith(data, function(err, moreData) {getEvenMoreDataWith(moreData, function(err, allOfTheThings) {if (err) {}});}); }); ok 3563 handle-callback-err invalid function userHandler(err) {logThisAction(function(err) {if (err) { console.log(err); } })} ok 3564 handle-callback-err invalid function help() { function userHandler(err) {function tester(err) { err; process.nextTick(function() { err; }); } } } ok 3565 handle-callback-err invalid var test = function(anyError) { console.log(otherError); }; ok 3566 handle-callback-err invalid var test = function(anyError) { }; ok 3567 handle-callback-err invalid var test = function(err) { console.log(error); }; ok 3568 id-blacklist valid foo = "bar" ok 3569 id-blacklist valid bar = "bar" ok 3570 id-blacklist valid foo = "bar" ok 3571 id-blacklist valid function foo(){} ok 3572 id-blacklist valid foo() ok 3573 id-blacklist valid foo.bar() ok 3574 id-blacklist valid var foo = bar.baz; ok 3575 id-blacklist valid var foo = bar.baz.bing; ok 3576 id-blacklist valid foo.bar.baz = bing.bong.bash; ok 3577 id-blacklist valid if (foo.bar) {} ok 3578 id-blacklist valid var obj = { key: foo.bar }; ok 3579 id-blacklist valid var arr = [foo.bar]; ok 3580 id-blacklist valid [foo.bar] ok 3581 id-blacklist valid [foo.bar.nesting] ok 3582 id-blacklist valid if (foo.bar === bar.baz) { [foo.bar] } ok 3583 id-blacklist valid var myArray = new Array(); var myDate = new Date(); ok 3584 id-blacklist valid foo() ok 3585 id-blacklist valid foo.bar() ok 3586 id-blacklist valid foo.bar ok 3587 id-blacklist invalid foo = "bar" ok 3588 id-blacklist invalid bar = "bar" ok 3589 id-blacklist invalid foo = "bar" ok 3590 id-blacklist invalid function foo(){} ok 3591 id-blacklist invalid foo.bar() ok 3592 id-blacklist invalid var foo = bar.baz; ok 3593 id-blacklist invalid var foo = bar.baz; ok 3594 id-blacklist invalid if (foo.bar) {} ok 3595 id-blacklist invalid var obj = { key: foo.bar }; ok 3596 id-blacklist invalid var obj = { key: foo.bar }; ok 3597 id-blacklist invalid var obj = { key: foo.bar }; ok 3598 id-blacklist invalid var arr = [foo.bar]; ok 3599 id-blacklist invalid var arr = [foo.bar]; ok 3600 id-blacklist invalid [foo.bar] ok 3601 id-blacklist invalid if (foo.bar === bar.baz) { [bing.baz] } ok 3602 id-blacklist invalid if (foo.bar === bar.baz) { [foo.bar] } ok 3603 id-blacklist invalid var myArray = new Array(); var myDate = new Date(); ok 3604 id-blacklist invalid var myArray = new Array(); var myDate = new Date(); ok 3605 id-blacklist invalid foo.bar = 1 ok 3606 id-blacklist invalid foo.bar.baz = 1 ok 3607 implicit-arrow-linebreak valid (foo) => { bar } ok 3608 implicit-arrow-linebreak valid () => bar; ok 3609 implicit-arrow-linebreak valid () => (bar); ok 3610 implicit-arrow-linebreak valid () => bar => baz; ok 3611 implicit-arrow-linebreak valid () => ((((bar)))); ok 3612 implicit-arrow-linebreak valid (foo) => ( bar ) ok 3613 implicit-arrow-linebreak valid (foo) => bar(); ok 3614 implicit-arrow-linebreak valid //comment foo => bar; ok 3615 implicit-arrow-linebreak valid foo => ( // comment bar => ( // another comment baz ) ) ok 3616 implicit-arrow-linebreak valid foo => ( // comment bar => baz ) ok 3617 implicit-arrow-linebreak valid /* text */ () => bar; ok 3618 implicit-arrow-linebreak valid /* foo */ const bar = () => baz; ok 3619 implicit-arrow-linebreak valid (foo) => ( //comment bar ) ok 3620 implicit-arrow-linebreak valid [ // comment foo => 'bar' ] ok 3621 implicit-arrow-linebreak valid /* One two three four Five six seven nine. */ (foo) => bar ok 3622 implicit-arrow-linebreak valid const foo = { id: 'bar', // comment prop: (foo1) => 'returning this string', } ok 3623 implicit-arrow-linebreak valid // comment "foo".split('').map((char) => char ) ok 3624 implicit-arrow-linebreak valid async foo => () => bar; ok 3625 implicit-arrow-linebreak valid // comment async foo => 'string' ok 3626 implicit-arrow-linebreak valid (foo) => ( bar ) ok 3627 implicit-arrow-linebreak valid () => ((((bar)))); ok 3628 implicit-arrow-linebreak valid () => bar(); ok 3629 implicit-arrow-linebreak valid () => (bar); ok 3630 implicit-arrow-linebreak valid () => bar => baz; ok 3631 implicit-arrow-linebreak invalid (foo) => bar(); ok 3632 implicit-arrow-linebreak invalid () => (bar); ok 3633 implicit-arrow-linebreak invalid () => bar => baz; ok 3634 implicit-arrow-linebreak invalid () => ((((bar)))); ok 3635 implicit-arrow-linebreak invalid (foo) => ( bar ) ok 3636 implicit-arrow-linebreak invalid (foo) => // test comment bar ok 3637 implicit-arrow-linebreak invalid const foo = () => // comment [] ok 3638 implicit-arrow-linebreak invalid (foo) => ( //comment bar ) ok 3639 implicit-arrow-linebreak invalid (foo) => ( bar //comment ) ok 3640 implicit-arrow-linebreak invalid (foo) => // comment // another comment bar ok 3641 implicit-arrow-linebreak invalid (foo) => // comment ( // another comment bar ) ok 3642 implicit-arrow-linebreak invalid () => // comment bar ok 3643 implicit-arrow-linebreak invalid (foo) => //comment bar ok 3644 implicit-arrow-linebreak invalid (foo) => /* test comment */ bar ok 3645 implicit-arrow-linebreak invalid (foo) => // hi bar => // there baz; ok 3646 implicit-arrow-linebreak invalid (foo) => // hi bar => ( // there baz ) ok 3647 implicit-arrow-linebreak invalid const foo = { id: 'bar', prop: (foo1) => // comment 'returning this string', } ok 3648 implicit-arrow-linebreak invalid [ foo => // comment 'bar' ] ok 3649 implicit-arrow-linebreak invalid "foo".split('').map((char) => // comment char ) ok 3650 implicit-arrow-linebreak invalid new Promise((resolve, reject) => // comment resolve() ) ok 3651 implicit-arrow-linebreak invalid () => /* succinct explanation of code */ bar ok 3652 implicit-arrow-linebreak invalid stepOne => /* here is what is happening */ stepTwo => // then this happens stepThree ok 3653 implicit-arrow-linebreak invalid () => /* multi line */ bar => /* many lines */ baz ok 3654 implicit-arrow-linebreak invalid foo('', boo => // comment bar ) ok 3655 implicit-arrow-linebreak invalid async foo => // comment 'string' ok 3656 implicit-arrow-linebreak invalid async foo => // comment // another bar; ok 3657 implicit-arrow-linebreak invalid async (foo) => // comment 'string' ok 3658 implicit-arrow-linebreak invalid const foo = 1, bar = 2, baz = () => // comment qux ok 3659 implicit-arrow-linebreak invalid const foo = () => //comment qux, bar = 2, baz = 3 ok 3660 implicit-arrow-linebreak invalid const foo = () => //two 1, boo = () => //comment 2, bop = "what" ok 3661 implicit-arrow-linebreak invalid start() .then(() => /* If I put a comment here, eslint --fix breaks badly */ process && typeof process.send === 'function' && process.send('ready') ) .catch(err => { /* catch seems to be needed here */ console.log('Error: ', err) }) ok 3662 implicit-arrow-linebreak invalid hello(response => // comment response, param => param) ok 3663 implicit-arrow-linebreak invalid start( arr => // cometh bod => { // soon yyyy } ) ok 3664 implicit-arrow-linebreak invalid (foo) => bar(); ok 3665 implicit-arrow-linebreak invalid (foo) => bar => baz; ok 3666 implicit-arrow-linebreak invalid (foo) => (bar); ok 3667 implicit-arrow-linebreak invalid (foo) => (((bar))); ok 3668 implicit-arrow-linebreak invalid (foo) => ( bar ) ok 3669 indent-legacy valid bridge.callHandler( 'getAppVersion', 'test23', function(responseData) { window.ah.mobileAppVersion = responseData; } ); ok 3670 indent-legacy valid var a = [ , /*{ }, */{ name: 'foo', } ]; ok 3671 indent-legacy valid bridge.callHandler( 'getAppVersion', 'test23', function(responseData) { window.ah.mobileAppVersion = responseData; }); ok 3672 indent-legacy valid bridge.callHandler( 'getAppVersion', null, function responseCallback(responseData) { window.ah.mobileAppVersion = responseData; } ); ok 3673 indent-legacy valid bridge.callHandler( 'getAppVersion', null, function responseCallback(responseData) { window.ah.mobileAppVersion = responseData; }); ok 3674 indent-legacy valid function doStuff(keys) { _.forEach( keys, key => { doSomething(key); } ); } ok 3675 indent-legacy valid example( function () { console.log('example'); } ); ok 3676 indent-legacy valid let foo = somethingList .filter(x => { return x; }) .map(x => { return 100 * x; }); ok 3677 indent-legacy valid var x = 0 && { a: 1, b: 2 }; ok 3678 indent-legacy valid var x = 0 && { a: 1, b: 2 }; ok 3679 indent-legacy valid var x = 0 && { a: 1, b: 2 }|| { c: 3, d: 4 }; ok 3680 indent-legacy valid var x = [ 'a', 'b', 'c' ]; ok 3681 indent-legacy valid var x = ['a', 'b', 'c', ]; ok 3682 indent-legacy valid var x = 0 && 1; ok 3683 indent-legacy valid var x = 0 && { a: 1, b: 2 }; ok 3684 indent-legacy valid var x = 0 && ( 1 ); ok 3685 indent-legacy valid require('http').request({hostname: 'localhost', port: 80}, function(res) { res.end(); }); ok 3686 indent-legacy valid function test() { return client.signUp(email, PASSWORD, { preVerified: true }) .then(function (result) { // hi }) .then(function () { return FunctionalHelpers.clearBrowserState(self, { contentServer: true, contentServer1: true }); }); } ok 3687 indent-legacy valid it('should... some lengthy test description that is forced to be' + 'wrapped into two lines since the line length limit is set', () => { expect(true).toBe(true); }); ok 3688 indent-legacy valid function test() { return client.signUp(email, PASSWORD, { preVerified: true }) .then(function (result) { var x = 1; var y = 1; }, function(err){ var o = 1 - 2; var y = 1 - 2; return true; }) } ok 3689 indent-legacy valid function test() { return client.signUp(email, PASSWORD, { preVerified: true }) .then(function (result) { var x = 1; var y = 1; }, function(err){ var o = 1 - 2; var y = 1 - 2; return true; }); } ok 3690 indent-legacy valid // hi ok 3691 indent-legacy valid var Command = function() { var fileList = [], files = [] files.concat(fileList) }; ok 3692 indent-legacy valid ok 3693 indent-legacy valid if(data) { console.log('hi'); b = true;}; ok 3694 indent-legacy valid foo = () => { console.log('hi'); return true;}; ok 3695 indent-legacy valid function test(data) { console.log('hi'); return true;}; ok 3696 indent-legacy valid var test = function(data) { console.log('hi'); }; ok 3697 indent-legacy valid arr.forEach(function(data) { otherdata.forEach(function(zero) { console.log('hi'); }) }); ok 3698 indent-legacy valid a = [ ,3 ] ok 3699 indent-legacy valid [ ['gzip', 'gunzip'], ['gzip', 'unzip'], ['deflate', 'inflate'], ['deflateRaw', 'inflateRaw'], ].forEach(function(method) { console.log(method); }); ok 3700 indent-legacy valid test(123, { bye: { hi: [1, { b: 2 } ] } }); ok 3701 indent-legacy valid var xyz = 2, lmn = [ { a: 1 } ]; ok 3702 indent-legacy valid lmn = [{ a: 1 }, { b: 2 },{ x: 2 }]; ok 3703 indent-legacy valid abc({ test: [ [ c, xyz, 2 ].join(',') ] }); ok 3704 indent-legacy valid abc = { test: [ [ c, xyz, 2 ] ] }; ok 3705 indent-legacy valid abc( { a: 1, b: 2 } ); ok 3706 indent-legacy valid abc({ a: 1, b: 2 }); ok 3707 indent-legacy valid var abc = [ c, xyz, { a: 1, b: 2 } ]; ok 3708 indent-legacy valid var abc = [ c, xyz, { a: 1, b: 2 } ]; ok 3709 indent-legacy valid var abc = 5, c = 2, xyz = { a: 1, b: 2 }; ok 3710 indent-legacy valid var abc = { a: 1, b: 2 }; ok 3711 indent-legacy valid var a = new abc({ a: 1, b: 2 }), b = 2; ok 3712 indent-legacy valid var a = 2, c = { a: 1, b: 2 }, b = 2; ok 3713 indent-legacy valid var x = 2, y = { a: 1, b: 2 }, b = 2; ok 3714 indent-legacy valid var e = { a: 1, b: 2 }, b = 2; ok 3715 indent-legacy valid var a = { a: 1, b: 2 }; ok 3716 indent-legacy valid function test() { if (true || false){ console.log(val); } } ok 3717 indent-legacy valid for (var val in obj) if (true) console.log(val); ok 3718 indent-legacy valid if(true) if (true) if (true) console.log(val); ok 3719 indent-legacy valid function hi(){ var a = 1; y++; x++; } ok 3720 indent-legacy valid for(;length > index; index++)if(NO_HOLES || index in self){ x++; } ok 3721 indent-legacy valid function test(){ switch(length){ case 1: return function(a){ return fn.call(that, a); }; } } ok 3722 indent-legacy valid var geometry = 2, rotate = 2; ok 3723 indent-legacy valid var geometry, rotate; ok 3724 indent-legacy valid var geometry, rotate; ok 3725 indent-legacy valid var geometry, rotate; ok 3726 indent-legacy valid var geometry, rotate; ok 3727 indent-legacy valid let geometry, rotate; ok 3728 indent-legacy valid const geometry = 2, rotate = 3; ok 3729 indent-legacy valid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth, height, rotate; ok 3730 indent-legacy valid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth; ok 3731 indent-legacy valid if (1 < 2){ //hi sd } ok 3732 indent-legacy valid while (1 < 2){ //hi sd } ok 3733 indent-legacy valid while (1 < 2) console.log('hi'); ok 3734 indent-legacy valid [a, b, c].forEach((index) => { index; }); ok 3735 indent-legacy valid [a, b, c].forEach((index) => { index; }); ok 3736 indent-legacy valid [a, b, c].forEach(function(index){ return index; }); ok 3737 indent-legacy valid switch (x) { case "foo": a(); break; case "bar": switch (y) { case "1": break; case "2": a = 6; break; } case "test": break; } ok 3738 indent-legacy valid switch (x) { case "foo": a(); break; case "bar": switch (y) { case "1": break; case "2": a = 6; break; } case "test": break; } ok 3739 indent-legacy valid switch (a) { case "foo": a(); break; case "bar": switch(x){ case '1': break; case '2': a = 6; break; } } ok 3740 indent-legacy valid switch (a) { case "foo": a(); break; case "bar": if(x){ a = 2; } else{ a = 6; } } ok 3741 indent-legacy valid switch (a) { case "foo": a(); break; case "bar": if(x){ a = 2; } else a = 6; } ok 3742 indent-legacy valid switch (a) { case "foo": a(); break; case "bar": a(); break; case "baz": a(); break; } ok 3743 indent-legacy valid switch (0) { } ok 3744 indent-legacy valid function foo() { var a = "a"; switch(a) { case "a": return "A"; case "b": return "B"; } } foo(); ok 3745 indent-legacy valid switch(value){ case "1": case "2": a(); break; default: a(); break; } switch(value){ case "1": a(); break; case "2": break; default: break; } ok 3746 indent-legacy valid var obj = {foo: 1, bar: 2}; with (obj) { console.log(foo + bar); } ok 3747 indent-legacy valid if (a) { (1 + 2 + 3); } ok 3748 indent-legacy valid switch(value){ default: a(); break; } ok 3749 indent-legacy valid import {addons} from 'react/addons' import React from 'react' ok 3750 indent-legacy valid var a = 1, b = 2, c = 3; ok 3751 indent-legacy valid var a = 1 ,b = 2 ,c = 3; ok 3752 indent-legacy valid while (1 < 2) console.log('hi') ok 3753 indent-legacy valid function salutation () { switch (1) { case 0: return console.log('hi') case 1: return console.log('hey') } } ok 3754 indent-legacy valid var items = [ { foo: 'bar' } ]; ok 3755 indent-legacy valid const a = 1, b = 2; const items1 = [ { foo: 'bar' } ]; const items2 = Items( { foo: 'bar' } ); ok 3756 indent-legacy valid const geometry = 2, rotate = 3; var a = 1, b = 2; let light = true, shadow = false; ok 3757 indent-legacy valid const abc = 5, c = 2, xyz = { a: 1, b: 2 }; let abc2 = 5, c2 = 2, xyz2 = { a: 1, b: 2 }; var abc3 = 5, c3 = 2, xyz3 = { a: 1, b: 2 }; ok 3758 indent-legacy valid module.exports = { 'Unit tests': { rootPath: './', environment: 'node', tests: [ 'test/test-*.js' ], sources: [ '*.js', 'test/**.js' ] } }; ok 3759 indent-legacy valid var path = require('path') , crypto = require('crypto') ; ok 3760 indent-legacy valid var a = 1 ,b = 2 ; ok 3761 indent-legacy valid export function create (some, argument) { return Object.create({ a: some, b: argument }); }; ok 3762 indent-legacy valid export function create (id, xfilter, rawType, width=defaultWidth, height=defaultHeight, footerHeight=defaultFooterHeight, padding=defaultPadding) { // ... function body, indented two spaces } ok 3763 indent-legacy valid var obj = { foo: function () { return new p() .then(function (ok) { return ok; }, function () { // ignore things }); } }; ok 3764 indent-legacy valid a.b() .c(function(){ var a; }).d.e; ok 3765 indent-legacy valid const YO = 'bah', TE = 'mah' var res, a = 5, b = 4 ok 3766 indent-legacy valid const YO = 'bah', TE = 'mah' var res, a = 5, b = 4 if (YO) console.log(TE) ok 3767 indent-legacy valid var foo = 'foo', bar = 'bar', baz = function() { } function hello () { } ok 3768 indent-legacy valid var obj = { send: function () { return P.resolve({ type: 'POST' }) .then(function () { return true; }, function () { return false; }); } }; ok 3769 indent-legacy valid var obj = { send: function () { return P.resolve({ type: 'POST' }) .then(function () { return true; }, function () { return false; }); } }; ok 3770 indent-legacy valid const someOtherFunction = argument => { console.log(argument); }, someOtherValue = 'someOtherValue'; ok 3771 indent-legacy valid [ 'a', 'b' ].sort().should.deepEqual([ 'x', 'y' ]); ok 3772 indent-legacy valid var a = 1, B = class { constructor(){} a(){} get b(){} }; ok 3773 indent-legacy valid var a = 1, B = class { constructor(){} a(){} get b(){} }, c = 3; ok 3774 indent-legacy valid class A{ constructor(){} a(){} get b(){} } ok 3775 indent-legacy valid var A = class { constructor(){} a(){} get b(){} } ok 3776 indent-legacy valid var a = { some: 1 , name: 2 }; ok 3777 indent-legacy valid a.c = { aa: function() { 'test1'; return 'aa'; } , bb: function() { return this.bb(); } }; ok 3778 indent-legacy valid var a = { actions: [ { name: 'compile' } ] }; ok 3779 indent-legacy valid var a = [ { name: 'compile' } ]; ok 3780 indent-legacy valid const func = function (opts) { return Promise.resolve() .then(() => { [ 'ONE', 'TWO' ].forEach(command => { doSomething(); }); }); }; ok 3781 indent-legacy valid const func = function (opts) { return Promise.resolve() .then(() => { [ 'ONE', 'TWO' ].forEach(command => { doSomething(); }); }); }; ok 3782 indent-legacy valid var haveFun = function () { SillyFunction( { value: true, }, { _id: true, } ); }; ok 3783 indent-legacy valid var haveFun = function () { new SillyFunction( { value: true, }, { _id: true, } ); }; ok 3784 indent-legacy valid let object1 = { doThing() { return _.chain([]) .map(v => ( { value: true, } )) .value(); } }; ok 3785 indent-legacy valid class Foo extends Bar { baz() {} } ok 3786 indent-legacy valid class Foo extends Bar { baz() {} } ok 3787 indent-legacy valid fs.readdirSync(path.join(__dirname, '../rules')).forEach(name => { files[name] = foo; }); ok 3788 indent-legacy valid (function(){ function foo(x) { return x + 1; } })(); ok 3789 indent-legacy valid (function(){ function foo(x) { return x + 1; } })(); ok 3790 indent-legacy valid (function(x, y){ function foo(x) { return x + 1; } })(1, 2); ok 3791 indent-legacy valid (function(){ function foo(x) { return x + 1; } }()); ok 3792 indent-legacy valid !function(){ function foo(x) { return x + 1; } }(); ok 3793 indent-legacy valid !function(){ function foo(x) { return x + 1; } }(); ok 3794 indent-legacy valid var out = function(){ function fooVar(x) { return x + 1; } }; ok 3795 indent-legacy valid var ns = function(){ function fooVar(x) { return x + 1; } }(); ok 3796 indent-legacy valid ns = function(){ function fooVar(x) { return x + 1; } }(); ok 3797 indent-legacy valid var ns = (function(){ function fooVar(x) { return x + 1; } }(x)); ok 3798 indent-legacy valid var ns = (function(){ function fooVar(x) { return x + 1; } }(x)); ok 3799 indent-legacy valid var obj = { foo: function() { return true; } }; ok 3800 indent-legacy valid while ( function() { return true; }()) { x = x + 1; }; ok 3801 indent-legacy valid (() => { function foo(x) { return x + 1; } })(); ok 3802 indent-legacy valid function foo() { } ok 3803 indent-legacy valid ;(() => { function foo(x) { return x + 1; } })(); ok 3804 indent-legacy valid if(data) { console.log('hi'); } ok 3805 indent-legacy valid Buffer.length ok 3806 indent-legacy valid Buffer .indexOf('a') .toString() ok 3807 indent-legacy valid Buffer. length ok 3808 indent-legacy valid Buffer .foo .bar ok 3809 indent-legacy valid Buffer .foo .bar ok 3810 indent-legacy valid Buffer .foo .bar ok 3811 indent-legacy valid MemberExpression .is .off .by .default(); ok 3812 indent-legacy valid foo = bar.baz() .bip(); ok 3813 indent-legacy valid if (foo) { bar(); } else if (baz) { foobar(); } else if (qux) { qux(); } ok 3814 indent-legacy valid function foo(aaa, bbb, ccc, ddd) { bar(); } ok 3815 indent-legacy valid function foo(aaa, bbb, ccc, ddd) { bar(); } ok 3816 indent-legacy valid function foo(aaa, bbb, ccc) { bar(); } ok 3817 indent-legacy valid function foo(aaa, bbb, ccc, ddd, eee, fff) { bar(); } ok 3818 indent-legacy valid function foo(aaa, bbb) { bar(); } ok 3819 indent-legacy valid function foo( aaa, bbb) { bar(); } ok 3820 indent-legacy valid var foo = function(aaa, bbb, ccc, ddd) { bar(); } ok 3821 indent-legacy valid var foo = function(aaa, bbb, ccc) { bar(); } ok 3822 indent-legacy valid var foo = function(aaa, bbb, ccc, ddd, eee, fff) { bar(); } ok 3823 indent-legacy valid var foo = function( aaa, bbb, ccc, ddd, eee) { bar(); } ok 3824 indent-legacy valid function foo() { bar(); baz(); qux(); } ok 3825 indent-legacy valid function foo() { function bar() { baz(); } } ok 3826 indent-legacy valid function foo() { bar(); } ok 3827 indent-legacy valid function foo() { function bar(baz, qux) { foobar(); } } ok 3828 indent-legacy valid function foo() { var bar = function(baz, qux) { foobar(); }; } ok 3829 indent-legacy valid function foo() { return (bar === 1 || bar === 2 && (/Function/.test(grandparent.type))) && directives(parent).indexOf(node) >= 0; } ok 3830 indent-legacy valid function foo() { return (bar === 1 || bar === 2) && (z === 3 || z === 4); } ok 3831 indent-legacy valid function foo() { return ((bar === 1 || bar === 2) && (z === 3 || z === 4) ); } ok 3832 indent-legacy valid function foo() { return ((bar === 1 || bar === 2) && (z === 3 || z === 4)); } ok 3833 indent-legacy valid foo( bar, baz, qux ); ok 3834 indent-legacy valid foo( bar, baz, qux ); ok 3835 indent-legacy valid foo(bar, baz, qux); ok 3836 indent-legacy valid foo( bar, baz, qux ); ok 3837 indent-legacy valid foo(bar, baz, qux ); ok 3838 indent-legacy valid foo(bar, baz, qux, barbaz, barqux, bazqux); ok 3839 indent-legacy valid foo( bar, baz, qux); ok 3840 indent-legacy valid foo(bar, 1 + 2, !baz, new Car('!') ); ok 3841 indent-legacy valid var foo = function() { return bar( [{ }].concat(baz) ); }; ok 3842 indent-legacy valid return ( foo ); ok 3843 indent-legacy valid return ( foo ) ok 3844 indent-legacy valid var foo = [ bar, baz ] ok 3845 indent-legacy valid var foo = [bar, baz, qux ] ok 3846 indent-legacy valid var foo = [bar, baz, qux ] ok 3847 indent-legacy valid var foo = [bar, baz, qux ] ok 3848 indent-legacy valid var foo = [bar, baz, qux ] ok 3849 indent-legacy valid var foo = [bar, baz, qux ] ok 3850 indent-legacy valid var foo = [ { bar: 1, baz: 2 }, { bar: 3, qux: 4 } ] ok 3851 indent-legacy valid var foo = { bar: 1, baz: 2 }; ok 3852 indent-legacy valid var foo = { foo: 1, bar: 2, baz: 3 } ok 3853 indent-legacy valid var foo = [ { foo: 1 } ] ok 3854 indent-legacy valid function foo() { [ foo ] } ok 3855 indent-legacy valid [ ] ok 3856 indent-legacy valid [ ] ok 3857 indent-legacy valid { } ok 3858 indent-legacy valid { } ok 3859 indent-legacy valid var foo = [ [ 1 ] ] ok 3860 indent-legacy valid var foo = [ 1, [ 2 ] ]; ok 3861 indent-legacy valid var foo = bar(1, [ 2, 3 ] ); ok 3862 indent-legacy valid var foo = [ ]() ok 3863 indent-legacy valid const lambda = foo => { Object.assign({}, filterName, { display } );} ok 3864 indent-legacy valid const lambda = foo => { Object.assign({}, filterName, { display } );} ok 3865 indent-legacy valid var foo = function() { window.foo('foo', { foo: 'bar', bar: { foo: 'bar' } } ); } ok 3866 indent-legacy valid echo = spawn('cmd.exe', ['foo', 'bar', 'baz']); ok 3867 indent-legacy invalid var a = b; if (a) { b(); } ok 3868 indent-legacy invalid require('http').request({hostname: 'localhost', port: 80}, function(res) { res.end(); }); ok 3869 indent-legacy invalid if (array.some(function(){ return true; })) { a++; // -> b++; c++; // <- } ok 3870 indent-legacy invalid if (a){ b=c; c=d; e=f; } ok 3871 indent-legacy invalid if (a){ b=c; c=d; e=f; } ok 3872 indent-legacy invalid if (a) { var b = c; var d = e * f; var e = f; // <- // NO ERROR: DON'T VALIDATE EMPTY OR COMMENT ONLY LINES function g() { if (h) { var i = j; } // <- } // <- while (k) l++; while (m) { n--; // -> } // <- do { o = p + q; // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS o = p + q; } while(r); // <- for (var s in t) { u++; } for (;;) { // <- Fix this when issue 3737 gets resolved v++; // <- } if ( w ) { x++; } else if (y) { z++; // <- aa++; } else { // <- bb++; // -> } // -> } /**/var b; // NO ERROR: single line multi-line comments followed by code is OK /* * */ var b; // ERROR: multi-line comments followed by code is not OK var arr = [ a, b, c, function (){ d }, // <- {}, { a: b, c: d, d: e }, [ f, g, h, i ], [j] ]; var obj = { a: { b: { c: d, e: f, g: h + i // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS } }, g: [ h, i, j, k ] }; var arrObject = {a:[ a, b, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE c ]}; var objArray = [{ a: b, b: c, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE c: d }]; var arrArray = [[ a, b, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE c ]]; var objObject = {a:{ a: b, b: c, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE c: d }}; switch (a) { case 'a': var a = 'b'; // -> break; case 'b': var a = 'b'; break; case 'c': var a = 'b'; // <- break; case 'd': var a = 'b'; break; // -> case 'f': var a = 'b'; break; case 'g': { var a = 'b'; break; } case 'z': default: break; // <- } a.b('hi') .c(a.b()) // <- .d(); // <- if ( a ) { if ( b ) { d.e(f) // -> .g() // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS .h(); // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS i.j(m) .k() // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS .l(); // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS n.o(p) // <- .q() // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS .r(); // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS } } var a = b, c = function () { h = i; // -> j = k; l = m; // <- }, e = { f: g, n: o, p: q }, r = [ s, t, u ]; var a = function () { b = c; // -> d = e; f = g; // <- }; function c(a, b) { if (a || (a && b)) { // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS return d; } } if ( a || b ) { var x; // -> var c, d = function(a, b) { a; // -> b; c; // <- } } a({ d: 1 }); a( 1 ); a( b({ d: 1 }) ); a( b( c({ d: 1, e: 1, f: 1 }) ) ); a({ d: 1 }); aa( b({ // NO ERROR: aligned with previous opening paren c: d, e: f, f: g }) ); aaaaaa( b, c, { d: a } ); a(b, c, d, e, f, g // NO ERROR: alignment of arguments of callExpression not checked ); // NO ERROR: this has nothing to do with indentation, this is CallExpression spacing a( ); // NO ERROR: this has nothing to do with indentation, this is CallExpression spacing aaaaaa( b, c, { d: a }, { e: f } ); a.b() .c(function(){ var a; }).d.e; if (a == 'b') { if (c && d) e = f else g('h').i('j') } a = function (b, c) { return a(function () { var d = e var f = g var h = i if (!j) k('l', (m = n)) if (o) p else if (q) r }) } var a = function() { "b" .replace(/a/, "a") .replace(/bc?/, function(e) { return "b" + (e.f === 2 ? "c" : "f"); }) .replace(/d/, "d"); }; $(b) .on('a', 'b', function() { $(c).e('f'); }) .on('g', 'h', function() { $(i).j('k'); }); a .b('c', 'd'); // NO ERROR: this has nothing to do with indentation, this is CallExpression spacing a .b('c', [ 'd', function(e) { e++; }]); var a = function() { a++; b++; // <- c++; // <- }, b; var b = [ a, b, c ], c; var c = { a: 1, b: 2, c: 3 }, d; // holes in arrays indentation x = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; try { a++; b++; // <- c++; // -> } catch (d) { e++; f++; // <- g++; // -> } finally { h++; i++; // <- j++; // -> } if (array.some(function(){ return true; })) { a++; // -> b++; c++; // <- } var a = b.c(function() { d++; }), e; switch (true) { case (a && b): case (c // -> && d): case (e // <- && f): case (g && h): var i = j; // <- var k = l; var m = n; // -> } if (a) { b(); } else { c(); // -> d(); e(); // <- } if (a) b(); else { c(); // -> d(); e(); // <- } if (a) { b(); } else c(); if (a) { b(); } else c(); a(); if( "very very long multi line" + "with weird indentation" ) { b(); a(); // -> c(); // <- } a( "very very long multi line" + "with weird indentation", function() { b(); a(); // -> c(); // <- }); a = function(content, dom) { b(); c(); // <- d(); // -> }; a = function(content, dom) { b(); c(); // <- d(); // -> }; a = function(content, dom) { b(); // -> }; a = function(content, dom) { b(); // -> }; a('This is a terribly long description youll ' + 'have to read', function () { b(); c(); }); if ( array.some(function(){ return true; }) ) { a++; // -> b++; c++; // <- } function c(d) { return { e: function(f, g) { } }; } function a(b) { switch(x) { case 1: if (foo) { return 5; } } } function a(b) { switch(x) { case 1: c; } } function a(b) { switch(x) { case 1: c; } } function test() { var a = 1; { a(); } } { a(); } function a(b) { switch(x) { case 1: { a(); } break; default: { b(); } } } switch (a) { default: if (b) c(); } function test(x) { switch (x) { case 1: return function() { var a = 5; return a; }; } } switch (a) { default: if (b) c(); } ok 3873 indent-legacy invalid switch(value){ case "1": a(); break; case "2": a(); break; default: a(); break; } ok 3874 indent-legacy invalid var x = 0 && { a: 1, b: 2 }; ok 3875 indent-legacy invalid switch(value){ case "1": a(); break; case "2": a(); break; default: break; } ok 3876 indent-legacy invalid switch(value){ case "1": case "2": a(); break; default: break; } switch(value){ case "1": break; case "2": a(); break; default: a(); break; } ok 3877 indent-legacy invalid switch(value){ case "1": a(); break; case "2": break; default: break; } ok 3878 indent-legacy invalid var obj = {foo: 1, bar: 2}; with (obj) { console.log(foo + bar); } ok 3879 indent-legacy invalid switch (a) { case '1': b(); break; default: c(); break; } ok 3880 indent-legacy invalid var foo = function(){ foo .bar } ok 3881 indent-legacy invalid var foo = function(){ foo .bar } ok 3882 indent-legacy invalid var foo = () => { foo .bar } ok 3883 indent-legacy invalid TestClass.prototype.method = function () { return Promise.resolve(3) .then(function (x) { return x; }); }; ok 3884 indent-legacy invalid while (a) b(); ok 3885 indent-legacy invalid for (;;) b(); ok 3886 indent-legacy invalid for (a in x) b(); ok 3887 indent-legacy invalid do b(); while(true) ok 3888 indent-legacy invalid if(true) b(); ok 3889 indent-legacy invalid var test = { a: 1, b: 2 }; ok 3890 indent-legacy invalid var a = function() { a++; b++; c++; }, b; ok 3891 indent-legacy invalid var a = 1, b = 2, c = 3; ok 3892 indent-legacy invalid [a, b, c].forEach((index) => { index; }); ok 3893 indent-legacy invalid [a, b, c].forEach(function(index){ return index; }); ok 3894 indent-legacy invalid [a, b, c].forEach(function(index){ return index; }); ok 3895 indent-legacy invalid [a, b, c].forEach((index) => { index; }); ok 3896 indent-legacy invalid [a, b, c].forEach(function(index){ return index; }); ok 3897 indent-legacy invalid var x = ['a', 'b', 'c' ]; ok 3898 indent-legacy invalid var x = [ 'a', 'b', 'c' ]; ok 3899 indent-legacy invalid var x = [ 'a', 'b', 'c', 'd']; ok 3900 indent-legacy invalid var x = [ 'a', 'b', 'c' ]; ok 3901 indent-legacy invalid while (1 < 2) console.log('foo') console.log('bar') ok 3902 indent-legacy invalid function salutation () { switch (1) { case 0: return console.log('hi') case 1: return console.log('hey') } } ok 3903 indent-legacy invalid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth, height, rotate; ok 3904 indent-legacy invalid switch (a) { case '1': b(); break; default: c(); break; } ok 3905 indent-legacy invalid var geometry, rotate; ok 3906 indent-legacy invalid var geometry, rotate; ok 3907 indent-legacy invalid var geometry, rotate; ok 3908 indent-legacy invalid let geometry, rotate; ok 3909 indent-legacy invalid if(true) if (true) if (true) console.log(val); ok 3910 indent-legacy invalid var a = { a: 1, b: 2 } ok 3911 indent-legacy invalid var a = [ a, b ] ok 3912 indent-legacy invalid let a = [ a, b ] ok 3913 indent-legacy invalid var a = new Test({ a: 1 }), b = 4; ok 3914 indent-legacy invalid var a = new Test({ a: 1 }), b = 4; const c = new Test({ a: 1 }), d = 4; ok 3915 indent-legacy invalid var abc = 5, c = 2, xyz = { a: 1, b: 2 }; ok 3916 indent-legacy invalid var abc = { a: 1, b: 2 }; ok 3917 indent-legacy invalid var path = require('path') , crypto = require('crypto') ; ok 3918 indent-legacy invalid var a = 1 ,b = 2 ; ok 3919 indent-legacy invalid class A{ constructor(){} a(){} get b(){} } ok 3920 indent-legacy invalid var A = class { constructor(){} a(){} get b(){} }; ok 3921 indent-legacy invalid var a = 1, B = class { constructor(){} a(){} get b(){} }; ok 3922 indent-legacy invalid { if(a){ foo(); } else{ bar(); } } ok 3923 indent-legacy invalid { if(a){ foo(); } else bar(); } ok 3924 indent-legacy invalid { if(a) foo(); else bar(); } ok 3925 indent-legacy invalid (function(){ function foo(x) { return x + 1; } })(); ok 3926 indent-legacy invalid (function(){ function foo(x) { return x + 1; } })(); ok 3927 indent-legacy invalid if(data) { console.log('hi'); } ok 3928 indent-legacy invalid var ns = function(){ function fooVar(x) { return x + 1; } }(x); ok 3929 indent-legacy invalid var obj = { foo: function() { return true; }() }; ok 3930 indent-legacy invalid typeof function() { function fooVar(x) { return x + 1; } }(); ok 3931 indent-legacy invalid { !function(x) { return x + 1; }() }; ok 3932 indent-legacy invalid Buffer .toString() ok 3933 indent-legacy invalid Buffer .indexOf('a') .toString() ok 3934 indent-legacy invalid Buffer. length ok 3935 indent-legacy invalid Buffer. length ok 3936 indent-legacy invalid Buffer .foo .bar ok 3937 indent-legacy invalid if (foo) bar(); else if (baz) foobar(); else if (qux) qux(); ok 3938 indent-legacy invalid if (foo) bar(); else if (baz) foobar(); else qux(); ok 3939 indent-legacy invalid foo(); if (baz) foobar(); else qux(); ok 3940 indent-legacy invalid if (foo) bar(); else if (baz) foobar(); else if (bip) { qux(); } ok 3941 indent-legacy invalid if (foo) bar(); else if (baz) { foobar(); } else if (boop) { qux(); } ok 3942 indent-legacy invalid function foo(aaa, bbb, ccc, ddd) { bar(); } ok 3943 indent-legacy invalid function foo(aaa, bbb, ccc, ddd) { bar(); } ok 3944 indent-legacy invalid function foo(aaa, bbb, ccc) { bar(); } ok 3945 indent-legacy invalid function foo(aaa, bbb, ccc, ddd, eee, fff) { bar(); } ok 3946 indent-legacy invalid function foo(aaa, bbb) { bar(); } ok 3947 indent-legacy invalid function foo( aaa, bbb) { bar(); } ok 3948 indent-legacy invalid var foo = function(aaa, bbb, ccc, ddd) { bar(); } ok 3949 indent-legacy invalid var foo = function(aaa, bbb, ccc) { bar(); } ok 3950 indent-legacy invalid var foo = function(aaa, bbb, ccc, ddd, eee, fff) { bar(); } ok 3951 indent-legacy invalid var foo = function( aaa, bbb, ccc, ddd, eee) { bar(); } ok 3952 indent-legacy invalid var foo = bar; var baz = qux; ok 3953 indent-legacy invalid function foo() { bar(); baz(); qux(); } ok 3954 indent-legacy invalid function foo() { bar(); } ok 3955 indent-legacy invalid function foo() { function bar() { baz(); } } ok 3956 indent-legacy invalid function foo() { function bar(baz, qux) { foobar(); } } ok 3957 indent-legacy invalid function foo() { var bar = function(baz, qux) { foobar(); }; } ok 3958 indent-legacy invalid { try { } catch (err) { } finally { } } ok 3959 indent-legacy invalid { do { } while (true) } ok 3960 indent-legacy invalid function foo() { return ( 1 ) } ok 3961 indent-legacy invalid function foo() { return ( 1 ); } ok 3962 indent-legacy invalid function test(){ switch(length){ case 1: return function(a){ return fn.call(that, a); }; } } ok 3963 indent-legacy invalid function foo() { return 1 } ok 3964 indent-legacy invalid function foo() { return 1; } ok 3965 indent-legacy invalid foo( bar, baz, qux); ok 3966 indent-legacy invalid foo( bar, baz); ok 3967 indent-legacy invalid foo(bar, baz, qux); ok 3968 indent-legacy invalid foo(bar, baz, qux); ok 3969 indent-legacy invalid foo( bar, baz); ok 3970 indent-legacy invalid foo(bar, 1 + 2, !baz, new Car('!') ); ok 3971 indent-legacy invalid return ( foo ); ok 3972 indent-legacy invalid return ( foo ) ok 3973 indent-legacy invalid if (foo) { /* comment */bar(); } ok 3974 indent-legacy invalid foo('bar', /** comment */{ ok: true }); ok 3975 indent-legacy invalid var foo = [ bar, baz ] ok 3976 indent-legacy invalid var foo = [bar, baz, qux ] ok 3977 indent-legacy invalid var foo = [bar, baz, qux ] ok 3978 indent-legacy invalid var foo = [bar, baz, qux ] ok 3979 indent-legacy invalid var foo = [bar, baz, qux ] ok 3980 indent-legacy invalid var foo = [bar, baz, qux ] ok 3981 indent-legacy invalid var foo = [ { bar: 1, baz: 2 }, { bar: 3, qux: 4 } ] ok 3982 indent-legacy invalid var foo = { bar: 1, baz: 2 }; ok 3983 indent-legacy invalid var quux = { foo: 1, bar: 2, baz: 3 } ok 3984 indent-legacy invalid function foo() { [ foo ] } ok 3985 indent-legacy invalid echo = spawn('cmd.exe', ['foo', 'bar', 'baz']); ok 3986 indent valid bridge.callHandler( 'getAppVersion', 'test23', function(responseData) { window.ah.mobileAppVersion = responseData; } ); ok 3987 indent valid bridge.callHandler( 'getAppVersion', 'test23', function(responseData) { window.ah.mobileAppVersion = responseData; }); ok 3988 indent valid bridge.callHandler( 'getAppVersion', null, function responseCallback(responseData) { window.ah.mobileAppVersion = responseData; } ); ok 3989 indent valid bridge.callHandler( 'getAppVersion', null, function responseCallback(responseData) { window.ah.mobileAppVersion = responseData; }); ok 3990 indent valid function doStuff(keys) { _.forEach( keys, key => { doSomething(key); } ); } ok 3991 indent valid example( function () { console.log('example'); } ); ok 3992 indent valid let foo = somethingList .filter(x => { return x; }) .map(x => { return 100 * x; }); ok 3993 indent valid var x = 0 && { a: 1, b: 2 }; ok 3994 indent valid var x = 0 && { a: 1, b: 2 }; ok 3995 indent valid var x = 0 && { a: 1, b: 2 }|| { c: 3, d: 4 }; ok 3996 indent valid var x = [ 'a', 'b', 'c' ]; ok 3997 indent valid var x = ['a', 'b', 'c', ]; ok 3998 indent valid var x = 0 && 1; ok 3999 indent valid var x = 0 && { a: 1, b: 2 }; ok 4000 indent valid var x = 0 && ( 1 ); ok 4001 indent valid require('http').request({hostname: 'localhost', port: 80}, function(res) { res.end(); }); ok 4002 indent valid function test() { return client.signUp(email, PASSWORD, { preVerified: true }) .then(function (result) { // hi }) .then(function () { return FunctionalHelpers.clearBrowserState(self, { contentServer: true, contentServer1: true }); }); } ok 4003 indent valid it('should... some lengthy test description that is forced to be' + 'wrapped into two lines since the line length limit is set', () => { expect(true).toBe(true); }); ok 4004 indent valid function test() { return client.signUp(email, PASSWORD, { preVerified: true }) .then(function (result) { var x = 1; var y = 1; }, function(err){ var o = 1 - 2; var y = 1 - 2; return true; }) } ok 4005 indent valid import foo from "foo" ;(() => {})() ok 4006 indent valid function test() { return client.signUp(email, PASSWORD, { preVerified: true }) .then(function (result) { var x = 1; var y = 1; }, function(err){ var o = 1 - 2; var y = 1 - 2; return true; }); } ok 4007 indent valid // hi ok 4008 indent valid var Command = function() { var fileList = [], files = [] files.concat(fileList) }; ok 4009 indent valid ok 4010 indent valid if(data) { console.log('hi'); b = true;}; ok 4011 indent valid foo = () => { console.log('hi'); return true;}; ok 4012 indent valid function test(data) { console.log('hi'); return true;}; ok 4013 indent valid var test = function(data) { console.log('hi'); }; ok 4014 indent valid arr.forEach(function(data) { otherdata.forEach(function(zero) { console.log('hi'); }) }); ok 4015 indent valid a = [ ,3 ] ok 4016 indent valid [ ['gzip', 'gunzip'], ['gzip', 'unzip'], ['deflate', 'inflate'], ['deflateRaw', 'inflateRaw'], ].forEach(function(method) { console.log(method); }); ok 4017 indent valid test(123, { bye: { hi: [1, { b: 2 } ] } }); ok 4018 indent valid var xyz = 2, lmn = [ { a: 1 } ]; ok 4019 indent valid lmnn = [{ a: 1 }, { b: 2 }, { x: 2 }]; ok 4020 indent valid [{ foo: 1 }, { foo: 2 }, { foo: 3 }] ok 4021 indent valid foo([ bar ], [ baz ], [ qux ]); ok 4022 indent valid abc({ test: [ [ c, xyz, 2 ].join(',') ] }); ok 4023 indent valid abc = { test: [ [ c, xyz, 2 ] ] }; ok 4024 indent valid abc( { a: 1, b: 2 } ); ok 4025 indent valid abc({ a: 1, b: 2 }); ok 4026 indent valid var abc = [ c, xyz, { a: 1, b: 2 } ]; ok 4027 indent valid var abc = [ c, xyz, { a: 1, b: 2 } ]; ok 4028 indent valid var abc = 5, c = 2, xyz = { a: 1, b: 2 }; ok 4029 indent valid var x = { a: 1, }, y = { b: 2 } ok 4030 indent valid const x = { a: 1, }, y = { b: 2 } ok 4031 indent valid let x = { a: 1, }, y = { b: 2 } ok 4032 indent valid var foo = { a: 1 }, bar = { b: 2 }; ok 4033 indent valid var foo = { a: 1 }, bar = { b: 2 }, baz = { c: 3 } ok 4034 indent valid const { foo } = 1, bar = 2 ok 4035 indent valid var foo = 1, bar = 2 ok 4036 indent valid var foo = 1, bar = 2 ok 4037 indent valid var foo = 1, bar = 2 ok 4038 indent valid var foo = 1, bar = 2 ok 4039 indent valid var foo = (1), bar = (2) ok 4040 indent valid let foo = 'foo', bar = bar; const a = 'a', b = 'b'; ok 4041 indent valid let foo = 'foo', bar = bar // <-- no semicolon here const a = 'a', b = 'b' // <-- no semicolon here ok 4042 indent valid var foo = 1, bar = 2, baz = 3 ; ok 4043 indent valid var foo = 1, bar = 2, baz = 3 ; ok 4044 indent valid var foo = 'foo', bar = bar; ok 4045 indent valid var foo = 'foo', bar = 'bar' // <-- no semicolon here ok 4046 indent valid let foo = 1, bar = 2, baz ok 4047 indent valid let foo ok 4048 indent valid let foo = 1, bar = 2 ok 4049 indent valid var abc = { a: 1, b: 2 }; ok 4050 indent valid var a = new abc({ a: 1, b: 2 }), b = 2; ok 4051 indent valid var a = 2, c = { a: 1, b: 2 }, b = 2; ok 4052 indent valid var x = 2, y = { a: 1, b: 2 }, b = 2; ok 4053 indent valid var e = { a: 1, b: 2 }, b = 2; ok 4054 indent valid var a = { a: 1, b: 2 }; ok 4055 indent valid function test() { if (true || false){ console.log(val); } } ok 4056 indent valid var foo = bar || !( baz ); ok 4057 indent valid for (var foo = 1; foo < 10; foo++) {} ok 4058 indent valid for ( var foo = 1; foo < 10; foo++ ) {} ok 4059 indent valid for (var val in obj) if (true) console.log(val); ok 4060 indent valid if(true) if (true) if (true) console.log(val); ok 4061 indent valid function hi(){ var a = 1; y++; x++; } ok 4062 indent valid for(;length > index; index++)if(NO_HOLES || index in self){ x++; } ok 4063 indent valid function test(){ switch(length){ case 1: return function(a){ return fn.call(that, a); }; } } ok 4064 indent valid var geometry = 2, rotate = 2; ok 4065 indent valid var geometry, rotate; ok 4066 indent valid var geometry, rotate; ok 4067 indent valid var geometry, rotate; ok 4068 indent valid var geometry, rotate; ok 4069 indent valid let geometry, rotate; ok 4070 indent valid const geometry = 2, rotate = 3; ok 4071 indent valid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth, height, rotate; ok 4072 indent valid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth; ok 4073 indent valid if (1 < 2){ //hi sd } ok 4074 indent valid while (1 < 2){ //hi sd } ok 4075 indent valid while (1 < 2) console.log('hi'); ok 4076 indent valid [a, boop, c].forEach((index) => { index; }); ok 4077 indent valid [a, b, c].forEach(function(index){ return index; }); ok 4078 indent valid [a, b, c].forEach((index) => { index; }); ok 4079 indent valid [a, b, c].forEach(function(index){ return index; }); ok 4080 indent valid (foo) .bar([ baz ]); ok 4081 indent valid switch (x) { case "foo": a(); break; case "bar": switch (y) { case "1": break; case "2": a = 6; break; } case "test": break; } ok 4082 indent valid switch (x) { case "foo": a(); break; case "bar": switch (y) { case "1": break; case "2": a = 6; break; } case "test": break; } ok 4083 indent valid switch (a) { case "foo": a(); break; case "bar": switch(x){ case '1': break; case '2': a = 6; break; } } ok 4084 indent valid switch (a) { case "foo": a(); break; case "bar": if(x){ a = 2; } else{ a = 6; } } ok 4085 indent valid switch (a) { case "foo": a(); break; case "bar": if(x){ a = 2; } else a = 6; } ok 4086 indent valid switch (a) { case "foo": a(); break; case "bar": a(); break; case "baz": a(); break; } ok 4087 indent valid switch (0) { } ok 4088 indent valid function foo() { var a = "a"; switch(a) { case "a": return "A"; case "b": return "B"; } } foo(); ok 4089 indent valid switch(value){ case "1": case "2": a(); break; default: a(); break; } switch(value){ case "1": a(); break; case "2": break; default: break; } ok 4090 indent valid var obj = {foo: 1, bar: 2}; with (obj) { console.log(foo + bar); } ok 4091 indent valid if (a) { (1 + 2 + 3); // no error on this line } ok 4092 indent valid switch(value){ default: a(); break; } ok 4093 indent valid import {addons} from 'react/addons' import React from 'react' ok 4094 indent valid import { foo, bar, baz } from 'qux'; ok 4095 indent valid var foo = 0, bar = 0; baz = 0; export { foo, bar, baz } from 'qux'; ok 4096 indent valid var a = 1, b = 2, c = 3; ok 4097 indent valid var a = 1 ,b = 2 ,c = 3; ok 4098 indent valid while (1 < 2) console.log('hi') ok 4099 indent valid function salutation () { switch (1) { case 0: return console.log('hi') case 1: return console.log('hey') } } ok 4100 indent valid var items = [ { foo: 'bar' } ]; ok 4101 indent valid const a = 1, b = 2; const items1 = [ { foo: 'bar' } ]; const items2 = Items( { foo: 'bar' } ); ok 4102 indent valid const geometry = 2, rotate = 3; var a = 1, b = 2; let light = true, shadow = false; ok 4103 indent valid const abc = 5, c = 2, xyz = { a: 1, b: 2 }; let abc2 = 5, c2 = 2, xyz2 = { a: 1, b: 2 }; var abc3 = 5, c3 = 2, xyz3 = { a: 1, b: 2 }; ok 4104 indent valid module.exports = { 'Unit tests': { rootPath: './', environment: 'node', tests: [ 'test/test-*.js' ], sources: [ '*.js', 'test/**.js' ] } }; ok 4105 indent valid foo = bar; ok 4106 indent valid foo = ( bar ); ok 4107 indent valid var path = require('path') , crypto = require('crypto') ; ok 4108 indent valid var a = 1 ,b = 2 ; ok 4109 indent valid export function create (some, argument) { return Object.create({ a: some, b: argument }); }; ok 4110 indent valid export function create (id, xfilter, rawType, width=defaultWidth, height=defaultHeight, footerHeight=defaultFooterHeight, padding=defaultPadding) { // ... function body, indented two spaces } ok 4111 indent valid var obj = { foo: function () { return new p() .then(function (ok) { return ok; }, function () { // ignore things }); } }; ok 4112 indent valid a.b() .c(function(){ var a; }).d.e; ok 4113 indent valid const YO = 'bah', TE = 'mah' var res, a = 5, b = 4 ok 4114 indent valid const YO = 'bah', TE = 'mah' var res, a = 5, b = 4 if (YO) console.log(TE) ok 4115 indent valid var foo = 'foo', bar = 'bar', baz = function() { } function hello () { } ok 4116 indent valid var obj = { send: function () { return P.resolve({ type: 'POST' }) .then(function () { return true; }, function () { return false; }); } }; ok 4117 indent valid var obj = { send: function () { return P.resolve({ type: 'POST' }) .then(function () { return true; }, function () { return false; }); } }; ok 4118 indent valid const someOtherFunction = argument => { console.log(argument); }, someOtherValue = 'someOtherValue'; ok 4119 indent valid [ 'a', 'b' ].sort().should.deepEqual([ 'x', 'y' ]); ok 4120 indent valid var a = 1, B = class { constructor(){} a(){} get b(){} }; ok 4121 indent valid var a = 1, B = class { constructor(){} a(){} get b(){} }, c = 3; ok 4122 indent valid class A{ constructor(){} a(){} get b(){} } ok 4123 indent valid var A = class { constructor(){} a(){} get b(){} } ok 4124 indent valid var a = { some: 1 , name: 2 }; ok 4125 indent valid a.c = { aa: function() { 'test1'; return 'aa'; } , bb: function() { return this.bb(); } }; ok 4126 indent valid var a = { actions: [ { name: 'compile' } ] }; ok 4127 indent valid var a = [ { name: 'compile' } ]; ok 4128 indent valid [[ ], function( foo ) {} ] ok 4129 indent valid define([ 'foo' ], function( bar ) { baz; } ) ok 4130 indent valid const func = function (opts) { return Promise.resolve() .then(() => { [ 'ONE', 'TWO' ].forEach(command => { doSomething(); }); }); }; ok 4131 indent valid const func = function (opts) { return Promise.resolve() .then(() => { [ 'ONE', 'TWO' ].forEach(command => { doSomething(); }); }); }; ok 4132 indent valid var haveFun = function () { SillyFunction( { value: true, }, { _id: true, } ); }; ok 4133 indent valid var haveFun = function () { new SillyFunction( { value: true, }, { _id: true, } ); }; ok 4134 indent valid let object1 = { doThing() { return _.chain([]) .map(v => ( { value: true, } )) .value(); } }; ok 4135 indent valid var foo = { bar: 1, baz: { qux: 2 } }, bar = 1; ok 4136 indent valid class Foo extends Bar { baz() {} } ok 4137 indent valid class Foo extends Bar { baz() {} } ok 4138 indent valid class Foo extends ( Bar ) { baz() {} } ok 4139 indent valid fs.readdirSync(path.join(__dirname, '../rules')).forEach(name => { files[name] = foo; }); ok 4140 indent valid (function(){ function foo(x) { return x + 1; } })(); ok 4141 indent valid (function(){ function foo(x) { return x + 1; } })(); ok 4142 indent valid (function(x, y){ function foo(x) { return x + 1; } })(1, 2); ok 4143 indent valid (function(){ function foo(x) { return x + 1; } }()); ok 4144 indent valid !function(){ function foo(x) { return x + 1; } }(); ok 4145 indent valid !function(){ function foo(x) { return x + 1; } }(); ok 4146 indent valid var out = function(){ function fooVar(x) { return x + 1; } }; ok 4147 indent valid var ns = function(){ function fooVar(x) { return x + 1; } }(); ok 4148 indent valid ns = function(){ function fooVar(x) { return x + 1; } }(); ok 4149 indent valid var ns = (function(){ function fooVar(x) { return x + 1; } }(x)); ok 4150 indent valid var ns = (function(){ function fooVar(x) { return x + 1; } }(x)); ok 4151 indent valid var obj = { foo: function() { return true; } }; ok 4152 indent valid while ( function() { return true; }()) { x = x + 1; }; ok 4153 indent valid (() => { function foo(x) { return x + 1; } })(); ok 4154 indent valid function foo() { } ok 4155 indent valid ;(() => { function foo(x) { return x + 1; } })(); ok 4156 indent valid if(data) { console.log('hi'); } ok 4157 indent valid Buffer.length ok 4158 indent valid Buffer .indexOf('a') .toString() ok 4159 indent valid Buffer. length ok 4160 indent valid Buffer .foo .bar ok 4161 indent valid Buffer .foo .bar ok 4162 indent valid Buffer .foo .bar ok 4163 indent valid ( foo .bar ) ok 4164 indent valid ( ( foo .bar ) ) ok 4165 indent valid ( foo ) .bar ok 4166 indent valid ( ( foo ) .bar ) ok 4167 indent valid ( ( foo ) [ ( bar ) ] ) ok 4168 indent valid ( foo[bar] ) .baz ok 4169 indent valid ( (foo.bar) ) .baz ok 4170 indent valid MemberExpression .can .be .turned .off(); ok 4171 indent valid foo = bar.baz() .bip(); ok 4172 indent valid function foo() { new .target } ok 4173 indent valid function foo() { new. target } ok 4174 indent valid if (foo) { bar(); } else if (baz) { foobar(); } else if (qux) { qux(); } ok 4175 indent valid function foo(aaa, bbb, ccc, ddd) { bar(); } ok 4176 indent valid function foo(aaa, bbb, ccc, ddd) { bar(); } ok 4177 indent valid function foo(aaa, bbb, ccc) { bar(); } ok 4178 indent valid function foo(aaa, bbb, ccc, ddd, eee, fff) { bar(); } ok 4179 indent valid function foo(aaa, bbb) { bar(); } ok 4180 indent valid function foo( aaa, bbb) { bar(); } ok 4181 indent valid var foo = function(aaa, bbb, ccc, ddd) { bar(); } ok 4182 indent valid var foo = function(aaa, bbb, ccc) { bar(); } ok 4183 indent valid var foo = function(aaa, bbb, ccc, ddd, eee, fff) { bar(); } ok 4184 indent valid var foo = function( aaa, bbb, ccc, ddd, eee) { bar(); } ok 4185 indent valid foo.bar( baz, qux, function() { qux; } ); ok 4186 indent valid function foo() { bar(); baz(); qux(); } ok 4187 indent valid function foo() { function bar() { baz(); } } ok 4188 indent valid function foo() { bar(); } ok 4189 indent valid function foo() { function bar(baz, qux) { foobar(); } } ok 4190 indent valid (( foo )) ok 4191 indent valid foo ? bar : baz ok 4192 indent valid foo = (bar ? baz : qux ); ok 4193 indent valid [ foo ? bar : baz, qux ]; ok 4194 indent valid foo(); // Line /* multiline Line */ bar(); // trailing comment ok 4195 indent valid switch (foo) { case bar: baz(); // call the baz function } ok 4196 indent valid switch (foo) { case bar: baz(); // no default } ok 4197 indent valid [ // no elements ] ok 4198 indent valid var { foo, bar, baz: qux, foobar: baz = foobar } = qux; ok 4199 indent valid var [ foo, bar, baz, foobar = baz ] = qux; ok 4200 indent valid const { a } = { a: 1 } ok 4201 indent valid const { a } = { a: 1 } ok 4202 indent valid const { a } = { a: 1 }; ok 4203 indent valid const foo = { bar: 1 } ok 4204 indent valid const [ a ] = [ 1 ] ok 4205 indent valid var folder = filePath .foo() .bar; ok 4206 indent valid for (const foo of bar) baz(); ok 4207 indent valid var x = () => 5; ok 4208 indent valid ( foo )( bar ) ok 4209 indent valid (() => foo )( bar ) ok 4210 indent valid (() => { foo(); })( bar ) ok 4211 indent valid ({code: "foo.bar();"}) ok 4212 indent valid ({code: "foo.bar();"}) ok 4213 indent valid ({ foo: bar }) ok 4214 indent valid ({ [foo]: bar }) ok 4215 indent valid switch (foo) { // comment case study: // comment bar(); case closed: /* multiline comment */ } ok 4216 indent valid switch (foo) { // comment case study: // the comment can also be here case closed: } ok 4217 indent valid foo && ( bar ) ok 4218 indent valid foo && (( bar )) ok 4219 indent valid foo && ( bar ) ok 4220 indent valid foo && !bar( ) ok 4221 indent valid foo && ![].map(() => { bar(); }) ok 4222 indent valid foo = bar; ok 4223 indent valid function foo() { var bar = function(baz, qux) { foobar(); }; } ok 4224 indent valid function foo() { return (bar === 1 || bar === 2 && (/Function/.test(grandparent.type))) && directives(parent).indexOf(node) >= 0; } ok 4225 indent valid function foo() { return (foo === bar || ( baz === qux && ( foo === foo || bar === bar || baz === baz ) )) } ok 4226 indent valid if ( foo === 1 || bar === 1 || // comment (baz === 1 && qux === 1) ) {} ok 4227 indent valid foo = (bar + baz); ok 4228 indent valid function foo() { return (bar === 1 || bar === 2) && (z === 3 || z === 4); } ok 4229 indent valid /* comment */ if (foo) { bar(); } ok 4230 indent valid if (foo) { bar(); // Otherwise, if foo is false, do baz. // baz is very important. } else { baz(); } ok 4231 indent valid function foo() { return ((bar === 1 || bar === 2) && (z === 3 || z === 4)); } ok 4232 indent valid foo( bar, baz, qux ); ok 4233 indent valid foo( bar, baz, qux ); ok 4234 indent valid foo(bar, baz, qux); ok 4235 indent valid foo( bar, baz, qux ); ok 4236 indent valid foo(bar, baz, qux ); ok 4237 indent valid foo(bar, baz, qux, barbaz, barqux, bazqux); ok 4238 indent valid foo(bar, 1 + 2, !baz, new Car('!') ); ok 4239 indent valid foo( (bar) ); ok 4240 indent valid foo( (bar) ); ok 4241 indent valid var foo = function() { return bar( [{ }].concat(baz) ); }; ok 4242 indent valid return ( foo ); ok 4243 indent valid return ( foo ) ok 4244 indent valid var foo = [ bar, baz ] ok 4245 indent valid var foo = [bar, baz, qux ] ok 4246 indent valid var foo = [bar, baz, qux ] ok 4247 indent valid var foo = [bar, baz, qux ] ok 4248 indent valid var foo = [bar, baz, qux ] ok 4249 indent valid var foo = [bar, baz, qux ] ok 4250 indent valid var foo = [ { bar: 1, baz: 2 }, { bar: 3, baz: 4 } ] ok 4251 indent valid var foo = { bar: 1, baz: 2 }; ok 4252 indent valid var foo = { foo: 1, bar: 2, baz: 3 } ok 4253 indent valid var foo = [ { foo: 1 } ] ok 4254 indent valid function foo() { [ foo ] } ok 4255 indent valid [ ] ok 4256 indent valid [ ] ok 4257 indent valid { } ok 4258 indent valid { } ok 4259 indent valid var foo = [ [ 1 ] ] ok 4260 indent valid var foo = [ 1, [ 2 ] ]; ok 4261 indent valid var foo = bar(1, [ 2, 3 ] ); ok 4262 indent valid var foo = [ ]() ok 4263 indent valid const lambda = foo => { Object.assign({}, filterName, { display } ); } ok 4264 indent valid const lambda = foo => { Object.assign({}, filterName, { display } ); } ok 4265 indent valid var foo = function() { window.foo('foo', { foo: 'bar', bar: { foo: 'bar' } } ); } ok 4266 indent valid echo = spawn('cmd.exe', ['foo', 'bar', 'baz']); ok 4267 indent valid if (foo) bar(); // Otherwise, if foo is false, do baz. // baz is very important. else { baz(); } ok 4268 indent valid if ( foo && bar || baz && qux // This line is ignored because BinaryExpressions are not checked. ) { qux(); } ok 4269 indent valid [ ] || [ ] ok 4270 indent valid ( [ ] || [ ] ) ok 4271 indent valid 1 + ( 1 ) ok 4272 indent valid ( foo && ( bar || baz ) ) ok 4273 indent valid foo || ( bar ) ok 4274 indent valid foo || ( bar ) ok 4275 indent valid var foo = 1; ok 4276 indent valid var foo = 1, bar = 2; ok 4277 indent valid switch (foo) { case bar: { baz(); } } ok 4278 indent valid `foo${ bar}` ok 4279 indent valid `foo${ `bar${ baz}`}` ok 4280 indent valid `foo${ `bar${ baz }` }` ok 4281 indent valid `foo${ ( bar ) }` ok 4282 indent valid foo(` bar `, { baz: 1 }); ok 4283 indent valid function foo() { `foo${bar}baz${ qux}foo${ bar}baz` } ok 4284 indent valid JSON .stringify( { ok: true } ); ok 4285 indent valid foo = bar = baz; ok 4286 indent valid foo = bar = baz; ok 4287 indent valid function foo() { const template = `this indentation is not checked because it's part of a template literal.`; } ok 4288 indent valid function foo() { const template = `the indentation of a ${ node.type } node is checked.`; } ok 4289 indent valid JSON .stringify( { test: 'test' } ); ok 4290 indent valid [ foo, // comment // another comment bar ] ok 4291 indent valid if (foo) { /* comment */ bar(); } ok 4292 indent valid function foo() { return ( 1 ); } ok 4293 indent valid function foo() { return ( 1 ) } ok 4294 indent valid if ( foo && !( bar ) ) {} ok 4295 indent valid var abc = [ ( '' ), def, ] ok 4296 indent valid var abc = [ ( '' ), ( 'bar' ) ] ok 4297 indent valid function f() { return asyncCall() .then( 'some string', [ 1, 2, 3 ] ); } ok 4298 indent valid function f() { return asyncCall() .then( 'some string', [ 1, 2, 3 ] ); } ok 4299 indent valid var x = [ [1], [2] ] ok 4300 indent valid var y = [ {a: 1}, {b: 2} ] ok 4301 indent valid foo( ) ok 4302 indent valid foo( bar, { baz: 1 } ) ok 4303 indent valid new Foo ok 4304 indent valid new (Foo) ok 4305 indent valid if (Foo) { new Foo } ok 4306 indent valid var foo = 0, bar = 0, baz = 0; export { foo, bar, baz } ok 4307 indent valid foo ? bar : baz ok 4308 indent valid foo ? bar : baz ok 4309 indent valid foo ? bar : baz ok 4310 indent valid foo ? bar : baz ok 4311 indent valid foo ? bar : baz ? qux : foobar ? boop : beep ok 4312 indent valid foo ? bar : baz ? qux : foobar ? boop : beep ok 4313 indent valid var a = foo ? bar : baz ? qux : foobar ? boop : /*else*/ beep ok 4314 indent valid var a = foo ? bar : baz ok 4315 indent valid var a = foo ? bar : baz ok 4316 indent valid a = foo ? bar : baz ? qux : foobar ? boop : /*else*/ beep ok 4317 indent valid a = foo ? bar : baz ok 4318 indent valid a = foo ? bar : baz ok 4319 indent valid foo( foo ? bar : baz ? qux : foobar ? boop : /*else*/ beep ) ok 4320 indent valid function wrap() { return ( foo ? bar : baz ? qux : foobar ? boop : /*else*/ beep ) } ok 4321 indent valid function wrap() { return foo ? bar : baz } ok 4322 indent valid function wrap() { return ( foo ? bar : baz ) } ok 4323 indent valid foo( foo ? bar : baz ) ok 4324 indent valid foo(foo ? bar : baz ) ok 4325 indent valid foo ? bar : baz ? qux : foobar ? boop : beep ok 4326 indent valid foo ? bar : baz ? qux : foobar ? boop : beep ok 4327 indent valid [,] ok 4328 indent valid [,] ok 4329 indent valid [ , foo ] ok 4330 indent valid [sparse, , array]; ok 4331 indent valid foo.bar('baz', function(err) { qux; }); ok 4332 indent valid foo.bar(function() { cookies; }).baz(function() { cookies; }); ok 4333 indent valid foo.bar().baz(function() { cookies; }).qux(function() { cookies; }); ok 4334 indent valid ( { foo: 1, baz: 2 } ); ok 4335 indent valid foo(() => { bar; }, () => { baz; }) ok 4336 indent valid [ foo, bar ].forEach(function() { baz; }) ok 4337 indent valid foo = bar[ baz ]; ok 4338 indent valid foo[ bar ]; ok 4339 indent valid foo[ ( bar ) ]; ok 4340 indent valid if (foo) bar; else if (baz) qux; ok 4341 indent valid if (foo) bar() ; [1, 2, 3].map(baz) ok 4342 indent valid if (foo) ; ok 4343 indent valid x => {} ok 4344 indent valid import {foo} from 'bar'; ok 4345 indent valid import 'foo' ok 4346 indent valid import { foo, bar, baz, } from 'qux'; ok 4347 indent valid import { foo, bar, baz, } from 'qux'; ok 4348 indent valid import { apple as a, banana as b } from 'fruits'; import { cat } from 'animals'; ok 4349 indent valid import { declaration, can, be, turned } from 'off'; ok 4350 indent valid ( a ) => b => { c } ok 4351 indent valid ( a ) => b => c => d => { e } ok 4352 indent valid ( a ) => ( b ) => { c } ok 4353 indent valid if ( foo ) bar( baz ); ok 4354 indent valid if (foo) { bar(); } ok 4355 indent valid function foo(bar) { baz(); } ok 4356 indent valid () => ({}) ok 4357 indent valid () => (({})) ok 4358 indent valid ( () => ({}) ) ok 4359 indent valid var x = function foop(bar) { baz(); } ok 4360 indent valid var x = (bar) => { baz(); } ok 4361 indent valid class Foo { constructor() { foo(); } bar() { baz(); } } ok 4362 indent valid class Foo extends Bar { constructor() { foo(); } bar() { baz(); } } ok 4363 indent valid ( class Foo { constructor() { foo(); } bar() { baz(); } } ) ok 4364 indent valid switch (foo) { case 1: bar(); } ok 4365 indent valid foo .bar(function() { baz }) ok 4366 indent valid foo .bar(function() { baz }) ok 4367 indent valid foo [bar](function() { baz }) ok 4368 indent valid foo. bar. baz ok 4369 indent valid foo .bar(function() { baz }) ok 4370 indent valid foo .bar(function() { baz }) ok 4371 indent valid foo [bar](function() { baz }) ok 4372 indent valid foo. bar. baz ok 4373 indent valid foo = bar( ).baz( ) ok 4374 indent valid foo[ bar ? baz : qux ] ok 4375 indent valid function foo() { return foo ? bar : baz } ok 4376 indent valid throw foo ? bar : baz ok 4377 indent valid foo( bar ) ? baz : qux ok 4378 indent valid foo [ bar ] .baz(function() { quz(); }) ok 4379 indent valid [ foo ][ "map"](function() { qux(); }) ok 4380 indent valid ( a.b(function() { c; }) ) ok 4381 indent valid ( foo ).bar(function() { baz(); }) ok 4382 indent valid new Foo( bar .baz .qux ) ok 4383 indent valid const foo = a.b(), longName = (baz( 'bar', 'bar' )); ok 4384 indent valid const foo = a.b(), longName = (baz( 'bar', 'bar' )); ok 4385 indent valid const foo = a.b(), longName = baz( 'bar', 'bar' ); ok 4386 indent valid const foo = a.b(), longName = baz( 'bar', 'bar' ); ok 4387 indent valid const foo = a.b(), longName = baz( 'bar', 'bar' ); ok 4388 indent valid const foo = a.b(), longName = baz( 'bar', 'bar' ); ok 4389 indent valid const foo = a.b(), longName = ('fff'); ok 4390 indent valid const foo = a.b(), longName = ('fff'); ok 4391 indent valid const foo = a.b(), longName = ('fff'); ok 4392 indent valid const foo = a.b(), longName = ('fff'); ok 4393 indent valid const foo = a.b(), longName = ( 'fff' ); ok 4394 indent valid const foo = a.b(), longName = ( 'fff' ); ok 4395 indent valid const foo = a.b(), longName =( 'fff' ); ok 4396 indent valid const foo = a.b(), longName =( 'fff' ); ok 4397 indent valid interface Foo { bar: string; baz: number; } ok 4398 indent valid namespace Foo { const bar = 3, baz = 2; if (true) { const bax = 3; } } ok 4399 indent valid abstract class Foo { public bar() { let aaa = 4, boo; if (true) { boo = 3; } boo = 3 + 2; } } ok 4400 indent valid function foo() { function bar() { abstract class X { public baz() { if (true) { qux(); } } } } } ok 4401 indent valid namespace Unknown { function foo() { function bar() { abstract class X { public baz() { if (true) { qux(); } } } } } } ok 4402 indent valid type httpMethod = 'GET' | 'POST' | 'PUT'; ok 4403 indent valid type httpMethod = 'GET' | 'POST' | 'PUT'; ok 4404 indent valid foo(`foo `, { ok: true }, { ok: false }) ok 4405 indent valid foo(tag`foo `, { ok: true }, { ok: false } ) ok 4406 indent valid async function test() { const { foo, bar, } = await doSomethingAsync( 1, 2, 3, ); } ok 4407 indent valid function* test() { const { foo, bar, } = yield doSomethingAsync( 1, 2, 3, ); } ok 4408 indent valid ({ a: b } = +foo( bar )); ok 4409 indent valid const { foo, bar, } = typeof foo( 1, 2, 3, ); ok 4410 indent valid const { foo, bar, } = +( foo ); ok 4411 indent valid <Foo a="b" c="d"/>; ok 4412 indent valid <Foo a="b" c="d" />; ok 4413 indent valid var foo = <Bar a="b" c="d"/>; ok 4414 indent valid var foo = <Bar a="b" c="d" />; ok 4415 indent valid var foo = (<Bar a="b" c="d" />); ok 4416 indent valid var foo = ( <Bar a="b" c="d" /> ); ok 4417 indent valid < Foo a="b" c="d" />; ok 4418 indent valid <Foo a="b" c="d"/>; ok 4419 indent valid < Foo a="b" c="d"/>; ok 4420 indent valid <a href="foo">bar</a>; ok 4421 indent valid <a href="foo"> bar </a>; ok 4422 indent valid <a href="foo" > bar </a>; ok 4423 indent valid <a href="foo"> bar </a>; ok 4424 indent valid < a href="foo"> bar </a>; ok 4425 indent valid <a href="foo"> bar </ a>; ok 4426 indent valid <a href="foo"> bar </a >; ok 4427 indent valid var foo = <a href="bar"> baz </a>; ok 4428 indent valid var foo = <a href="bar" > baz </a>; ok 4429 indent valid var foo = <a href="bar"> baz </a>; ok 4430 indent valid var foo = < a href="bar"> baz </a>; ok 4431 indent valid var foo = <a href="bar"> baz </ a>; ok 4432 indent valid var foo = <a href="bar"> baz </a > ok 4433 indent valid var foo = (<a href="bar"> baz </a>); ok 4434 indent valid var foo = ( <a href="bar">baz</a> ); ok 4435 indent valid var foo = ( <a href="bar"> baz </a> ); ok 4436 indent valid var foo = ( <a href="bar"> baz </a> ); ok 4437 indent valid var foo = <a href="bar">baz</a>; ok 4438 indent valid <a> { } </a> ok 4439 indent valid <a> { foo } </a> ok 4440 indent valid function foo() { return ( <a> { b.forEach(() => { // comment a = c .d() .e(); }) } </a> ); } ok 4441 indent valid <App></App> ok 4442 indent valid <App> </App> ok 4443 indent valid <App> <Foo /> </App> ok 4444 indent valid <App> <Foo /> </App> ok 4445 indent valid <App> <Foo /> </App> ok 4446 indent valid function App() { return <App> <Foo /> </App>; } ok 4447 indent valid function App() { return (<App> <Foo /> </App>); } ok 4448 indent valid function App() { return ( <App> <Foo /> </App> ); } ok 4449 indent valid it( ( <div> <span /> </div> ) ) ok 4450 indent valid it( (<div> <span /> <span /> <span /> </div>) ) ok 4451 indent valid ( <div> <span /> </div> ) ok 4452 indent valid { head.title && <h1> {head.title} </h1> } ok 4453 indent valid { head.title && <h1> {head.title} </h1> } ok 4454 indent valid { head.title && ( <h1> {head.title} </h1>) } ok 4455 indent valid { head.title && ( <h1> {head.title} </h1> ) } ok 4456 indent valid [ <div />, <div /> ] ok 4457 indent valid <div> { [ <Foo />, <Bar /> ] } </div> ok 4458 indent valid <div> {foo && [ <Foo />, <Bar /> ] } </div> ok 4459 indent valid <div> bar <div> bar bar {foo} bar </div> </div> ok 4460 indent valid foo ? <Foo /> : <Bar /> ok 4461 indent valid foo ? <Foo /> : <Bar /> ok 4462 indent valid foo ? <Foo /> : <Bar /> ok 4463 indent valid <div> {!foo ? <Foo onClick={this.onClick} /> : <Bar onClick={this.onClick} /> } </div> ok 4464 indent valid <span> {condition ? <Thing foo={`bar`} /> : <Thing/> } </span> ok 4465 indent valid <span> {condition ? <Thing foo={"bar"} /> : <Thing/> } </span> ok 4466 indent valid function foo() { <span> {condition ? <Thing foo={bar} /> : <Thing/> } </span> } ok 4467 indent valid <App foo /> ok 4468 indent valid <App foo /> ok 4469 indent valid <App foo /> ok 4470 indent valid <App foo /> ok 4471 indent valid <App foo /> ok 4472 indent valid <App foo ></App> ok 4473 indent valid <App foo={function() { console.log('bar'); }} /> ok 4474 indent valid <App foo={function() { console.log('bar'); }} /> ok 4475 indent valid var x = function() { return <App foo={function() { console.log('bar'); }} /> } ok 4476 indent valid var x = <App foo={function() { console.log('bar'); }} /> ok 4477 indent valid <Provider store > <App foo={function() { console.log('bar'); }} /> </Provider> ok 4478 indent valid <Provider store > {baz && <App foo={function() { console.log('bar'); }} />} </Provider> ok 4479 indent valid <App foo /> ok 4480 indent valid <App foo ></App> ok 4481 indent valid <App foo={function() { console.log('bar'); }} /> ok 4482 indent valid var x = <App foo={function() { console.log('bar'); }} /> ok 4483 indent valid <App foo /> ok 4484 indent valid <div> unrelated{ foo } </div> ok 4485 indent valid <div>unrelated{ foo } </div> ok 4486 indent valid < foo .bar .baz > foo </ foo. bar. baz > ok 4487 indent valid < input type= "number" /> ok 4488 indent valid < input type= {'number'} /> ok 4489 indent valid < input type ="number" /> ok 4490 indent valid foo ? ( bar ) : ( baz ) ok 4491 indent valid foo ? ( <div> </div> ) : ( <span> </span> ) ok 4492 indent valid <div> { /* foo */ } </div> ok 4493 indent valid <div> { ( 1 ) } </div> ok 4494 indent valid function A() { return ( <div> { b && ( <div> </div> ) } </div> ); } ok 4495 indent valid <div>foo <div>bar</div> </div> ok 4496 indent valid <small>Foo bar  <a>baz qux</a>. </small> ok 4497 indent valid a(b , c ) ok 4498 indent valid a( new B({ c, }) ); ok 4499 indent valid foo ? bar : baz ok 4500 indent valid class Foo { foo() { bar(); } } ok 4501 indent valid class Foo { foo() { bar(); } } ok 4502 indent valid foo({ bar: 1 }, { baz: 2 }, { qux: 3 }) ok 4503 indent valid foo .bar ok 4504 indent valid $(function() { foo(); bar(); }); ok 4505 indent valid <Foo bar="1" /> ok 4506 indent valid foo && <Bar > </Bar> ok 4507 indent valid (function($) { $(function() { foo; }); }()) ok 4508 indent valid const value = ( condition ? valueIfTrue : valueIfFalse ); ok 4509 indent valid var a = 0, b = 0, c = 0; export default foo( a, b, { c } ) ok 4510 indent valid foobar = baz ? qux : boop ok 4511 indent valid ` SELECT ${ foo } FROM THE_DATABASE ` ok 4512 indent valid <foo prop='bar' > Text </foo> ok 4513 indent valid { var x = 1, y = 2; } ok 4514 indent valid var x = 1, y = 2; var z; ok 4515 indent valid [ foo(), bar ] ok 4516 indent valid if (foo) { doSomething(); // Intentionally unindented comment doSomethingElse(); } ok 4517 indent valid if (foo) { doSomething(); /* Intentionally unindented comment */ doSomethingElse(); } ok 4518 indent valid const obj = { foo () { return condition ? // comment 1 : 2 } } ok 4519 indent valid if (foo) { // Comment can align with code immediately above even if "incorrect" alignment doSomething(); } ok 4520 indent valid if (foo) { doSomething(); // Comment can align with code immediately below even if "incorrect" alignment } ok 4521 indent valid if (foo) { // Comment can be in correct alignment even if not aligned with code above/below } ok 4522 indent valid if (foo) { // Comment can be in correct alignment even if gaps between (and not aligned with) code above/below } ok 4523 indent valid [{ foo }, // Comment between nodes { bar }]; ok 4524 indent valid [{ foo }, // Comment between nodes { // comment bar }]; ok 4525 indent invalid var a = b; if (a) { b(); } ok 4526 indent invalid require('http').request({hostname: 'localhost', port: 80}, function(res) { res.end(); }); ok 4527 indent invalid if (array.some(function(){ return true; })) { a++; // -> b++; c++; // <- } ok 4528 indent invalid if (a){ b=c; c=d; e=f; } ok 4529 indent invalid if (a){ b=c; c=d; e=f; } ok 4530 indent invalid if (a) { var b = c; var d = e * f; var e = f; // <- // -> function g() { if (h) { var i = j; } // <- } // <- while (k) l++; while (m) { n--; // -> } // <- do { o = p + q; // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS o = p + q; } while(r); // <- for (var s in t) { u++; } for (;;) { v++; // <- } if ( w ) { x++; } else if (y) { z++; // <- aa++; } else { // <- bb++; // -> } // -> } /**/var b; // NO ERROR: single line multi-line comments followed by code is OK /* * */ var b; // NO ERROR: multi-line comments followed by code is OK var arr = [ a, b, c, function (){ d }, // <- {}, { a: b, c: d, d: e }, [ f, g, h, i ], [j] ]; var obj = { a: { b: { c: d, e: f, g: h + i // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS } }, g: [ h, i, j, k ] }; var arrObject = {a:[ a, b, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE c ]}; var objArray = [{ a: b, b: c, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE c: d }]; var arrArray = [[ a, b, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE c ]]; var objObject = {a:{ a: b, b: c, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE c: d }}; switch (a) { case 'a': var a = 'b'; // -> break; case 'b': var a = 'b'; break; case 'c': var a = 'b'; // <- break; case 'd': var a = 'b'; break; // -> case 'f': var a = 'b'; break; case 'g': { var a = 'b'; break; } case 'z': default: break; // <- } a.b('hi') .c(a.b()) // <- .d(); // <- if ( a ) { if ( b ) { d.e(f) // -> .g() // -> .h(); // -> i.j(m) .k() // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS .l(); // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS n.o(p) // <- .q() // <- .r(); // <- } } var a = b, c = function () { h = i; // -> j = k; l = m; // <- }, e = { f: g, n: o, p: q }, r = [ s, t, u ]; var a = function () { b = c; // -> d = e; f = g; // <- }; function c(a, b) { if (a || (a && b)) { // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS return d; } } if ( a || b ) { var x; // -> var c, d = function(a, b) { // <- a; // -> b; c; // <- } } a({ d: 1 }); a( 1 ); a( b({ d: 1 }) ); a( b( c({ d: 1, e: 1, f: 1 }) ) ); a({ d: 1 }); aa( b({ // NO ERROR: CallExpression args not linted by default c: d, // -> e: f, f: g }) // -> ); aaaaaa( b, c, { d: a } ); a(b, c, d, e, f, g // NO ERROR: alignment of arguments of callExpression not checked ); // <- a( ); // <- aaaaaa( b, c, { d: a }, { e: f } ); a.b() .c(function(){ var a; }).d.e; if (a == 'b') { if (c && d) e = f else g('h').i('j') } a = function (b, c) { return a(function () { var d = e var f = g var h = i if (!j) k('l', (m = n)) if (o) p else if (q) r }) } var a = function() { "b" .replace(/a/, "a") .replace(/bc?/, function(e) { return "b" + (e.f === 2 ? "c" : "f"); }) .replace(/d/, "d"); }; $(b) .on('a', 'b', function() { $(c).e('f'); }) .on('g', 'h', function() { $(i).j('k'); }); a .b('c', 'd'); // NO ERROR: CallExpression args not linted by default a .b('c', [ 'd', function(e) { e++; }]); var a = function() { a++; b++; // <- c++; // <- }, b; var b = [ a, b, c ], c; var c = { a: 1, b: 2, c: 3 }, d; // holes in arrays indentation x = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; try { a++; b++; // <- c++; // -> } catch (d) { e++; f++; // <- g++; // -> } finally { h++; i++; // <- j++; // -> } if (array.some(function(){ return true; })) { a++; // -> b++; c++; // <- } var a = b.c(function() { d++; }), e; switch (true) { case (a && b): case (c // -> && d): case (e // <- && f): case (g && h): var i = j; // <- var k = l; var m = n; // -> } if (a) { b(); } else { c(); // -> d(); e(); // <- } if (a) b(); else { c(); // -> d(); e(); // <- } if (a) { b(); } else c(); if (a) { b(); } else c(); a(); if( "very very long multi line" + "with weird indentation" ) { b(); a(); // -> c(); // <- } a( "very very long multi line" + "with weird indentation", function() { b(); a(); // -> c(); // <- }); // <- a = function(content, dom) { b(); c(); // <- d(); // -> }; a = function(content, dom) { b(); c(); // <- d(); // -> }; a = function(content, dom) { b(); // -> }; a = function(content, dom) { b(); // -> }; a('This is a terribly long description youll ' + 'have to read', function () { b(); // <- c(); // <- }); // <- if ( array.some(function(){ return true; }) ) { a++; // -> b++; c++; // <- } function c(d) { return { e: function(f, g) { } }; } function a(b) { switch(x) { case 1: if (foo) { return 5; } } } function a(b) { switch(x) { case 1: c; } } function a(b) { switch(x) { case 1: c; } } function test() { var a = 1; { a(); } } { a(); } function a(b) { switch(x) { case 1: { // <- a(); // -> } break; default: { b(); } } } switch (a) { default: if (b) c(); } function test(x) { switch (x) { case 1: return function() { var a = 5; return a; }; } } switch (a) { default: if (b) c(); } ok 4531 indent invalid switch(value){ case "1": a(); break; case "2": a(); break; default: a(); break; } ok 4532 indent invalid var x = 0 && { a: 1, b: 2 }; ok 4533 indent invalid switch(value){ case "1": a(); break; case "2": a(); break; default: break; } ok 4534 indent invalid switch(value){ case "1": case "2": a(); break; default: break; } switch(value){ case "1": break; case "2": a(); break; default: a(); break; } ok 4535 indent invalid switch(value){ case "1": a(); break; case "2": break; default: break; } ok 4536 indent invalid var obj = {foo: 1, bar: 2}; with (obj) { console.log(foo + bar); } ok 4537 indent invalid switch (a) { case '1': b(); break; default: c(); break; } ok 4538 indent invalid var foo = function(){ foo .bar } ok 4539 indent invalid ( foo .bar ) ok 4540 indent invalid var foo = function(){ foo .bar } ok 4541 indent invalid var foo = () => { foo .bar } ok 4542 indent invalid TestClass.prototype.method = function () { return Promise.resolve(3) .then(function (x) { return x; }); }; ok 4543 indent invalid while (a) b(); ok 4544 indent invalid lmn = [{ a: 1 }, { b: 2 }, { x: 2 }]; ok 4545 indent invalid for (var foo = 1; foo < 10; foo++) {} ok 4546 indent invalid for ( var foo = 1; foo < 10; foo++ ) {} ok 4547 indent invalid for (;;) b(); ok 4548 indent invalid for (a in x) b(); ok 4549 indent invalid do b(); while(true) ok 4550 indent invalid if(true) b(); ok 4551 indent invalid var test = { a: 1, b: 2 }; ok 4552 indent invalid var a = function() { a++; b++; c++; }, b; ok 4553 indent invalid var a = 1, b = 2, c = 3; ok 4554 indent invalid [a, b, c].forEach((index) => { index; }); ok 4555 indent invalid [a, b, c].forEach(function(index){ return index; }); ok 4556 indent invalid [a, b, c].forEach(function(index){ return index; }); ok 4557 indent invalid (foo) .bar([ baz ]); ok 4558 indent invalid var x = ['a', 'b', 'c' ]; ok 4559 indent invalid var x = [ 'a', 'b', 'c' ]; ok 4560 indent invalid var x = [ 'a', 'b', 'c', 'd']; ok 4561 indent invalid var x = [ 'a', 'b', 'c' ]; ok 4562 indent invalid [[ ], function( foo ) {} ] ok 4563 indent invalid define([ 'foo' ], function( bar ) { baz; } ) ok 4564 indent invalid while (1 < 2) console.log('foo') console.log('bar') ok 4565 indent invalid function salutation () { switch (1) { case 0: return console.log('hi') case 1: return console.log('hey') } } ok 4566 indent invalid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth, height, rotate; ok 4567 indent invalid switch (a) { case '1': b(); break; default: c(); break; } ok 4568 indent invalid var geometry, rotate; ok 4569 indent invalid var geometry, rotate; ok 4570 indent invalid var geometry, rotate; ok 4571 indent invalid let geometry, rotate; ok 4572 indent invalid let foo = 'foo', bar = bar; const a = 'a', b = 'b'; ok 4573 indent invalid var foo = 'foo', bar = bar; ok 4574 indent invalid if(true) if (true) if (true) console.log(val); ok 4575 indent invalid var a = { a: 1, b: 2 } ok 4576 indent invalid var a = [ a, b ] ok 4577 indent invalid let a = [ a, b ] ok 4578 indent invalid var a = new Test({ a: 1 }), b = 4; ok 4579 indent invalid var a = new Test({ a: 1 }), b = 4; const c = new Test({ a: 1 }), d = 4; ok 4580 indent invalid var abc = 5, c = 2, xyz = { a: 1, b: 2 }; ok 4581 indent invalid var abc = { a: 1, b: 2 }; ok 4582 indent invalid var foo = { bar: 1, baz: { qux: 2 } }, bar = 1; ok 4583 indent invalid var path = require('path') , crypto = require('crypto') ; ok 4584 indent invalid var a = 1 ,b = 2 ; ok 4585 indent invalid class A{ constructor(){} a(){} get b(){} } ok 4586 indent invalid var A = class { constructor(){} a(){} get b(){} }; ok 4587 indent invalid var a = 1, B = class { constructor(){} a(){} get b(){} }; ok 4588 indent invalid { if(a){ foo(); } else{ bar(); } } ok 4589 indent invalid { if(a){ foo(); } else bar(); } ok 4590 indent invalid { if(a) foo(); else bar(); } ok 4591 indent invalid (function(){ function foo(x) { return x + 1; } })(); ok 4592 indent invalid (function(){ function foo(x) { return x + 1; } })(); ok 4593 indent invalid if(data) { console.log('hi'); } ok 4594 indent invalid var ns = function(){ function fooVar(x) { return x + 1; } }(x); ok 4595 indent invalid var obj = { foo: function() { return true; }() }; ok 4596 indent invalid typeof function() { function fooVar(x) { return x + 1; } }(); ok 4597 indent invalid { !function(x) { return x + 1; }() }; ok 4598 indent invalid Buffer .toString() ok 4599 indent invalid Buffer .indexOf('a') .toString() ok 4600 indent invalid Buffer. length ok 4601 indent invalid Buffer. length ok 4602 indent invalid Buffer .foo .bar ok 4603 indent invalid function foo() { new .target } ok 4604 indent invalid function foo() { new. target } ok 4605 indent invalid if (foo) bar(); else if (baz) foobar(); else if (qux) qux(); ok 4606 indent invalid if (foo) bar(); else if (baz) foobar(); else qux(); ok 4607 indent invalid foo(); if (baz) foobar(); else qux(); ok 4608 indent invalid if (foo) bar(); else if (baz) foobar(); else if (bip) { qux(); } ok 4609 indent invalid if (foo) bar(); else if (baz) { foobar(); } else if (boop) { qux(); } ok 4610 indent invalid function foo(aaa, bbb, ccc, ddd) { bar(); } ok 4611 indent invalid function foo(aaa, bbb, ccc, ddd) { bar(); } ok 4612 indent invalid function foo(aaa, bbb, ccc) { bar(); } ok 4613 indent invalid function foo(aaa, bbb, ccc, ddd, eee, fff) { bar(); } ok 4614 indent invalid function foo(aaa, bbb) { bar(); } ok 4615 indent invalid function foo( aaa, bbb) { bar(); } ok 4616 indent invalid var foo = function(aaa, bbb, ccc, ddd) { bar(); } ok 4617 indent invalid var foo = function(aaa, bbb, ccc) { bar(); } ok 4618 indent invalid var foo = function(aaa, bbb, ccc, ddd, eee, fff) { bar(); } ok 4619 indent invalid var foo = function( aaa, bbb, ccc, ddd, eee) { bar(); } ok 4620 indent invalid var foo = bar; var baz = qux; ok 4621 indent invalid function foo() { bar(); baz(); qux(); } ok 4622 indent invalid function foo() { bar(); } ok 4623 indent invalid function foo() { function bar() { baz(); } } ok 4624 indent invalid function foo() { function bar(baz, qux) { foobar(); } } ok 4625 indent invalid function foo() { var bar = function(baz, qux) { foobar(); }; } ok 4626 indent invalid foo.bar( baz, qux, function() { qux; } ); ok 4627 indent invalid { try { } catch (err) { } finally { } } ok 4628 indent invalid { do { } while (true) } ok 4629 indent invalid function foo() { return ( 1 ) } ok 4630 indent invalid function foo() { return ( 1 ); } ok 4631 indent invalid function test(){ switch(length){ case 1: return function(a){ return fn.call(that, a); }; } } ok 4632 indent invalid function foo() { return 1 } ok 4633 indent invalid foo( bar, baz, qux); ok 4634 indent invalid foo( bar, baz); ok 4635 indent invalid foo(bar, baz, qux); ok 4636 indent invalid foo(bar, baz, qux); ok 4637 indent invalid foo( bar, baz); ok 4638 indent invalid foo(bar, 1 + 2, !baz, new Car('!') ); ok 4639 indent invalid return ( foo ); ok 4640 indent invalid return ( foo ) ok 4641 indent invalid if (foo) { /* comment */bar(); } ok 4642 indent invalid foo('bar', /** comment */{ ok: true }); ok 4643 indent invalid foo( (bar) ); ok 4644 indent invalid (( foo )) ok 4645 indent invalid foo ? bar : baz ok 4646 indent invalid [ foo ? bar : baz, qux ] ok 4647 indent invalid foo(); // comment /* multiline comment */ bar(); // trailing comment ok 4648 indent invalid // comment ok 4649 indent invalid foo // comment ok 4650 indent invalid // comment foo ok 4651 indent invalid [ // no elements ] ok 4652 indent invalid var { foo, bar, baz: qux, foobar: baz = foobar } = qux; ok 4653 indent invalid const { a } = { a: 1 } ok 4654 indent invalid var foo = [ bar, baz ] ok 4655 indent invalid var foo = [bar, baz, qux ] ok 4656 indent invalid var foo = [bar, baz, qux ] ok 4657 indent invalid var foo = [bar, baz, qux ] ok 4658 indent invalid var foo = [bar, baz, qux ] ok 4659 indent invalid var foo = [bar, baz, qux ] ok 4660 indent invalid var foo = [ { bar: 1, baz: 2 }, { bar: 3, qux: 4 } ] ok 4661 indent invalid var foo = { bar: 1, baz: 2 }; ok 4662 indent invalid var quux = { foo: 1, bar: 2, baz: 3 } ok 4663 indent invalid function foo() { [ foo ] } ok 4664 indent invalid var [ foo, bar, baz, foobar = baz ] = qux; ok 4665 indent invalid import { foo, bar, baz } from 'qux'; ok 4666 indent invalid import { foo, bar, baz, } from 'qux'; ok 4667 indent invalid import { foo, bar, baz, } from 'qux'; ok 4668 indent invalid var foo = 0, bar = 0, baz = 0; export { foo, bar, baz }; ok 4669 indent invalid var foo = 0, bar = 0, baz = 0; export { foo, bar, baz } from 'qux'; ok 4670 indent invalid var folder = filePath .foo() .bar; ok 4671 indent invalid for (const foo of bar) baz(); ok 4672 indent invalid var x = () => 5; ok 4673 indent invalid foo && ( bar ) ok 4674 indent invalid foo && !bar( ) ok 4675 indent invalid foo && ![].map(() => { bar(); }) ok 4676 indent invalid [ ] || [ ] ok 4677 indent invalid foo || ( bar ) ok 4678 indent invalid 1 + ( 1 ) ok 4679 indent invalid `foo${ bar}` ok 4680 indent invalid `foo${ `bar${ baz}`}` ok 4681 indent invalid `foo${ `bar${ baz }` }` ok 4682 indent invalid `foo${ ( bar ) }` ok 4683 indent invalid function foo() { `foo${bar}baz${ qux}foo${ bar}baz` } ok 4684 indent invalid function foo() { const template = `the indentation of a curly element in a ${ node.type } node is checked.`; } ok 4685 indent invalid function foo() { const template = `this time the closing curly is at the end of the line ${ foo} so the spaces before this line aren't removed.`; } ok 4686 indent invalid if (true) { a = ( 1 + 2); } ok 4687 indent invalid if (true) { for (;;) { b(); } } ok 4688 indent invalid function f() { return asyncCall() .then( 'some string', [ 1, 2, 3 ] ); } ok 4689 indent invalid var x = [ [1], [2] ] ok 4690 indent invalid var y = [ {a: 1}, {b: 2} ] ok 4691 indent invalid echo = spawn('cmd.exe', ['foo', 'bar', 'baz']); ok 4692 indent invalid foo( ) ok 4693 indent invalid foo( bar, { baz: 1 } ) ok 4694 indent invalid new Foo ok 4695 indent invalid var foo = 0, bar = 0, baz = 0; export { foo, bar, baz } ok 4696 indent invalid foo ? bar : baz ok 4697 indent invalid foo ? bar : baz ok 4698 indent invalid foo ? bar : baz ok 4699 indent invalid foo ? bar : baz ok 4700 indent invalid foo ? bar : baz ? qux : foobar ? boop : beep ok 4701 indent invalid foo ? bar : baz ? qux : foobar ? boop : beep ok 4702 indent invalid var a = foo ? bar : baz ? qux : foobar ? boop : /*else*/ beep ok 4703 indent invalid var a = foo ? bar : baz ok 4704 indent invalid foo ? bar : baz ? qux : foobar ? boop : beep ok 4705 indent invalid foo ? bar : baz ? qux : foobar ? boop : beep ok 4706 indent invalid foo ? bar : baz ? qux : foobar ? boop : beep ok 4707 indent invalid foo ? bar : baz ? qux : foobar ? boop : beep ok 4708 indent invalid foo.bar('baz', function(err) { qux; }); ok 4709 indent invalid foo.bar(function() { cookies; }).baz(function() { cookies; }); ok 4710 indent invalid foo.bar().baz(function() { cookies; }).qux(function() { cookies; }); ok 4711 indent invalid [ foo, bar ].forEach(function() { baz; }) ok 4712 indent invalid foo[ bar ]; ok 4713 indent invalid foo({ bar: 1, baz: 2 }) ok 4714 indent invalid foo( bar, baz, qux); ok 4715 indent invalid if (foo) bar() ; [1, 2, 3].map(baz) ok 4716 indent invalid if (foo) ; ok 4717 indent invalid import {foo} from 'bar'; ok 4718 indent invalid export {foo} from 'bar'; ok 4719 indent invalid ( a ) => b => { c } ok 4720 indent invalid ( a ) => b => c => d => { e } ok 4721 indent invalid if ( foo ) bar( baz ); ok 4722 indent invalid ( foo )( bar ) ok 4723 indent invalid (() => foo )( bar ) ok 4724 indent invalid (() => { foo(); })( bar ) ok 4725 indent invalid foo. bar. baz ok 4726 indent invalid const foo = a.b(), longName = (baz( 'bar', 'bar' )); ok 4727 indent invalid const foo = a.b(), longName = (baz( 'bar', 'bar' )); ok 4728 indent invalid const foo = a.b(), longName =baz( 'bar', 'bar' ); ok 4729 indent invalid const foo = a.b(), longName =( 'fff' ); ok 4730 indent invalid namespace Foo { const bar = 3, baz = 2; if (true) { const bax = 3; } } ok 4731 indent invalid abstract class Foo { public bar() { let aaa = 4, boo; if (true) { boo = 3; } boo = 3 + 2; } } ok 4732 indent invalid function foo() { function bar() { abstract class X { public baz() { if (true) { qux(); } } } } } ok 4733 indent invalid namespace Unknown { function foo() { function bar() { abstract class X { public baz() { if (true) { qux(); } } } } } } ok 4734 indent invalid <App> <Foo /> </App> ok 4735 indent invalid <App> <Foo /> </App> ok 4736 indent invalid <App> <Foo /> </App> ok 4737 indent invalid function App() { return <App> <Foo /> </App>; } ok 4738 indent invalid function App() { return (<App> <Foo /> </App>); } ok 4739 indent invalid function App() { return ( <App> <Foo /> </App> ); } ok 4740 indent invalid <App> {test} </App> ok 4741 indent invalid <App> {options.map((option, index) => ( <option key={index} value={option.key}> {option.name} </option> ))} </App> ok 4742 indent invalid [ <div />, <div /> ] ok 4743 indent invalid <App> <Foo /> </App> ok 4744 indent invalid foo ? <Foo /> : <Bar /> ok 4745 indent invalid foo ? <Foo /> : <Bar /> ok 4746 indent invalid foo ? ( <Foo /> ) : <Bar /> ok 4747 indent invalid <App foo /> ok 4748 indent invalid <App foo /> ok 4749 indent invalid <App foo ></App> ok 4750 indent invalid const Button = function(props) { return ( <Button size={size} onClick={onClick} > Button Text </Button> ); }; ok 4751 indent invalid var x = function() { return <App foo /> } ok 4752 indent invalid var x = <App foo /> ok 4753 indent invalid var x = ( <Something /> ) ok 4754 indent invalid <App foo /> ok 4755 indent invalid <App foo ></App> ok 4756 indent invalid < foo .bar .baz > foo </ foo. bar. baz > ok 4757 indent invalid < input type= "number" /> ok 4758 indent invalid < input type= {'number'} /> ok 4759 indent invalid < input type ="number" /> ok 4760 indent invalid foo ? ( bar ) : ( baz ) ok 4761 indent invalid foo ? ( <div> </div> ) : ( <span> </span> ) ok 4762 indent invalid <div> { ( 1 ) } </div> ok 4763 indent invalid <div> { /* foo */ } </div> ok 4764 indent invalid <div>foo <div>bar</div> </div> ok 4765 indent invalid <small>Foo bar  <a>baz qux</a>. </small> ok 4766 indent invalid ({ foo }: bar) => baz ok 4767 indent invalid ([ foo ]: bar) => baz ok 4768 indent invalid ({ foo }: {}) => baz ok 4769 indent invalid class Foo { foo() { bar(); } } ok 4770 indent invalid $(function() { foo(); bar(); foo(function() { baz(); }); }); ok 4771 indent invalid (function($) { $(function() { foo; }); })() ok 4772 indent invalid if (foo) { doSomething(); // Intentionally unindented comment doSomethingElse(); } ok 4773 indent invalid if (foo) { doSomething(); /* Intentionally unindented comment */ doSomethingElse(); } ok 4774 indent invalid const obj = { foo () { return condition ? // comment 1 : 2 } } ok 4775 indent invalid if (foo) { // Comment cannot align with code immediately above if there is a whitespace gap doSomething(); } ok 4776 indent invalid if (foo) { foo( bar); // Comment cannot align with code immediately below if there is a whitespace gap } ok 4777 indent invalid [{ foo }, // Comment between nodes { bar }]; ok 4778 init-declarations valid var foo = null; ok 4779 init-declarations valid foo = true; ok 4780 init-declarations valid var foo = 1, bar = false, baz = {}; ok 4781 init-declarations valid function foo() { var foo = 0; var bar = []; } ok 4782 init-declarations valid var fn = function() {}; ok 4783 init-declarations valid var foo = bar = 2; ok 4784 init-declarations valid for (var i = 0; i < 1; i++) {} ok 4785 init-declarations valid for (var foo in []) {} ok 4786 init-declarations valid for (var foo of []) {} ok 4787 init-declarations valid let a = true; ok 4788 init-declarations valid const a = {}; ok 4789 init-declarations valid function foo() { let a = 1, b = false; if (a) { let c = 3, d = null; } } ok 4790 init-declarations valid function foo() { const a = 1, b = true; if (a) { const c = 3, d = null; } } ok 4791 init-declarations valid function foo() { let a = 1; const b = false; var c = true; } ok 4792 init-declarations valid var foo; ok 4793 init-declarations valid var foo, bar, baz; ok 4794 init-declarations valid function foo() { var foo; var bar; } ok 4795 init-declarations valid let a; ok 4796 init-declarations valid const a = 1; ok 4797 init-declarations valid function foo() { let a, b; if (a) { let c, d; } } ok 4798 init-declarations valid function foo() { const a = 1, b = true; if (a) { const c = 3, d = null; } } ok 4799 init-declarations valid function foo() { let a; const b = false; var c; } ok 4800 init-declarations valid for(var i = 0; i < 1; i++){} ok 4801 init-declarations valid for (var foo in []) {} ok 4802 init-declarations valid for (var foo of []) {} ok 4803 init-declarations invalid var foo; ok 4804 init-declarations invalid for (var a in []) var foo; ok 4805 init-declarations invalid var foo, bar = false, baz; ok 4806 init-declarations invalid function foo() { var foo = 0; var bar; } ok 4807 init-declarations invalid function foo() { var foo; var bar = foo; } ok 4808 init-declarations invalid let a; ok 4809 init-declarations invalid function foo() { let a = 1, b; if (a) { let c = 3, d = null; } } ok 4810 init-declarations invalid function foo() { let a; const b = false; var c; } ok 4811 init-declarations invalid var foo = bar = 2; ok 4812 init-declarations invalid var foo = true; ok 4813 init-declarations invalid var foo, bar = 5, baz = 3; ok 4814 init-declarations invalid function foo() { var foo; var bar = foo; } ok 4815 init-declarations invalid let a = 1; ok 4816 init-declarations invalid function foo() { let a = 'foo', b; if (a) { let c, d; } } ok 4817 init-declarations invalid function foo() { let a; const b = false; var c = 1; } ok 4818 init-declarations invalid for(var i = 0; i < 1; i++){} ok 4819 init-declarations invalid for (var foo in []) {} ok 4820 init-declarations invalid for (var foo of []) {} ok 4821 jsx-quotes valid <foo bar="baz" /> ok 4822 jsx-quotes valid <foo bar='"' /> ok 4823 jsx-quotes valid <foo bar="'" /> ok 4824 jsx-quotes valid <foo bar='baz' /> ok 4825 jsx-quotes valid <foo bar="baz">"</foo> ok 4826 jsx-quotes valid <foo bar='baz'>'</foo> ok 4827 jsx-quotes valid <foo bar={'baz'} /> ok 4828 jsx-quotes valid <foo bar={"baz"} /> ok 4829 jsx-quotes valid <foo bar={baz} /> ok 4830 jsx-quotes valid <foo bar /> ok 4831 jsx-quotes valid <foo bar='"' /> ok 4832 jsx-quotes valid <foo bar=""" /> ok 4833 jsx-quotes valid <foo bar='&39;' /> ok 4834 jsx-quotes valid <foo bar="&39;" /> ok 4835 jsx-quotes invalid <foo bar='baz' /> ok 4836 jsx-quotes invalid <foo bar="baz" /> ok 4837 jsx-quotes invalid <foo bar=""" /> ok 4838 jsx-quotes invalid <foo bar='&39;' /> ok 4839 key-spacing valid ({ }) ok 4840 key-spacing valid ({ a: b }) ok 4841 key-spacing valid ({ }) ok 4842 key-spacing valid ({ a: b }) ok 4843 key-spacing valid var obj = { key: value }; ok 4844 key-spacing valid var obj = { [(a + b)]: value }; ok 4845 key-spacing valid var foo = { a:bar }; ok 4846 key-spacing valid var foo = { a: bar }; ok 4847 key-spacing valid foo({ 'default': function(){}}); ok 4848 key-spacing valid function foo() { return { key: (foo === 4) }; } ok 4849 key-spacing valid var obj = {'key' :42 }; ok 4850 key-spacing valid ({a : foo, b : bar})['a']; ok 4851 key-spacing valid var obj = { 'a' : (42 - 12), foobar : 'value', [(expr)]: val }; ok 4852 key-spacing valid callExpr(arg, { key :val, 'another' :false, [compute] :'value' }); ok 4853 key-spacing valid var obj = { a: (42 - 12), 'foobar': 'value', bat: function() { return this.a; }, baz: 42 }; ok 4854 key-spacing valid callExpr(arg, { 'asdf' :val, foobar :false, key : value }); ok 4855 key-spacing valid ({ a : 0, // same group bcd: 0, /* end of group */ // different group e: 0, /* group b */ f: 0 }) ok 4856 key-spacing valid obj = { key : longName }; ok 4857 key-spacing valid obj = { key :longName }; ok 4858 key-spacing valid obj = { key :longName }; ok 4859 key-spacing valid var obj = { get fn() { return 42; } }; ok 4860 key-spacing valid ({ get fn() {} }) ok 4861 key-spacing valid var obj = {foo: 'fee', bar: 'bam'}; ok 4862 key-spacing valid var obj = {a: 'foo', bar: 'bam'}; ok 4863 key-spacing valid var x = { foo: 10 , b : 20 }; ok 4864 key-spacing valid var x = { foo : 10 , b : 20 }; ok 4865 key-spacing valid var x = { foo: 10, /*lol*/b : 20 }; ok 4866 key-spacing valid var a = 'a'; var b = 'b'; export default { a, b }; ok 4867 key-spacing valid var test = { prop: 123, a, b }; ok 4868 key-spacing valid var test = { prop: 456, c, d }; ok 4869 key-spacing valid var obj = { foobar: 123, prop, baz: 456 }; ok 4870 key-spacing valid var test = { prop: 123, a() { } }; ok 4871 key-spacing valid var test = { prop: 123, a() { }, b() { } }; ok 4872 key-spacing valid var obj = { foobar: 123, method() { }, baz: 456 }; ok 4873 key-spacing valid var obj = { foobar: 123, method() { return 42; }, baz: 456 }; ok 4874 key-spacing valid var obj = { foo : foo , bar : bar , cats: cats }; ok 4875 key-spacing valid var obj = { foo : foo , bar : bar , cats: cats }; ok 4876 key-spacing valid var obj = { foo : foo , bar : bar , cats : cats }; ok 4877 key-spacing valid ({a : foo, ...x, b : bar})['a']; ok 4878 key-spacing valid var obj = { 'a' : (42 - 12), ...x, foobar : 'value', [(expr)]: val }; ok 4879 key-spacing valid callExpr(arg, { key :val, ...x, ...y, 'another' :false, [compute] :'value' }); ok 4880 key-spacing valid var obj = { a: (42 - 12), ...x, 'foobar': 'value', bat: function() { return this.a; }, baz: 42 }; ok 4881 key-spacing valid ({ ...x, a : 0, // same group bcd: 0, /* end of group */ // different group e: 0, ...y, /* group b */ f: 0 }) ok 4882 key-spacing valid ({ a: 42, get b() { return 42; } }) ok 4883 key-spacing valid ({ set a(b) { b; }, c: 42 }) ok 4884 key-spacing valid ({ a : 42, get b() { return 42; }, set c(v) { v; }, def: 42 }) ok 4885 key-spacing valid ({ a : 42, get b() { return 42; }, set c(v) { v; }, def: 42 }) ok 4886 key-spacing valid ({ a : 42, get b() { return 42; }, set c(v) { v; }, def : 42, obj : {a: 1, b: 2, c: 3} }) ok 4887 key-spacing valid ({ a : 42, get b() { return 42; }, set c(v) { v; }, def : 42, def : {a: 1, b: 2, c: 3} }) ok 4888 key-spacing valid var obj = { foobar: 42, bat: 2 }; ok 4889 key-spacing valid ({...object}) ok 4890 key-spacing valid ({ longName: 1, small : 2, f : function() { }, xs :3 }) ok 4891 key-spacing valid ({ longName: 1, small: 2, f: function() { }, xs :3 }) ok 4892 key-spacing valid ({ longName : 1, small : 2, xs : 3 }) ok 4893 key-spacing valid ({ longName :1, small :2, xs :3 }) ok 4894 key-spacing valid ({ longName: 1, small : 2, xs : 3 }) ok 4895 key-spacing valid ({ longName: 1, small : 2, xs : 3 }) ok 4896 key-spacing valid ({ func: function() { var test = true; }, longName : 1, small : 2, xs : 3, func2 : function() { var test2 = true; }, internalGroup: { internal : true, ext : false } }) ok 4897 key-spacing valid ({ func: function() { var test = true; }, longName: 1, small: 2, xs: 3, func2: function() { var test2 = true; }, final: 10 }) ok 4898 key-spacing valid ({ f:function() { var test = true; }, stateName : 'NY', borough : 'Brooklyn', zip : 11201, f2 : function() { var test2 = true; }, final:10 }) ok 4899 key-spacing valid var obj = { key1: 1, key2: 2, key3: 3, key4: 4 } ok 4900 key-spacing valid var obj = { key1: 1, key2: 2, key3: 3, key4: 4 } ok 4901 key-spacing invalid var bat = function() { return { foo:bar, 'key': value }; }; ok 4902 key-spacing invalid var obj = { [ (a + b) ]:value }; ok 4903 key-spacing invalid fn({ foo:bar, 'key' :value }); ok 4904 key-spacing invalid var obj = {prop :(42)}; ok 4905 key-spacing invalid ({'a' : foo, b: bar() }).b(); ok 4906 key-spacing invalid ({'a' :foo(), b: bar() }).b(); ok 4907 key-spacing invalid bar = { key:value }; ok 4908 key-spacing invalid obj = { key: value, foobar:fn(), 'a' : (2 * 2) }; ok 4909 key-spacing invalid ({ 'a' : val, foo:fn(), b :[42], c :call() }).a(); ok 4910 key-spacing invalid var obj = { a: fn(), 'b' : 42, foo:(bar), bat: 'valid', [a] : value }; ok 4911 key-spacing invalid foo = { a: value, b : 42, foo :['a'], bar : call() }; ok 4912 key-spacing invalid ({ a : 0, bcd: 0, e: 0, fg:0 }) ok 4913 key-spacing invalid foo = { key: longValueName, key2 :anotherLongValue }; ok 4914 key-spacing invalid foo = { key1: 42, // still the same group key12: '42', /* */ key123: 'forty two' }; ok 4915 key-spacing invalid foo = { key:(1+2) }; ok 4916 key-spacing invalid foo = { key:( ( (1+2) ) ) }; ok 4917 key-spacing invalid var obj = {a : 'foo', bar: 'bam'}; ok 4918 key-spacing invalid var x = { foo: 10 , b : 20 }; ok 4919 key-spacing invalid var x = { foo : 10, /*lol*/ b : 20 }; ok 4920 key-spacing invalid obj = { key : longName }; ok 4921 key-spacing invalid var obj = { foobar: 123, prop, baz: 456 }; ok 4922 key-spacing invalid var obj = { foobar: 123, prop, baz: 456 }; ok 4923 key-spacing invalid var obj = { foobar: 123, method() { }, baz: 456 }; ok 4924 key-spacing invalid var obj = { foobar: 123, method() { }, baz: 456 }; ok 4925 key-spacing invalid var obj = { foobar: 123, method() { return 42; }, baz: 456 }; ok 4926 key-spacing invalid var obj = { foo: foo , cats: cats }; ok 4927 key-spacing invalid var obj = { foo : foo , cats: cats }; ok 4928 key-spacing invalid var obj = { foo: foo , cats: cats }; ok 4929 key-spacing invalid var obj = { foo : foo , cats: cats }; ok 4930 key-spacing invalid var obj = { foo :foo , cats: cats }; ok 4931 key-spacing invalid var obj = { foo : foo , cats: cats }; ok 4932 key-spacing invalid var obj = { foo : foo , cats: cats }; ok 4933 key-spacing invalid ({ ...x, a : 0, // same group bcd: 0, /* end of group */ // different group e: 0, ...y, /* group b */ f : 0 }) ok 4934 key-spacing invalid ({ a : 42, get b() { return 42; } }) ok 4935 key-spacing invalid ({ set a(b) { b; }, c : 42 }) ok 4936 key-spacing invalid ({ a: 42, get b() { return 42; }, set c(v) { v; }, def: 42 }) ok 4937 key-spacing invalid ({ a : 42, get b() { return 42; }, set c(v) { v; }, def : 42, def2 : {a1: 1, b1:2, c1:3} }) ok 4938 key-spacing invalid ({ a : 42, get b() { return 42; }, set c(v) { v; }, def: 42, de1: {a2: 1, b2 : 2, c2 : 3} }) ok 4939 key-spacing invalid obj = { get fx() { return 'f'; }, get gx() { return 'g'; }, ex:e }; ok 4940 key-spacing invalid obj = { get fx() { return 'f'; }, get gx() { return 'g'; }, ex : e }; ok 4941 key-spacing invalid ({ aInv :43, get b() { return 43; }, set c(v) { v; }, defInv: 43 }) ok 4942 key-spacing invalid ({ a:b, ...object, c : d }) ok 4943 key-spacing invalid ({ longName:1, small :2, xs : 3 }) ok 4944 key-spacing invalid ({ func:function() { var test = true; }, longName: 1, small: 2, xs : 3, func2 : function() { var test2 = true; }, singleLine : 10 }) ok 4945 key-spacing invalid ({ func:function() { var test = false; }, longName :1, small :2, xs : 3, func2 : function() { var test2 = true; }, singleLine : 10 }) ok 4946 key-spacing invalid var obj = { key1: 1, key2: 2, key3: 3, key4: 4 } ok 4947 key-spacing invalid var obj = { key1: 1, key2: 2, key3: 3, key4: 4 } ok 4948 key-spacing invalid ({ foo/* comment */ : bar }) ok 4949 key-spacing invalid ({ foo: /* comment */bar }) ok 4950 key-spacing invalid ({ foo/*comment*/:/*comment*/bar }) ok 4951 keyword-spacing valid import * as a from "foo" ok 4952 keyword-spacing valid import*as a from"foo" ok 4953 keyword-spacing valid import* as a from"foo" ok 4954 keyword-spacing valid import *as a from "foo" ok 4955 keyword-spacing valid {} async function foo() {} ok 4956 keyword-spacing valid {}async function foo() {} ok 4957 keyword-spacing valid {} async function foo() {} ok 4958 keyword-spacing valid {}async function foo() {} ok 4959 keyword-spacing valid {} async () => {} ok 4960 keyword-spacing valid {}async () => {} ok 4961 keyword-spacing valid {} async () => {} ok 4962 keyword-spacing valid {}async () => {} ok 4963 keyword-spacing valid ({async [b]() {}}) ok 4964 keyword-spacing valid ({async[b]() {}}) ok 4965 keyword-spacing valid ({async [b]() {}}) ok 4966 keyword-spacing valid ({async[b]() {}}) ok 4967 keyword-spacing valid class A {a(){} async [b]() {}} ok 4968 keyword-spacing valid class A {a(){}async[b]() {}} ok 4969 keyword-spacing valid class A {a(){} async [b]() {}} ok 4970 keyword-spacing valid class A {a(){}async[b]() {}} ok 4971 keyword-spacing valid [async function foo() {}] ok 4972 keyword-spacing valid [ async function foo() {}] ok 4973 keyword-spacing valid () =>async function foo() {} ok 4974 keyword-spacing valid () => async function foo() {} ok 4975 keyword-spacing valid {async function foo() {} } ok 4976 keyword-spacing valid { async function foo() {} } ok 4977 keyword-spacing valid (0,async function foo() {}) ok 4978 keyword-spacing valid (0, async function foo() {}) ok 4979 keyword-spacing valid a[async function foo() {}] ok 4980 keyword-spacing valid ({[async function foo() {}]: 0}) ok 4981 keyword-spacing valid a[ async function foo() {}] ok 4982 keyword-spacing valid ({[ async function foo() {}]: 0}) ok 4983 keyword-spacing valid ({ async* foo() {} }) ok 4984 keyword-spacing valid ({ async *foo() {} }) ok 4985 keyword-spacing valid ({a:async function foo() {} }) ok 4986 keyword-spacing valid ({a: async function foo() {} }) ok 4987 keyword-spacing valid ;async function foo() {}; ok 4988 keyword-spacing valid ; async function foo() {} ; ok 4989 keyword-spacing valid async() => {} ok 4990 keyword-spacing valid async () => {} ok 4991 keyword-spacing valid (async function foo() {}) ok 4992 keyword-spacing valid ( async function foo() {}) ok 4993 keyword-spacing valid a =async function foo() {} ok 4994 keyword-spacing valid a = async function foo() {} ok 4995 keyword-spacing valid !async function foo() {} ok 4996 keyword-spacing valid ! async function foo() {} ok 4997 keyword-spacing valid `${async function foo() {}}` ok 4998 keyword-spacing valid `${ async function foo() {}}` ok 4999 keyword-spacing valid <Foo onClick={async function foo() {}} /> ok 5000 keyword-spacing valid <Foo onClick={ async function foo() {}} /> ok 5001 keyword-spacing valid async function wrap() { {} await +1 } ok 5002 keyword-spacing valid async function wrap() { {}await +1 } ok 5003 keyword-spacing valid async function wrap() { {} await +1 } ok 5004 keyword-spacing valid async function wrap() { {}await +1 } ok 5005 keyword-spacing valid async function wrap() { [await a] } ok 5006 keyword-spacing valid async function wrap() { [ await a] } ok 5007 keyword-spacing valid async () =>await a ok 5008 keyword-spacing valid async () => await a ok 5009 keyword-spacing valid async function wrap() { {await a } } ok 5010 keyword-spacing valid async function wrap() { { await a } } ok 5011 keyword-spacing valid async function wrap() { (0,await a) } ok 5012 keyword-spacing valid async function wrap() { (0, await a) } ok 5013 keyword-spacing valid async function wrap() { a[await a] } ok 5014 keyword-spacing valid async function wrap() { ({[await a]: 0}) } ok 5015 keyword-spacing valid async function wrap() { a[ await a] } ok 5016 keyword-spacing valid async function wrap() { ({[ await a]: 0}) } ok 5017 keyword-spacing valid async function wrap() { ({a:await a }) } ok 5018 keyword-spacing valid async function wrap() { ({a: await a }) } ok 5019 keyword-spacing valid async function wrap() { ;await a; } ok 5020 keyword-spacing valid async function wrap() { ; await a ; } ok 5021 keyword-spacing valid async function wrap() { (await a) } ok 5022 keyword-spacing valid async function wrap() { ( await a) } ok 5023 keyword-spacing valid async function wrap() { a =await a } ok 5024 keyword-spacing valid async function wrap() { a = await a } ok 5025 keyword-spacing valid async function wrap() { !await'a' } ok 5026 keyword-spacing valid async function wrap() { ! await 'a' } ok 5027 keyword-spacing valid async function wrap() { `${await a}` } ok 5028 keyword-spacing valid async function wrap() { `${ await a}` } ok 5029 keyword-spacing valid async function wrap() { <Foo onClick={await a} /> } ok 5030 keyword-spacing valid async function wrap() { <Foo onClick={ await a} /> } ok 5031 keyword-spacing valid A: for (;;) { {} break A; } ok 5032 keyword-spacing valid A: for(;;) { {}break A; } ok 5033 keyword-spacing valid A: for(;;) { {} break A; } ok 5034 keyword-spacing valid A: for (;;) { {}break A; } ok 5035 keyword-spacing valid for (;;) {break} ok 5036 keyword-spacing valid for(;;) { break } ok 5037 keyword-spacing valid for (;;) { ;break; } ok 5038 keyword-spacing valid for(;;) { ; break ; } ok 5039 keyword-spacing valid switch (a) { case 0: {} case +1: } ok 5040 keyword-spacing valid switch (a) { case 0: {} case (1): } ok 5041 keyword-spacing valid switch(a) { case 0: {}case+1: } ok 5042 keyword-spacing valid switch(a) { case 0: {}case(1): } ok 5043 keyword-spacing valid switch(a) { case 0: {} case +1: } ok 5044 keyword-spacing valid switch (a) { case 0: {}case+1: } ok 5045 keyword-spacing valid switch (a) {case 0: } ok 5046 keyword-spacing valid switch(a) { case 0: } ok 5047 keyword-spacing valid switch (a) { case 0: ;case 1: } ok 5048 keyword-spacing valid switch(a) { case 0: ; case 1: } ok 5049 keyword-spacing valid try {} catch (e) {} ok 5050 keyword-spacing valid try{}catch(e) {} ok 5051 keyword-spacing valid try{} catch (e) {} ok 5052 keyword-spacing valid try {}catch(e) {} ok 5053 keyword-spacing valid try {} catch (e) {} ok 5054 keyword-spacing valid try{} catch(e) {} ok 5055 keyword-spacing valid {} class Bar {} ok 5056 keyword-spacing valid (class {}) ok 5057 keyword-spacing valid {}class Bar {} ok 5058 keyword-spacing valid (class{}) ok 5059 keyword-spacing valid {} class Bar {} ok 5060 keyword-spacing valid {}class Bar {} ok 5061 keyword-spacing valid [class {}] ok 5062 keyword-spacing valid [ class{}] ok 5063 keyword-spacing valid () =>class {} ok 5064 keyword-spacing valid () => class{} ok 5065 keyword-spacing valid {class Bar {} } ok 5066 keyword-spacing valid { class Bar {} } ok 5067 keyword-spacing valid (0,class {}) ok 5068 keyword-spacing valid (0, class{}) ok 5069 keyword-spacing valid a[class {}] ok 5070 keyword-spacing valid ({[class {}]: 0}) ok 5071 keyword-spacing valid a[ class{}] ok 5072 keyword-spacing valid ({[ class{}]: 0}) ok 5073 keyword-spacing valid ({a:class {} }) ok 5074 keyword-spacing valid ({a: class{} }) ok 5075 keyword-spacing valid ;class Bar {}; ok 5076 keyword-spacing valid ; class Bar {} ; ok 5077 keyword-spacing valid ( class{}) ok 5078 keyword-spacing valid a =class {} ok 5079 keyword-spacing valid a = class{} ok 5080 keyword-spacing valid !class {} ok 5081 keyword-spacing valid ! class{} ok 5082 keyword-spacing valid `${class {}}` ok 5083 keyword-spacing valid `${ class{}}` ok 5084 keyword-spacing valid <Foo onClick={class {}} /> ok 5085 keyword-spacing valid <Foo onClick={ class{}} /> ok 5086 keyword-spacing valid {} const [a] = b ok 5087 keyword-spacing valid {} const {a} = b ok 5088 keyword-spacing valid {}const[a] = b ok 5089 keyword-spacing valid {}const{a} = b ok 5090 keyword-spacing valid {} const [a] = b ok 5091 keyword-spacing valid {} const {a} = b ok 5092 keyword-spacing valid {}const[a] = b ok 5093 keyword-spacing valid {}const{a} = b ok 5094 keyword-spacing valid {const a = b} ok 5095 keyword-spacing valid { const a = b} ok 5096 keyword-spacing valid ;const a = b; ok 5097 keyword-spacing valid ; const a = b ; ok 5098 keyword-spacing valid A: for (;;) { {} continue A; } ok 5099 keyword-spacing valid A: for(;;) { {}continue A; } ok 5100 keyword-spacing valid A: for(;;) { {} continue A; } ok 5101 keyword-spacing valid A: for (;;) { {}continue A; } ok 5102 keyword-spacing valid for (;;) {continue} ok 5103 keyword-spacing valid for(;;) { continue } ok 5104 keyword-spacing valid for (;;) { ;continue; } ok 5105 keyword-spacing valid for(;;) { ; continue ; } ok 5106 keyword-spacing valid {} debugger ok 5107 keyword-spacing valid {}debugger ok 5108 keyword-spacing valid {} debugger ok 5109 keyword-spacing valid {}debugger ok 5110 keyword-spacing valid {debugger} ok 5111 keyword-spacing valid { debugger } ok 5112 keyword-spacing valid ;debugger; ok 5113 keyword-spacing valid ; debugger ; ok 5114 keyword-spacing valid switch (a) { case 0: {} default: } ok 5115 keyword-spacing valid switch(a) { case 0: {}default: } ok 5116 keyword-spacing valid switch(a) { case 0: {} default: } ok 5117 keyword-spacing valid switch (a) { case 0: {}default: } ok 5118 keyword-spacing valid switch (a) {default:} ok 5119 keyword-spacing valid switch(a) { default: } ok 5120 keyword-spacing valid switch (a) { case 0: ;default: } ok 5121 keyword-spacing valid switch(a) { case 0: ; default: } ok 5122 keyword-spacing valid {} delete foo.a ok 5123 keyword-spacing valid {}delete foo.a ok 5124 keyword-spacing valid {} delete foo.a ok 5125 keyword-spacing valid {}delete foo.a ok 5126 keyword-spacing valid [delete foo.a] ok 5127 keyword-spacing valid [ delete foo.a] ok 5128 keyword-spacing valid (() =>delete foo.a) ok 5129 keyword-spacing valid (() => delete foo.a) ok 5130 keyword-spacing valid {delete foo.a } ok 5131 keyword-spacing valid { delete foo.a } ok 5132 keyword-spacing valid (0,delete foo.a) ok 5133 keyword-spacing valid (0, delete foo.a) ok 5134 keyword-spacing valid a[delete foo.a] ok 5135 keyword-spacing valid ({[delete foo.a]: 0}) ok 5136 keyword-spacing valid a[ delete foo.a] ok 5137 keyword-spacing valid ({[ delete foo.a]: 0}) ok 5138 keyword-spacing valid ({a:delete foo.a }) ok 5139 keyword-spacing valid ({a: delete foo.a }) ok 5140 keyword-spacing valid ;delete foo.a ok 5141 keyword-spacing valid ; delete foo.a ok 5142 keyword-spacing valid (delete foo.a) ok 5143 keyword-spacing valid ( delete foo.a) ok 5144 keyword-spacing valid a =delete foo.a ok 5145 keyword-spacing valid a = delete foo.a ok 5146 keyword-spacing valid !delete(foo.a) ok 5147 keyword-spacing valid ! delete (foo.a) ok 5148 keyword-spacing valid `${delete foo.a}` ok 5149 keyword-spacing valid `${ delete foo.a}` ok 5150 keyword-spacing valid <Foo onClick={delete foo.a} /> ok 5151 keyword-spacing valid <Foo onClick={ delete foo.a} /> ok 5152 keyword-spacing valid {} do {} while (true) ok 5153 keyword-spacing valid {}do{}while(true) ok 5154 keyword-spacing valid {} do {}while(true) ok 5155 keyword-spacing valid {}do{} while (true) ok 5156 keyword-spacing valid {} do {} while (true) ok 5157 keyword-spacing valid {} do {}while(true) ok 5158 keyword-spacing valid {do {} while (true)} ok 5159 keyword-spacing valid { do{}while(true) } ok 5160 keyword-spacing valid ;do; while (true) ok 5161 keyword-spacing valid ; do ;while(true) ok 5162 keyword-spacing valid if (a) {} else {} ok 5163 keyword-spacing valid if (a) {} else if (b) {} ok 5164 keyword-spacing valid if (a) {} else (0) ok 5165 keyword-spacing valid if (a) {} else [] ok 5166 keyword-spacing valid if (a) {} else +1 ok 5167 keyword-spacing valid if (a) {} else "a" ok 5168 keyword-spacing valid if(a){}else{} ok 5169 keyword-spacing valid if(a){}else if(b) {} ok 5170 keyword-spacing valid if(a) {}else(0) ok 5171 keyword-spacing valid if(a) {}else[] ok 5172 keyword-spacing valid if(a) {}else+1 ok 5173 keyword-spacing valid if(a) {}else"a" ok 5174 keyword-spacing valid if(a) {} else {} ok 5175 keyword-spacing valid if (a) {}else{} ok 5176 keyword-spacing valid if (a) {} else {} ok 5177 keyword-spacing valid if(a) {} else {} ok 5178 keyword-spacing valid if (a);else; ok 5179 keyword-spacing valid if(a); else ; ok 5180 keyword-spacing valid var a = 0; {} export {a} ok 5181 keyword-spacing valid {} export default a ok 5182 keyword-spacing valid {} export * from "a" ok 5183 keyword-spacing valid var a = 0; {}export{a} ok 5184 keyword-spacing valid var a = 0; {} export {a} ok 5185 keyword-spacing valid var a = 0; {}export{a} ok 5186 keyword-spacing valid var a = 0; ;export {a} ok 5187 keyword-spacing valid var a = 0; ; export{a} ok 5188 keyword-spacing valid class Bar extends [] {} ok 5189 keyword-spacing valid class Bar extends[] {} ok 5190 keyword-spacing valid class Bar extends [] {} ok 5191 keyword-spacing valid class Bar extends[] {} ok 5192 keyword-spacing valid try {} finally {} ok 5193 keyword-spacing valid try{}finally{} ok 5194 keyword-spacing valid try{} finally {} ok 5195 keyword-spacing valid try {}finally{} ok 5196 keyword-spacing valid try {} finally {} ok 5197 keyword-spacing valid try{} finally {} ok 5198 keyword-spacing valid {} for (;;) {} ok 5199 keyword-spacing valid {} for (var foo in obj) {} ok 5200 keyword-spacing valid {} for (var foo of list) {} ok 5201 keyword-spacing valid {}for(;;) {} ok 5202 keyword-spacing valid {}for(var foo in obj) {} ok 5203 keyword-spacing valid {}for(var foo of list) {} ok 5204 keyword-spacing valid {} for (;;) {} ok 5205 keyword-spacing valid {} for (var foo in obj) {} ok 5206 keyword-spacing valid {} for (var foo of list) {} ok 5207 keyword-spacing valid {}for(;;) {} ok 5208 keyword-spacing valid {}for(var foo in obj) {} ok 5209 keyword-spacing valid {}for(var foo of list) {} ok 5210 keyword-spacing valid {for (;;) {} } ok 5211 keyword-spacing valid {for (var foo in obj) {} } ok 5212 keyword-spacing valid {for (var foo of list) {} } ok 5213 keyword-spacing valid { for(;;) {} } ok 5214 keyword-spacing valid { for(var foo in obj) {} } ok 5215 keyword-spacing valid { for(var foo of list) {} } ok 5216 keyword-spacing valid ;for (;;) {} ok 5217 keyword-spacing valid ;for (var foo in obj) {} ok 5218 keyword-spacing valid ;for (var foo of list) {} ok 5219 keyword-spacing valid ; for(;;) {} ok 5220 keyword-spacing valid ; for(var foo in obj) {} ok 5221 keyword-spacing valid ; for(var foo of list) {} ok 5222 keyword-spacing valid import {foo} from "foo" ok 5223 keyword-spacing valid export {foo} from "foo" ok 5224 keyword-spacing valid export * from "foo" ok 5225 keyword-spacing valid import{foo}from"foo" ok 5226 keyword-spacing valid export{foo}from"foo" ok 5227 keyword-spacing valid export*from"foo" ok 5228 keyword-spacing valid import{foo} from "foo" ok 5229 keyword-spacing valid export{foo} from "foo" ok 5230 keyword-spacing valid export* from "foo" ok 5231 keyword-spacing valid import {foo}from"foo" ok 5232 keyword-spacing valid export {foo}from"foo" ok 5233 keyword-spacing valid export *from"foo" ok 5234 keyword-spacing valid {} function foo() {} ok 5235 keyword-spacing valid {}function foo() {} ok 5236 keyword-spacing valid {} function foo() {} ok 5237 keyword-spacing valid {}function foo() {} ok 5238 keyword-spacing valid [function() {}] ok 5239 keyword-spacing valid [ function() {}] ok 5240 keyword-spacing valid (() =>function() {}) ok 5241 keyword-spacing valid (() => function() {}) ok 5242 keyword-spacing valid {function foo() {} } ok 5243 keyword-spacing valid { function foo() {} } ok 5244 keyword-spacing valid (0,function() {}) ok 5245 keyword-spacing valid (0, function() {}) ok 5246 keyword-spacing valid a[function() {}] ok 5247 keyword-spacing valid ({[function() {}]: 0}) ok 5248 keyword-spacing valid a[ function() {}] ok 5249 keyword-spacing valid ({[ function(){}]: 0}) ok 5250 keyword-spacing valid function* foo() {} ok 5251 keyword-spacing valid function *foo() {} ok 5252 keyword-spacing valid ({a:function() {} }) ok 5253 keyword-spacing valid ({a: function() {} }) ok 5254 keyword-spacing valid ;function foo() {}; ok 5255 keyword-spacing valid ; function foo() {} ; ok 5256 keyword-spacing valid (function() {}) ok 5257 keyword-spacing valid ( function () {}) ok 5258 keyword-spacing valid a =function() {} ok 5259 keyword-spacing valid a = function() {} ok 5260 keyword-spacing valid !function() {} ok 5261 keyword-spacing valid ! function() {} ok 5262 keyword-spacing valid `${function() {}}` ok 5263 keyword-spacing valid `${ function() {}}` ok 5264 keyword-spacing valid <Foo onClick={function() {}} /> ok 5265 keyword-spacing valid <Foo onClick={ function() {}} /> ok 5266 keyword-spacing valid ({ get [b]() {} }) ok 5267 keyword-spacing valid class A { a() {} get [b]() {} } ok 5268 keyword-spacing valid class A { a() {} static get [b]() {} } ok 5269 keyword-spacing valid ({ get[b]() {} }) ok 5270 keyword-spacing valid class A { a() {}get[b]() {} } ok 5271 keyword-spacing valid class A { a() {}static get[b]() {} } ok 5272 keyword-spacing valid ({ get [b]() {} }) ok 5273 keyword-spacing valid class A { a() {} get [b]() {} } ok 5274 keyword-spacing valid ({ get[b]() {} }) ok 5275 keyword-spacing valid class A { a() {}get[b]() {} } ok 5276 keyword-spacing valid ({ a,get [b]() {} }) ok 5277 keyword-spacing valid ({ a, get[b]() {} }) ok 5278 keyword-spacing valid {} if (a) {} ok 5279 keyword-spacing valid if (a) {} else if (a) {} ok 5280 keyword-spacing valid {}if(a) {} ok 5281 keyword-spacing valid if(a) {}else if(a) {} ok 5282 keyword-spacing valid {} if (a) {} ok 5283 keyword-spacing valid if (a) {}else if (a) {} ok 5284 keyword-spacing valid {}if(a) {} ok 5285 keyword-spacing valid if(a) {} else if(a) {} ok 5286 keyword-spacing valid {if (a) {} } ok 5287 keyword-spacing valid { if(a) {} } ok 5288 keyword-spacing valid ;if (a) {} ok 5289 keyword-spacing valid ; if(a) {} ok 5290 keyword-spacing valid {} import {a} from "foo" ok 5291 keyword-spacing valid {} import a from "foo" ok 5292 keyword-spacing valid {} import * as a from "a" ok 5293 keyword-spacing valid {}import{a}from"foo" ok 5294 keyword-spacing valid {}import*as a from"foo" ok 5295 keyword-spacing valid {} import {a}from"foo" ok 5296 keyword-spacing valid {} import *as a from"foo" ok 5297 keyword-spacing valid {}import{a} from "foo" ok 5298 keyword-spacing valid {}import* as a from "foo" ok 5299 keyword-spacing valid ;import {a} from "foo" ok 5300 keyword-spacing valid ; import{a}from"foo" ok 5301 keyword-spacing valid for ([foo] in {foo: 0}) {} ok 5302 keyword-spacing valid for([foo]in{foo: 0}) {} ok 5303 keyword-spacing valid for([foo] in {foo: 0}) {} ok 5304 keyword-spacing valid for ([foo]in{foo: 0}) {} ok 5305 keyword-spacing valid for ([foo] in ({foo: 0})) {} ok 5306 keyword-spacing valid if ("foo"in{foo: 0}) {} ok 5307 keyword-spacing valid if("foo" in {foo: 0}) {} ok 5308 keyword-spacing valid if ("foo"instanceof{foo: 0}) {} ok 5309 keyword-spacing valid if("foo" instanceof {foo: 0}) {} ok 5310 keyword-spacing valid {} let [a] = b ok 5311 keyword-spacing valid {}let[a] = b ok 5312 keyword-spacing valid {} let [a] = b ok 5313 keyword-spacing valid {}let[a] = b ok 5314 keyword-spacing valid {let [a] = b } ok 5315 keyword-spacing valid { let[a] = b } ok 5316 keyword-spacing valid ;let [a] = b ok 5317 keyword-spacing valid ; let[a] = b ok 5318 keyword-spacing valid {} new foo() ok 5319 keyword-spacing valid {}new foo() ok 5320 keyword-spacing valid {} new foo() ok 5321 keyword-spacing valid {}new foo() ok 5322 keyword-spacing valid [new foo()] ok 5323 keyword-spacing valid [ new foo()] ok 5324 keyword-spacing valid (() =>new foo()) ok 5325 keyword-spacing valid (() => new foo()) ok 5326 keyword-spacing valid {new foo() } ok 5327 keyword-spacing valid { new foo() } ok 5328 keyword-spacing valid (0,new foo()) ok 5329 keyword-spacing valid (0, new foo()) ok 5330 keyword-spacing valid a[new foo()] ok 5331 keyword-spacing valid ({[new foo()]: 0}) ok 5332 keyword-spacing valid a[ new foo()] ok 5333 keyword-spacing valid ({[ new foo()]: 0}) ok 5334 keyword-spacing valid ({a:new foo() }) ok 5335 keyword-spacing valid ({a: new foo() }) ok 5336 keyword-spacing valid ;new foo() ok 5337 keyword-spacing valid ; new foo() ok 5338 keyword-spacing valid (new foo()) ok 5339 keyword-spacing valid ( new foo()) ok 5340 keyword-spacing valid a =new foo() ok 5341 keyword-spacing valid a = new foo() ok 5342 keyword-spacing valid !new(foo)() ok 5343 keyword-spacing valid ! new (foo)() ok 5344 keyword-spacing valid `${new foo()}` ok 5345 keyword-spacing valid `${ new foo()}` ok 5346 keyword-spacing valid <Foo onClick={new foo()} /> ok 5347 keyword-spacing valid <Foo onClick={ new foo()} /> ok 5348 keyword-spacing valid for ([foo] of {foo: 0}) {} ok 5349 keyword-spacing valid for([foo]of{foo: 0}) {} ok 5350 keyword-spacing valid for([foo] of {foo: 0}) {} ok 5351 keyword-spacing valid for ([foo]of{foo: 0}) {} ok 5352 keyword-spacing valid for ([foo] of ({foo: 0})) {} ok 5353 keyword-spacing valid function foo() { {} return +a } ok 5354 keyword-spacing valid function foo() { {}return+a } ok 5355 keyword-spacing valid function foo() { {} return +a } ok 5356 keyword-spacing valid function foo() { {}return+a } ok 5357 keyword-spacing valid function foo() { return } ok 5358 keyword-spacing valid function foo() { return } ok 5359 keyword-spacing valid function foo() {return} ok 5360 keyword-spacing valid function foo() { return } ok 5361 keyword-spacing valid function foo() { ;return; } ok 5362 keyword-spacing valid function foo() { ; return ; } ok 5363 keyword-spacing valid ({ set [b](value) {} }) ok 5364 keyword-spacing valid class A { a() {} set [b](value) {} } ok 5365 keyword-spacing valid class A { a() {} static set [b](value) {} } ok 5366 keyword-spacing valid ({ set[b](value) {} }) ok 5367 keyword-spacing valid class A { a() {}set[b](value) {} } ok 5368 keyword-spacing valid ({ set [b](value) {} }) ok 5369 keyword-spacing valid class A { a() {} set [b](value) {} } ok 5370 keyword-spacing valid ({ set[b](value) {} }) ok 5371 keyword-spacing valid class A { a() {}set[b](value) {} } ok 5372 keyword-spacing valid ({ a,set [b](value) {} }) ok 5373 keyword-spacing valid ({ a, set[b](value) {} }) ok 5374 keyword-spacing valid class A { a() {} static [b]() {} } ok 5375 keyword-spacing valid class A { a() {}static[b]() {} } ok 5376 keyword-spacing valid class A { a() {} static [b]() {} } ok 5377 keyword-spacing valid class A { a() {}static[b]() {} } ok 5378 keyword-spacing valid class A { static* [a]() {} } ok 5379 keyword-spacing valid class A { static *[a]() {} } ok 5380 keyword-spacing valid class A { ;static a() {} } ok 5381 keyword-spacing valid class A { ; static a() {} } ok 5382 keyword-spacing valid class A extends B { a() { {} super[b](); } } ok 5383 keyword-spacing valid class A extends B { a() { {}super[b](); } } ok 5384 keyword-spacing valid class A extends B { a() { {} super[b](); } } ok 5385 keyword-spacing valid class A extends B { a() { {}super[b](); } } ok 5386 keyword-spacing valid class A extends B { constructor() { [super()]; } } ok 5387 keyword-spacing valid class A extends B { constructor() { [ super() ]; } } ok 5388 keyword-spacing valid class A extends B { constructor() { () =>super(); } } ok 5389 keyword-spacing valid class A extends B { constructor() { () => super(); } } ok 5390 keyword-spacing valid class A extends B { constructor() {super()} } ok 5391 keyword-spacing valid class A extends B { constructor() { super() } } ok 5392 keyword-spacing valid class A extends B { constructor() { (0,super()) } } ok 5393 keyword-spacing valid class A extends B { constructor() { (0, super()) } } ok 5394 keyword-spacing valid class A extends B { constructor() { ({[super()]: 0}) } } ok 5395 keyword-spacing valid class A extends B { constructor() { ({[ super() ]: 0}) } } ok 5396 keyword-spacing valid class A extends B { constructor() { ({a:super() }) } } ok 5397 keyword-spacing valid class A extends B { constructor() { ({a: super() }) } } ok 5398 keyword-spacing valid class A extends B { constructor() { super(); } } ok 5399 keyword-spacing valid class A extends B { constructor() { super (); } } ok 5400 keyword-spacing valid class A extends B { constructor() { ;super(); } } ok 5401 keyword-spacing valid class A extends B { constructor() { ; super() ; } } ok 5402 keyword-spacing valid class A extends B { constructor() { (super()) } } ok 5403 keyword-spacing valid class A extends B { constructor() { ( super() ) } } ok 5404 keyword-spacing valid class A extends B { constructor() { b =super() } } ok 5405 keyword-spacing valid class A extends B { constructor() { b = super() } } ok 5406 keyword-spacing valid class A extends B { constructor() { !super() } } ok 5407 keyword-spacing valid class A extends B { constructor() { ! super() } } ok 5408 keyword-spacing valid class A extends B { constructor() { `${super()}` } } ok 5409 keyword-spacing valid class A extends B { constructor() { `${ super() }` } } ok 5410 keyword-spacing valid class A extends B { constructor() { <Foo onClick={super()} /> } } ok 5411 keyword-spacing valid class A extends B { constructor() { <Foo onClick={ super() } /> } } ok 5412 keyword-spacing valid {} switch (a) {} ok 5413 keyword-spacing valid {}switch(a) {} ok 5414 keyword-spacing valid {} switch (a) {} ok 5415 keyword-spacing valid {}switch(a) {} ok 5416 keyword-spacing valid {switch (a) {} } ok 5417 keyword-spacing valid { switch(a) {} } ok 5418 keyword-spacing valid ;switch (a) {} ok 5419 keyword-spacing valid ; switch(a) {} ok 5420 keyword-spacing valid {} this[a] ok 5421 keyword-spacing valid {}this[a] ok 5422 keyword-spacing valid {} this[a] ok 5423 keyword-spacing valid {}this[a] ok 5424 keyword-spacing valid [this] ok 5425 keyword-spacing valid [ this ] ok 5426 keyword-spacing valid (() =>this) ok 5427 keyword-spacing valid (() => this) ok 5428 keyword-spacing valid {this} ok 5429 keyword-spacing valid { this } ok 5430 keyword-spacing valid (0,this) ok 5431 keyword-spacing valid (0, this) ok 5432 keyword-spacing valid a[this] ok 5433 keyword-spacing valid ({[this]: 0}) ok 5434 keyword-spacing valid a[ this ] ok 5435 keyword-spacing valid ({[ this ]: 0}) ok 5436 keyword-spacing valid ({a:this }) ok 5437 keyword-spacing valid ({a: this }) ok 5438 keyword-spacing valid ;this ok 5439 keyword-spacing valid ; this ok 5440 keyword-spacing valid (this) ok 5441 keyword-spacing valid ( this ) ok 5442 keyword-spacing valid a =this ok 5443 keyword-spacing valid a = this ok 5444 keyword-spacing valid !this ok 5445 keyword-spacing valid ! this ok 5446 keyword-spacing valid `${this}` ok 5447 keyword-spacing valid `${ this }` ok 5448 keyword-spacing valid <Foo onClick={this} /> ok 5449 keyword-spacing valid <Foo onClick={ this } /> ok 5450 keyword-spacing valid function foo() { {} throw +a } ok 5451 keyword-spacing valid function foo() { {}throw+a } ok 5452 keyword-spacing valid function foo() { {} throw +a } ok 5453 keyword-spacing valid function foo() { {}throw+a } ok 5454 keyword-spacing valid function foo() { throw a } ok 5455 keyword-spacing valid function foo() { throw a } ok 5456 keyword-spacing valid function foo() {throw a } ok 5457 keyword-spacing valid function foo() { throw a } ok 5458 keyword-spacing valid function foo() { ;throw a } ok 5459 keyword-spacing valid function foo() { ; throw a } ok 5460 keyword-spacing valid {} try {} finally {} ok 5461 keyword-spacing valid {}try{}finally{} ok 5462 keyword-spacing valid {} try {}finally{} ok 5463 keyword-spacing valid {}try{} finally {} ok 5464 keyword-spacing valid {try {} finally {}} ok 5465 keyword-spacing valid { try{}finally{}} ok 5466 keyword-spacing valid ;try {} finally {} ok 5467 keyword-spacing valid ; try{}finally{} ok 5468 keyword-spacing valid {} typeof foo ok 5469 keyword-spacing valid {}typeof foo ok 5470 keyword-spacing valid {} typeof foo ok 5471 keyword-spacing valid {}typeof foo ok 5472 keyword-spacing valid [typeof foo] ok 5473 keyword-spacing valid [ typeof foo] ok 5474 keyword-spacing valid (() =>typeof foo) ok 5475 keyword-spacing valid (() => typeof foo) ok 5476 keyword-spacing valid {typeof foo } ok 5477 keyword-spacing valid { typeof foo } ok 5478 keyword-spacing valid (0,typeof foo) ok 5479 keyword-spacing valid (0, typeof foo) ok 5480 keyword-spacing valid a[typeof foo] ok 5481 keyword-spacing valid ({[typeof foo]: 0}) ok 5482 keyword-spacing valid a[ typeof foo] ok 5483 keyword-spacing valid ({[ typeof foo]: 0}) ok 5484 keyword-spacing valid ({a:typeof foo }) ok 5485 keyword-spacing valid ({a: typeof foo }) ok 5486 keyword-spacing valid ;typeof foo ok 5487 keyword-spacing valid ; typeof foo ok 5488 keyword-spacing valid (typeof foo) ok 5489 keyword-spacing valid ( typeof foo) ok 5490 keyword-spacing valid a =typeof foo ok 5491 keyword-spacing valid a = typeof foo ok 5492 keyword-spacing valid !typeof+foo ok 5493 keyword-spacing valid ! typeof +foo ok 5494 keyword-spacing valid `${typeof foo}` ok 5495 keyword-spacing valid `${ typeof foo}` ok 5496 keyword-spacing valid <Foo onClick={typeof foo} /> ok 5497 keyword-spacing valid <Foo onClick={ typeof foo} /> ok 5498 keyword-spacing valid {} var [a] = b ok 5499 keyword-spacing valid {}var[a] = b ok 5500 keyword-spacing valid {} var [a] = b ok 5501 keyword-spacing valid {}var[a] = b ok 5502 keyword-spacing valid for (var foo in [1, 2, 3]) {} ok 5503 keyword-spacing valid {var a = b } ok 5504 keyword-spacing valid { var a = b } ok 5505 keyword-spacing valid ;var a = b ok 5506 keyword-spacing valid ; var a = b ok 5507 keyword-spacing valid {} void foo ok 5508 keyword-spacing valid {}void foo ok 5509 keyword-spacing valid {} void foo ok 5510 keyword-spacing valid {}void foo ok 5511 keyword-spacing valid [void foo] ok 5512 keyword-spacing valid [ void foo] ok 5513 keyword-spacing valid (() =>void foo) ok 5514 keyword-spacing valid (() => void foo) ok 5515 keyword-spacing valid {void foo } ok 5516 keyword-spacing valid { void foo } ok 5517 keyword-spacing valid (0,void foo) ok 5518 keyword-spacing valid (0, void foo) ok 5519 keyword-spacing valid a[void foo] ok 5520 keyword-spacing valid ({[void foo]: 0}) ok 5521 keyword-spacing valid a[ void foo] ok 5522 keyword-spacing valid ({[ void foo]: 0}) ok 5523 keyword-spacing valid ({a:void foo }) ok 5524 keyword-spacing valid ({a: void foo }) ok 5525 keyword-spacing valid ;void foo ok 5526 keyword-spacing valid ; void foo ok 5527 keyword-spacing valid (void foo) ok 5528 keyword-spacing valid ( void foo) ok 5529 keyword-spacing valid a =void foo ok 5530 keyword-spacing valid a = void foo ok 5531 keyword-spacing valid !void+foo ok 5532 keyword-spacing valid ! void +foo ok 5533 keyword-spacing valid `${void foo}` ok 5534 keyword-spacing valid `${ void foo}` ok 5535 keyword-spacing valid <Foo onClick={void foo} /> ok 5536 keyword-spacing valid <Foo onClick={ void foo} /> ok 5537 keyword-spacing valid {} while (a) {} ok 5538 keyword-spacing valid do {} while (a) ok 5539 keyword-spacing valid {}while(a) {} ok 5540 keyword-spacing valid do{}while(a) ok 5541 keyword-spacing valid {} while (a) {} ok 5542 keyword-spacing valid do{} while (a) ok 5543 keyword-spacing valid {}while(a) {} ok 5544 keyword-spacing valid do {}while(a) ok 5545 keyword-spacing valid do {} while (a) ok 5546 keyword-spacing valid do{} while(a) ok 5547 keyword-spacing valid {while (a) {}} ok 5548 keyword-spacing valid { while(a) {}} ok 5549 keyword-spacing valid ;while (a); ok 5550 keyword-spacing valid do;while (a); ok 5551 keyword-spacing valid ; while(a) ; ok 5552 keyword-spacing valid do ; while(a) ; ok 5553 keyword-spacing valid {} with (obj) {} ok 5554 keyword-spacing valid {}with(obj) {} ok 5555 keyword-spacing valid {} with (obj) {} ok 5556 keyword-spacing valid {}with(obj) {} ok 5557 keyword-spacing valid {with (obj) {}} ok 5558 keyword-spacing valid { with(obj) {}} ok 5559 keyword-spacing valid ;with (obj) {} ok 5560 keyword-spacing valid ; with(obj) {} ok 5561 keyword-spacing valid function* foo() { {} yield foo } ok 5562 keyword-spacing valid function* foo() { {}yield foo } ok 5563 keyword-spacing valid function* foo() { {} yield foo } ok 5564 keyword-spacing valid function* foo() { {}yield foo } ok 5565 keyword-spacing valid function* foo() { [yield] } ok 5566 keyword-spacing valid function* foo() { [ yield ] } ok 5567 keyword-spacing valid function* foo() {yield} ok 5568 keyword-spacing valid function* foo() { yield } ok 5569 keyword-spacing valid function* foo() { (0,yield foo) } ok 5570 keyword-spacing valid function* foo() { (0, yield foo) } ok 5571 keyword-spacing valid function* foo() { a[yield] } ok 5572 keyword-spacing valid function* foo() { ({[yield]: 0}) } ok 5573 keyword-spacing valid function* foo() { a[ yield ] } ok 5574 keyword-spacing valid function* foo() { ({[ yield ]: 0}) } ok 5575 keyword-spacing valid function* foo() { ({a:yield foo }) } ok 5576 keyword-spacing valid function* foo() { ({a: yield foo }) } ok 5577 keyword-spacing valid function* foo() { ;yield; } ok 5578 keyword-spacing valid function* foo() { ; yield ; } ok 5579 keyword-spacing valid function* foo() { (yield) } ok 5580 keyword-spacing valid function* foo() { ( yield ) } ok 5581 keyword-spacing valid function* foo() { a =yield foo } ok 5582 keyword-spacing valid function* foo() { a = yield foo } ok 5583 keyword-spacing valid function* foo() { yield+foo } ok 5584 keyword-spacing valid function* foo() { yield +foo } ok 5585 keyword-spacing valid `${yield}` ok 5586 keyword-spacing valid `${ yield}` ok 5587 keyword-spacing valid function* foo() { <Foo onClick={yield} /> } ok 5588 keyword-spacing valid function* foo() { <Foo onClick={ yield } /> } ok 5589 keyword-spacing valid @dec class Foo {} ok 5590 keyword-spacing valid class Foo { @dec get bar() {} @dec set baz() {} @dec async baw() {} } ok 5591 keyword-spacing valid class Foo { @dec static qux() {} @dec static get bar() {} @dec static set baz() {} @dec static async baw() {} } ok 5592 keyword-spacing valid symbol => 4; ok 5593 keyword-spacing invalid import *as a from "foo" ok 5594 keyword-spacing invalid import* as a from"foo" ok 5595 keyword-spacing invalid import*as a from"foo" ok 5596 keyword-spacing invalid import * as a from "foo" ok 5597 keyword-spacing invalid {}async function foo() {} ok 5598 keyword-spacing invalid {} async function foo() {} ok 5599 keyword-spacing invalid {}async function foo() {} ok 5600 keyword-spacing invalid {} async function foo() {} ok 5601 keyword-spacing invalid {}async () => {} ok 5602 keyword-spacing invalid {} async () => {} ok 5603 keyword-spacing invalid {}async () => {} ok 5604 keyword-spacing invalid {} async () => {} ok 5605 keyword-spacing invalid ({async[b]() {}}) ok 5606 keyword-spacing invalid ({async [b]() {}}) ok 5607 keyword-spacing invalid ({async[b]() {}}) ok 5608 keyword-spacing invalid ({async [b]() {}}) ok 5609 keyword-spacing invalid class A {a(){}async[b]() {}} ok 5610 keyword-spacing invalid class A {a(){} async [b]() {}} ok 5611 keyword-spacing invalid class A {a(){}async[b]() {}} ok 5612 keyword-spacing invalid class A {a(){} async [b]() {}} ok 5613 keyword-spacing invalid async function wrap() { {}await a } ok 5614 keyword-spacing invalid async function wrap() { {} await a } ok 5615 keyword-spacing invalid async function wrap() { {}await a } ok 5616 keyword-spacing invalid async function wrap() { {} await a } ok 5617 keyword-spacing invalid async function wrap() { for await(x of xs); } ok 5618 keyword-spacing invalid async function wrap() { for await (x of xs); } ok 5619 keyword-spacing invalid async function wrap() { for await(x of xs); } ok 5620 keyword-spacing invalid async function wrap() { for await (x of xs); } ok 5621 keyword-spacing invalid A: for (;;) { {}break A; } ok 5622 keyword-spacing invalid A: for(;;) { {} break A; } ok 5623 keyword-spacing invalid A: for(;;) { {}break A; } ok 5624 keyword-spacing invalid A: for (;;) { {} break A; } ok 5625 keyword-spacing invalid switch (a) { case 0: {}case+1: } ok 5626 keyword-spacing invalid switch (a) { case 0: {}case(1): } ok 5627 keyword-spacing invalid switch(a) { case 0: {} case +1: } ok 5628 keyword-spacing invalid switch(a) { case 0: {} case (1): } ok 5629 keyword-spacing invalid switch(a) { case 0: {}case+1: } ok 5630 keyword-spacing invalid switch (a) { case 0: {} case +1: } ok 5631 keyword-spacing invalid try {}catch(e) {} ok 5632 keyword-spacing invalid try{} catch (e) {} ok 5633 keyword-spacing invalid try{}catch(e) {} ok 5634 keyword-spacing invalid try {} catch (e) {} ok 5635 keyword-spacing invalid {}class Bar {} ok 5636 keyword-spacing invalid (class{}) ok 5637 keyword-spacing invalid {} class Bar {} ok 5638 keyword-spacing invalid (class {}) ok 5639 keyword-spacing invalid {}class Bar {} ok 5640 keyword-spacing invalid {} class Bar {} ok 5641 keyword-spacing invalid {}const[a] = b ok 5642 keyword-spacing invalid {}const{a} = b ok 5643 keyword-spacing invalid {} const [a] = b ok 5644 keyword-spacing invalid {} const {a} = b ok 5645 keyword-spacing invalid {}const[a] = b ok 5646 keyword-spacing invalid {}const{a} = b ok 5647 keyword-spacing invalid {} const [a] = b ok 5648 keyword-spacing invalid {} const {a} = b ok 5649 keyword-spacing invalid A: for (;;) { {}continue A; } ok 5650 keyword-spacing invalid A: for(;;) { {} continue A; } ok 5651 keyword-spacing invalid A: for(;;) { {}continue A; } ok 5652 keyword-spacing invalid A: for (;;) { {} continue A; } ok 5653 keyword-spacing invalid {}debugger ok 5654 keyword-spacing invalid {} debugger ok 5655 keyword-spacing invalid {}debugger ok 5656 keyword-spacing invalid {} debugger ok 5657 keyword-spacing invalid switch (a) { case 0: {}default: } ok 5658 keyword-spacing invalid switch(a) { case 0: {} default: } ok 5659 keyword-spacing invalid switch(a) { case 0: {}default: } ok 5660 keyword-spacing invalid switch (a) { case 0: {} default: } ok 5661 keyword-spacing invalid {}delete foo.a ok 5662 keyword-spacing invalid {} delete foo.a ok 5663 keyword-spacing invalid {}delete foo.a ok 5664 keyword-spacing invalid {} delete foo.a ok 5665 keyword-spacing invalid {}do{} while (true) ok 5666 keyword-spacing invalid {} do {}while(true) ok 5667 keyword-spacing invalid {}do{}while(true) ok 5668 keyword-spacing invalid {} do {} while (true) ok 5669 keyword-spacing invalid if (a) {}else{} ok 5670 keyword-spacing invalid if (a) {}else if (b) {} ok 5671 keyword-spacing invalid if (a) {}else(0) ok 5672 keyword-spacing invalid if (a) {}else[] ok 5673 keyword-spacing invalid if (a) {}else+1 ok 5674 keyword-spacing invalid if (a) {}else"a" ok 5675 keyword-spacing invalid if(a){} else {} ok 5676 keyword-spacing invalid if(a){} else if(b) {} ok 5677 keyword-spacing invalid if(a) {} else (0) ok 5678 keyword-spacing invalid if(a) {} else [] ok 5679 keyword-spacing invalid if(a) {} else +1 ok 5680 keyword-spacing invalid if(a) {} else "a" ok 5681 keyword-spacing invalid if(a) {}else{} ok 5682 keyword-spacing invalid if (a) {} else {} ok 5683 keyword-spacing invalid if (a) {}else {} ok 5684 keyword-spacing invalid if (a) {} else{} ok 5685 keyword-spacing invalid if(a) {} else{} ok 5686 keyword-spacing invalid if(a) {}else {} ok 5687 keyword-spacing invalid var a = 0; {}export{a} ok 5688 keyword-spacing invalid var a = 0; {}export default a ok 5689 keyword-spacing invalid var a = 0; export default{a} ok 5690 keyword-spacing invalid {}export* from "a" ok 5691 keyword-spacing invalid var a = 0; {} export {a} ok 5692 keyword-spacing invalid var a = 0; {}export{a} ok 5693 keyword-spacing invalid var a = 0; {} export {a} ok 5694 keyword-spacing invalid class Bar extends[] {} ok 5695 keyword-spacing invalid (class extends[] {}) ok 5696 keyword-spacing invalid class Bar extends [] {} ok 5697 keyword-spacing invalid (class extends [] {}) ok 5698 keyword-spacing invalid class Bar extends[] {} ok 5699 keyword-spacing invalid class Bar extends [] {} ok 5700 keyword-spacing invalid class Bar extends`}` {} ok 5701 keyword-spacing invalid try {}finally{} ok 5702 keyword-spacing invalid try{} finally {} ok 5703 keyword-spacing invalid try{}finally{} ok 5704 keyword-spacing invalid try {} finally {} ok 5705 keyword-spacing invalid {}for(;;) {} ok 5706 keyword-spacing invalid {}for(var foo in obj) {} ok 5707 keyword-spacing invalid {}for(var foo of list) {} ok 5708 keyword-spacing invalid {} for (;;) {} ok 5709 keyword-spacing invalid {} for (var foo in obj) {} ok 5710 keyword-spacing invalid {} for (var foo of list) {} ok 5711 keyword-spacing invalid {}for(;;) {} ok 5712 keyword-spacing invalid {}for(var foo in obj) {} ok 5713 keyword-spacing invalid {}for(var foo of list) {} ok 5714 keyword-spacing invalid {} for (;;) {} ok 5715 keyword-spacing invalid {} for (var foo in obj) {} ok 5716 keyword-spacing invalid {} for (var foo of list) {} ok 5717 keyword-spacing invalid import {foo}from"foo" ok 5718 keyword-spacing invalid export {foo}from"foo" ok 5719 keyword-spacing invalid export *from"foo" ok 5720 keyword-spacing invalid import{foo} from "foo" ok 5721 keyword-spacing invalid export{foo} from "foo" ok 5722 keyword-spacing invalid export* from "foo" ok 5723 keyword-spacing invalid import{foo}from"foo" ok 5724 keyword-spacing invalid export{foo}from"foo" ok 5725 keyword-spacing invalid export*from"foo" ok 5726 keyword-spacing invalid import {foo} from "foo" ok 5727 keyword-spacing invalid export {foo} from "foo" ok 5728 keyword-spacing invalid export * from "foo" ok 5729 keyword-spacing invalid {}function foo() {} ok 5730 keyword-spacing invalid {} function foo() {} ok 5731 keyword-spacing invalid {}function foo() {} ok 5732 keyword-spacing invalid {} function foo() {} ok 5733 keyword-spacing invalid ({ get[b]() {} }) ok 5734 keyword-spacing invalid class A { a() {}get[b]() {} } ok 5735 keyword-spacing invalid class A { a() {} static get[b]() {} } ok 5736 keyword-spacing invalid ({ get [b]() {} }) ok 5737 keyword-spacing invalid class A { a() {} get [b]() {} } ok 5738 keyword-spacing invalid class A { a() {}static get [b]() {} } ok 5739 keyword-spacing invalid ({ get[b]() {} }) ok 5740 keyword-spacing invalid class A { a() {}get[b]() {} } ok 5741 keyword-spacing invalid ({ get [b]() {} }) ok 5742 keyword-spacing invalid class A { a() {} get [b]() {} } ok 5743 keyword-spacing invalid {}if(a) {} ok 5744 keyword-spacing invalid if (a) {} else if(b) {} ok 5745 keyword-spacing invalid {} if (a) {} ok 5746 keyword-spacing invalid if(a) {}else if (b) {} ok 5747 keyword-spacing invalid {}if(a) {} ok 5748 keyword-spacing invalid if (a) {}else if(b) {} ok 5749 keyword-spacing invalid {} if (a) {} ok 5750 keyword-spacing invalid if(a) {} else if (b) {} ok 5751 keyword-spacing invalid {}import{a} from "foo" ok 5752 keyword-spacing invalid {}import a from "foo" ok 5753 keyword-spacing invalid {}import* as a from "a" ok 5754 keyword-spacing invalid {} import {a}from"foo" ok 5755 keyword-spacing invalid {} import *as a from"foo" ok 5756 keyword-spacing invalid {}import{a}from"foo" ok 5757 keyword-spacing invalid {}import*as a from"foo" ok 5758 keyword-spacing invalid {} import {a} from "foo" ok 5759 keyword-spacing invalid {} import * as a from "foo" ok 5760 keyword-spacing invalid for ([foo]in{foo: 0}) {} ok 5761 keyword-spacing invalid for([foo] in {foo: 0}) {} ok 5762 keyword-spacing invalid for([foo]in{foo: 0}) {} ok 5763 keyword-spacing invalid for ([foo] in {foo: 0}) {} ok 5764 keyword-spacing invalid {}let[a] = b ok 5765 keyword-spacing invalid {} let [a] = b ok 5766 keyword-spacing invalid {}let[a] = b ok 5767 keyword-spacing invalid {} let [a] = b ok 5768 keyword-spacing invalid {}new foo() ok 5769 keyword-spacing invalid {} new foo() ok 5770 keyword-spacing invalid {}new foo() ok 5771 keyword-spacing invalid {} new foo() ok 5772 keyword-spacing invalid for ([foo]of{foo: 0}) {} ok 5773 keyword-spacing invalid for([foo] of {foo: 0}) {} ok 5774 keyword-spacing invalid for([foo]of{foo: 0}) {} ok 5775 keyword-spacing invalid for ([foo] of {foo: 0}) {} ok 5776 keyword-spacing invalid function foo() { {}return+a } ok 5777 keyword-spacing invalid function foo() { {} return +a } ok 5778 keyword-spacing invalid function foo() { {}return+a } ok 5779 keyword-spacing invalid function foo() { {} return +a } ok 5780 keyword-spacing invalid ({ set[b](value) {} }) ok 5781 keyword-spacing invalid class A { a() {}set[b](value) {} } ok 5782 keyword-spacing invalid class A { a() {} static set[b](value) {} } ok 5783 keyword-spacing invalid ({ set [b](value) {} }) ok 5784 keyword-spacing invalid class A { a() {} set [b](value) {} } ok 5785 keyword-spacing invalid ({ set[b](value) {} }) ok 5786 keyword-spacing invalid class A { a() {}set[b](value) {} } ok 5787 keyword-spacing invalid ({ set [b](value) {} }) ok 5788 keyword-spacing invalid class A { a() {} set [b](value) {} } ok 5789 keyword-spacing invalid class A { a() {}static[b]() {} } ok 5790 keyword-spacing invalid class A { a() {}static get [b]() {} } ok 5791 keyword-spacing invalid class A { a() {} static [b]() {} } ok 5792 keyword-spacing invalid class A { a() {} static get[b]() {} } ok 5793 keyword-spacing invalid class A { a() {}static[b]() {} } ok 5794 keyword-spacing invalid class A { a() {} static [b]() {} } ok 5795 keyword-spacing invalid class A { a() { {}super[b]; } } ok 5796 keyword-spacing invalid class A { a() { {} super[b]; } } ok 5797 keyword-spacing invalid class A { a() { {}super[b]; } } ok 5798 keyword-spacing invalid class A { a() { {} super[b]; } } ok 5799 keyword-spacing invalid {}switch(a) {} ok 5800 keyword-spacing invalid {} switch (a) {} ok 5801 keyword-spacing invalid {}switch(a) {} ok 5802 keyword-spacing invalid {} switch (a) {} ok 5803 keyword-spacing invalid {}this[a] ok 5804 keyword-spacing invalid {} this[a] ok 5805 keyword-spacing invalid {}this[a] ok 5806 keyword-spacing invalid {} this[a] ok 5807 keyword-spacing invalid function foo() { {}throw+a } ok 5808 keyword-spacing invalid function foo() { {} throw +a } ok 5809 keyword-spacing invalid function foo() { {}throw+a } ok 5810 keyword-spacing invalid function foo() { {} throw +a } ok 5811 keyword-spacing invalid {}try{} finally {} ok 5812 keyword-spacing invalid {} try {}finally{} ok 5813 keyword-spacing invalid {}try{}finally{} ok 5814 keyword-spacing invalid {} try {} finally {} ok 5815 keyword-spacing invalid {}typeof foo ok 5816 keyword-spacing invalid {} typeof foo ok 5817 keyword-spacing invalid {}typeof foo ok 5818 keyword-spacing invalid {} typeof foo ok 5819 keyword-spacing invalid {}var[a] = b ok 5820 keyword-spacing invalid {} var [a] = b ok 5821 keyword-spacing invalid {}var[a] = b ok 5822 keyword-spacing invalid {} var [a] = b ok 5823 keyword-spacing invalid {}void foo ok 5824 keyword-spacing invalid {} void foo ok 5825 keyword-spacing invalid {}void foo ok 5826 keyword-spacing invalid {} void foo ok 5827 keyword-spacing invalid {}while(a) {} ok 5828 keyword-spacing invalid do {}while(a) ok 5829 keyword-spacing invalid {} while (a) {} ok 5830 keyword-spacing invalid do{} while (a) ok 5831 keyword-spacing invalid {}while(a) {} ok 5832 keyword-spacing invalid do{}while(a) ok 5833 keyword-spacing invalid {} while (a) {} ok 5834 keyword-spacing invalid do {} while (a) ok 5835 keyword-spacing invalid {}with(obj) {} ok 5836 keyword-spacing invalid {} with (obj) {} ok 5837 keyword-spacing invalid {}with(obj) {} ok 5838 keyword-spacing invalid {} with (obj) {} ok 5839 keyword-spacing invalid function* foo() { {}yield foo } ok 5840 keyword-spacing invalid function* foo() { {} yield foo } ok 5841 keyword-spacing invalid function* foo() { {}yield foo } ok 5842 keyword-spacing invalid function* foo() { {} yield foo } ok 5843 keyword-spacing invalid class Foo { @desc({set a(value) {}, get a() {}, async c() {}}) async[foo]() {} } ok 5844 line-comment-position valid // valid comment 1 + 1; ok 5845 line-comment-position valid /* block comments are skipped */ 1 + 1; ok 5846 line-comment-position valid 1 + 1; /* block comments are skipped */ ok 5847 line-comment-position valid 1 + 1; /* eslint eqeqeq: 'error' */ ok 5848 line-comment-position valid 1 + 1; /* eslint-disable */ ok 5849 line-comment-position valid 1 + 1; /* eslint-enable */ ok 5850 line-comment-position valid 1 + 1; // eslint-disable-line ok 5851 line-comment-position valid // eslint-disable-next-line 1 + 1; ok 5852 line-comment-position valid 1 + 1; // global MY_GLOBAL, ANOTHER ok 5853 line-comment-position valid 1 + 1; // globals MY_GLOBAL: true ok 5854 line-comment-position valid 1 + 1; // exported MY_GLOBAL, ANOTHER ok 5855 line-comment-position valid 1 + 1; // fallthrough ok 5856 line-comment-position valid 1 + 1; // fall through ok 5857 line-comment-position valid 1 + 1; // falls through ok 5858 line-comment-position valid 1 + 1; // jslint vars: true ok 5859 line-comment-position valid 1 + 1; // jshint ignore:line ok 5860 line-comment-position valid 1 + 1; // istanbul ignore next ok 5861 line-comment-position valid 1 + 1; // linter excepted comment ok 5862 line-comment-position valid // Meep console.log('Meep'); ok 5863 line-comment-position valid 1 + 1; // valid comment ok 5864 line-comment-position valid // jscs: disable 1 + 1; ok 5865 line-comment-position valid // jscs: enable 1 + 1; ok 5866 line-comment-position valid /* block comments are skipped */ 1 + 1; ok 5867 line-comment-position valid /*block comment*/ /*block comment*/ 1 + 1; ok 5868 line-comment-position valid 1 + 1; /* block comment are skipped */ ok 5869 line-comment-position valid 1 + 1; // jshint strict: true ok 5870 line-comment-position valid // pragma valid comment 1 + 1; ok 5871 line-comment-position valid // above 1 + 1; // ignored ok 5872 line-comment-position valid foo; // eslint-disable-line no-alert ok 5873 line-comment-position invalid 1 + 1; // invalid comment ok 5874 line-comment-position invalid 1 + 1; // globalization is a word ok 5875 line-comment-position invalid // jscs: disable 1 + 1; ok 5876 line-comment-position invalid // jscs: disable 1 + 1; ok 5877 line-comment-position invalid // jscs: disable 1 + 1; ok 5878 line-comment-position invalid 1 + 1; // mentioning falls through ok 5879 line-comment-position invalid // invalid comment 1 + 1; ok 5880 line-comment-position invalid // pragma // invalid 1 + 1; ok 5881 line-comment-position invalid 1 + 1; // linter 2 + 2; // invalid comment ok 5882 linebreak-style valid var a = 'a', b = 'b'; function foo(params) { /* do stuff */ } ok 5883 linebreak-style valid var a = 'a', b = 'b'; function foo(params) { /* do stuff */ } ok 5884 linebreak-style valid var a = 'a', b = 'b'; function foo(params) { /* do stuff */ } ok 5885 linebreak-style valid var b = 'b'; ok 5886 linebreak-style valid var b = 'b'; ok 5887 linebreak-style invalid var a = 'a'; ok 5888 linebreak-style invalid var a = 'a'; ok 5889 linebreak-style invalid var a = 'a'; ok 5890 linebreak-style invalid var a = 'a', b = 'b'; function foo(params) { /* do stuff */ } ok 5891 linebreak-style invalid var a = 'a', b = 'b'; function foo(params) { /* do stuff */ } ok 5892 lines-around-comment valid bar() /** block block block * block */ var a = 1; ok 5893 lines-around-comment valid bar() /** block block block * block */ var a = 1; ok 5894 lines-around-comment valid bar() // line line line var a = 1; ok 5895 lines-around-comment valid bar() // line line line var a = 1; ok 5896 lines-around-comment valid bar() // line line line var a = 1; ok 5897 lines-around-comment valid bar() // line line line var a = 1; ok 5898 lines-around-comment valid foo() // line line line var a = 1; ok 5899 lines-around-comment valid foo() // line line line var a = 1; ok 5900 lines-around-comment valid foo() // line line line // line line var a = 1; ok 5901 lines-around-comment valid // line line line // line line ok 5902 lines-around-comment valid bar() /** A Block comment with a an empty line after * */ var a = 1; ok 5903 lines-around-comment valid bar() /** block block block * block */ var a = 1; ok 5904 lines-around-comment valid /** block block block */ /* block block */ ok 5905 lines-around-comment valid bar() /** block block block * block */ var a = 1; ok 5906 lines-around-comment valid foo() // An inline comment with a an empty line after var a = 1; ok 5907 lines-around-comment valid foo(); bar() /* An inline block comment with a an empty line after * */ var a = 1; ok 5908 lines-around-comment valid bar() /** block block block * block */ //line line line var a = 1; ok 5909 lines-around-comment valid bar() /** block block block * block */ //line line line var a = 1; ok 5910 lines-around-comment valid var a, // line b; ok 5911 lines-around-comment valid function foo(){ // line at block start var g = 1; } ok 5912 lines-around-comment valid function foo(){// line at block start var g = 1; } ok 5913 lines-around-comment valid var foo = function(){ // line at block start var g = 1; } ok 5914 lines-around-comment valid var foo = function(){ // line at block start } ok 5915 lines-around-comment valid if(true){ // line at block start var g = 1; } ok 5916 lines-around-comment valid if(true){ // line at block start var g = 1; } ok 5917 lines-around-comment valid if(true){ // line at block start } ok 5918 lines-around-comment valid if(true){ bar(); } else { // line at block start } ok 5919 lines-around-comment valid switch ('foo'){ case 'foo': // line at switch case start break; } ok 5920 lines-around-comment valid switch ('foo'){ case 'foo': // line at switch case start break; } ok 5921 lines-around-comment valid switch ('foo'){ case 'foo': break; default: // line at switch case start break; } ok 5922 lines-around-comment valid switch ('foo'){ case 'foo': break; default: // line at switch case start break; } ok 5923 lines-around-comment valid function foo(){ /* block comment at block start */ var g = 1; } ok 5924 lines-around-comment valid function foo(){/* block comment at block start */ var g = 1; } ok 5925 lines-around-comment valid var foo = function(){ /* block comment at block start */ var g = 1; } ok 5926 lines-around-comment valid if(true){ /* block comment at block start */ var g = 1; } ok 5927 lines-around-comment valid if(true){ /* block comment at block start */ var g = 1; } ok 5928 lines-around-comment valid while(true){ /* block comment at block start */ var g = 1; } ok 5929 lines-around-comment valid class A { /** * hi */ constructor() {} } ok 5930 lines-around-comment valid class A { /** * hi */ constructor() {} } ok 5931 lines-around-comment valid class A { /** * hi */ constructor() {} } ok 5932 lines-around-comment valid switch ('foo'){ case 'foo': /* block comment at switch case start */ break; } ok 5933 lines-around-comment valid switch ('foo'){ case 'foo': /* block comment at switch case start */ break; } ok 5934 lines-around-comment valid switch ('foo'){ case 'foo': break; default: /* block comment at switch case start */ break; } ok 5935 lines-around-comment valid switch ('foo'){ case 'foo': break; default: /* block comment at switch case start */ break; } ok 5936 lines-around-comment valid var a, // line b; ok 5937 lines-around-comment valid function foo(){ var g = 91; // line at block end } ok 5938 lines-around-comment valid function foo(){ var g = 61; // line at block end } ok 5939 lines-around-comment valid var foo = function(){ var g = 1; // line at block end } ok 5940 lines-around-comment valid if(true){ var g = 1; // line at block end } ok 5941 lines-around-comment valid if(true){ var g = 1; // line at block end } ok 5942 lines-around-comment valid switch ('foo'){ case 'foo': var g = 1; // line at switch case end } ok 5943 lines-around-comment valid switch ('foo'){ case 'foo': var g = 1; // line at switch case end } ok 5944 lines-around-comment valid switch ('foo'){ case 'foo': break; default: var g = 1; // line at switch case end } ok 5945 lines-around-comment valid switch ('foo'){ case 'foo': break; default: var g = 1; // line at switch case end } ok 5946 lines-around-comment valid while(true){ // line at block start and end } ok 5947 lines-around-comment valid while(true){ // line at block start and end } ok 5948 lines-around-comment valid while(true){ // line at block start and end } ok 5949 lines-around-comment valid while(true){ // line at block start and end } ok 5950 lines-around-comment valid while(true){ // line at block start and end } ok 5951 lines-around-comment valid function foo(){ var g = 1; /* block comment at block end */ } ok 5952 lines-around-comment valid function foo(){ var g = 1; /* block comment at block end */} ok 5953 lines-around-comment valid var foo = function(){ var g = 1; /* block comment at block end */ } ok 5954 lines-around-comment valid if(true){ var g = 1; /* block comment at block end */ } ok 5955 lines-around-comment valid if(true){ var g = 1; /* block comment at block end */ } ok 5956 lines-around-comment valid while(true){ var g = 1; /* block comment at block end */} ok 5957 lines-around-comment valid class B { constructor() {} /** * hi */ } ok 5958 lines-around-comment valid class B { constructor() {} /** * hi */ } ok 5959 lines-around-comment valid class B { constructor() {} /** * hi */ } ok 5960 lines-around-comment valid switch ('foo'){ case 'foo': var g = 1; /* block comment at switch case end */ } ok 5961 lines-around-comment valid switch ('foo'){ case 'foo': var g = 1; /* block comment at switch case end */ } ok 5962 lines-around-comment valid switch ('foo'){ case 'foo': break; default: var g = 1; /* block comment at switch case end */ } ok 5963 lines-around-comment valid switch ('foo'){ case 'foo': break; default: var g = 1; /* block comment at switch case end */ } ok 5964 lines-around-comment valid var a, // line b; ok 5965 lines-around-comment valid var obj = { // line at object start g: 1 }; ok 5966 lines-around-comment valid function hi() { return { // hi test: function() { } } } ok 5967 lines-around-comment valid var obj = { /* block comment at object start*/ g: 1 }; ok 5968 lines-around-comment valid function hi() { return { /** * hi */ test: function() { } } } ok 5969 lines-around-comment valid const { // line at object start g: a } = {}; ok 5970 lines-around-comment valid const { // line at object start g } = {}; ok 5971 lines-around-comment valid const { /* block comment at object-like start*/ g: a } = {}; ok 5972 lines-around-comment valid const { /* block comment at object-like start*/ g } = {}; ok 5973 lines-around-comment valid var a, // line b; ok 5974 lines-around-comment valid var obj = { g: 1 // line at object end }; ok 5975 lines-around-comment valid function hi() { return { test: function() { } // hi } } ok 5976 lines-around-comment valid var obj = { g: 1 /* block comment at object end*/ }; ok 5977 lines-around-comment valid function hi() { return { test: function() { } /** * hi */ } } ok 5978 lines-around-comment valid const { g: a // line at object end } = {}; ok 5979 lines-around-comment valid const { g // line at object end } = {}; ok 5980 lines-around-comment valid const { g: a /* block comment at object-like end*/ } = {}; ok 5981 lines-around-comment valid const { g /* block comment at object-like end*/ } = {}; ok 5982 lines-around-comment valid var a, // line b; ok 5983 lines-around-comment valid var arr = [ // line at array start 1 ]; ok 5984 lines-around-comment valid var arr = [ /* block comment at array start*/ 1 ]; ok 5985 lines-around-comment valid const [ // line at array start a ] = []; ok 5986 lines-around-comment valid const [ /* block comment at array start*/ a ] = []; ok 5987 lines-around-comment valid var a, // line b; ok 5988 lines-around-comment valid var arr = [ 1 // line at array end ]; ok 5989 lines-around-comment valid var arr = [ 1 /* block comment at array end*/ ]; ok 5990 lines-around-comment valid const [ a // line at array end ] = []; ok 5991 lines-around-comment valid const [ a /* block comment at array end*/ ] = []; ok 5992 lines-around-comment valid foo; /* eslint-disable no-underscore-dangle */ this._values = values; this._values2 = true; /* eslint-enable no-underscore-dangle */ bar ok 5993 lines-around-comment valid foo; /* eslint */ ok 5994 lines-around-comment valid foo; /* jshint */ ok 5995 lines-around-comment valid foo; /* jslint */ ok 5996 lines-around-comment valid foo; /* istanbul */ ok 5997 lines-around-comment valid foo; /* global */ ok 5998 lines-around-comment valid foo; /* globals */ ok 5999 lines-around-comment valid foo; /* exported */ ok 6000 lines-around-comment valid foo; /* jscs */ ok 6001 lines-around-comment valid foo /* this is pragmatic */ ok 6002 lines-around-comment valid foo /* this is pragmatic */ ok 6003 lines-around-comment invalid bar() /** block block block * block */ var a = 1; ok 6004 lines-around-comment invalid baz() // A line comment with no empty line after var a = 1; ok 6005 lines-around-comment invalid baz() // A line comment with no empty line after var a = 1; ok 6006 lines-around-comment invalid // A line comment with no empty line after var a = 1; ok 6007 lines-around-comment invalid baz() // A line comment with no empty line after var a = 1; ok 6008 lines-around-comment invalid bar() /** * block block block */ var a = 1; ok 6009 lines-around-comment invalid bar() /* first block comment */ /* second block comment */ var a = 1; ok 6010 lines-around-comment invalid bar() /* first block comment */ /* second block comment */ var a = 1; ok 6011 lines-around-comment invalid bar() /** * block block block */ var a = 1; ok 6012 lines-around-comment invalid bar() /** * block block block */ var a = 1; ok 6013 lines-around-comment invalid var a, // line b; ok 6014 lines-around-comment invalid function foo(){ var a = 1; // line at block start var g = 1; } ok 6015 lines-around-comment invalid var a, // line b; ok 6016 lines-around-comment invalid function foo(){ var a = 1; // line at block start var g = 1; } ok 6017 lines-around-comment invalid switch ('foo'){ case 'foo': // line at switch case start break; } ok 6018 lines-around-comment invalid switch ('foo'){ case 'foo': break; default: // line at switch case start break; } ok 6019 lines-around-comment invalid while(true){ // line at block start and end } ok 6020 lines-around-comment invalid while(true){ // line at block start and end } ok 6021 lines-around-comment invalid class A { // line at class start constructor() {} } ok 6022 lines-around-comment invalid class A { // line at class start constructor() {} } ok 6023 lines-around-comment invalid class B { constructor() {} // line at class end } ok 6024 lines-around-comment invalid class B { constructor() {} // line at class end } ok 6025 lines-around-comment invalid switch ('foo'){ case 'foo': var g = 1; // line at switch case end } ok 6026 lines-around-comment invalid switch ('foo'){ case 'foo': break; default: var g = 1; // line at switch case end } ok 6027 lines-around-comment invalid var obj = { // line at object start g: 1 }; ok 6028 lines-around-comment invalid function hi() { return { // hi test: function() { } } } ok 6029 lines-around-comment invalid var obj = { /* block comment at object start*/ g: 1 }; ok 6030 lines-around-comment invalid function hi() { return { /** * hi */ test: function() { } } } ok 6031 lines-around-comment invalid const { // line at object start g: a } = {}; ok 6032 lines-around-comment invalid const { // line at object start g } = {}; ok 6033 lines-around-comment invalid const { /* block comment at object-like start*/ g: a } = {}; ok 6034 lines-around-comment invalid const { /* block comment at object-like start*/ g } = {}; ok 6035 lines-around-comment invalid var obj = { g: 1 // line at object end }; ok 6036 lines-around-comment invalid function hi() { return { test: function() { } // hi } } ok 6037 lines-around-comment invalid var obj = { g: 1 /* block comment at object end*/ }; ok 6038 lines-around-comment invalid function hi() { return { test: function() { } /** * hi */ } } ok 6039 lines-around-comment invalid const { g: a // line at object end } = {}; ok 6040 lines-around-comment invalid const { g // line at object end } = {}; ok 6041 lines-around-comment invalid const { g: a /* block comment at object-like end*/ } = {}; ok 6042 lines-around-comment invalid const { g /* block comment at object-like end*/ } = {}; ok 6043 lines-around-comment invalid var arr = [ // line at array start 1 ]; ok 6044 lines-around-comment invalid var arr = [ /* block comment at array start*/ 1 ]; ok 6045 lines-around-comment invalid const [ // line at array start a ] = []; ok 6046 lines-around-comment invalid const [ /* block comment at array start*/ a ] = []; ok 6047 lines-around-comment invalid var arr = [ 1 // line at array end ]; ok 6048 lines-around-comment invalid var arr = [ 1 /* block comment at array end*/ ]; ok 6049 lines-around-comment invalid const [ a // line at array end ] = []; ok 6050 lines-around-comment invalid const [ a /* block comment at array end*/ ] = []; ok 6051 lines-around-comment invalid foo; /* eslint-disable no-underscore-dangle */ this._values = values; this._values2 = true; /* eslint-enable no-underscore-dangle */ bar ok 6052 lines-around-comment invalid foo; /* eslint */ ok 6053 lines-around-comment invalid foo; /* jshint */ ok 6054 lines-around-comment invalid foo; /* jslint */ ok 6055 lines-around-comment invalid foo; /* istanbul */ ok 6056 lines-around-comment invalid foo; /* global */ ok 6057 lines-around-comment invalid foo; /* globals */ ok 6058 lines-around-comment invalid foo; /* exported */ ok 6059 lines-around-comment invalid foo; /* jscs */ ok 6060 lines-around-comment invalid foo /* something else */ ok 6061 lines-around-comment invalid foo /* eslint */ ok 6062 lines-around-comment invalid foo; /* fallthrough */ ok 6063 lines-around-directive valid //comment 'use strict'; 'use asm'; var foo; ok 6064 lines-around-directive valid 'use strict'; var foo; ok 6065 lines-around-directive valid 'use strict'; var foo; ok 6066 lines-around-directive valid 'use strict'; //comment var foo; ok 6067 lines-around-directive valid 'use strict'; /* multiline comment */ var foo; ok 6068 lines-around-directive valid 'use strict'; 'use asm'; var foo; ok 6069 lines-around-directive valid 'use strict'; 'use asm'; var foo; ok 6070 lines-around-directive valid 'use strict'; 'use asm'; //comment var foo; ok 6071 lines-around-directive valid 'use strict'; 'use asm'; /* multiline comment */ var foo; ok 6072 lines-around-directive valid !/usr/bin/env node 'use strict'; var foo; ok 6073 lines-around-directive valid !/usr/bin/env node //comment 'use strict'; var foo; ok 6074 lines-around-directive valid //comment 'use strict'; var foo; ok 6075 lines-around-directive valid /* multiline comment */ 'use strict'; var foo; ok 6076 lines-around-directive valid !/usr/bin/env node 'use strict'; 'use asm'; var foo; ok 6077 lines-around-directive valid !/usr/bin/env node //comment 'use strict'; 'use asm'; var foo; ok 6078 lines-around-directive valid //comment 'use strict'; 'use asm'; var foo; ok 6079 lines-around-directive valid /* multiline comment */ 'use strict'; 'use asm'; var foo; ok 6080 lines-around-directive valid function foo() { 'use strict'; var bar; } ok 6081 lines-around-directive valid function foo() { 'use strict'; var bar; } ok 6082 lines-around-directive valid () => { 'use strict'; var foo; } ok 6083 lines-around-directive valid () => { 'use strict'; var foo; } ok 6084 lines-around-directive valid function foo() { 'use strict'; 'use asm'; var bar; } ok 6085 lines-around-directive valid function foo() { 'use strict'; 'use asm'; var bar; } ok 6086 lines-around-directive valid () => { 'use strict'; 'use asm'; var foo; } ok 6087 lines-around-directive valid () => { 'use strict'; 'use asm'; var foo; } ok 6088 lines-around-directive valid function foo() { //comment 'use strict'; var bar; } ok 6089 lines-around-directive valid function foo() { /* multiline comment */ 'use strict'; var bar; } ok 6090 lines-around-directive valid () => { //comment 'use strict'; var foo; } ok 6091 lines-around-directive valid () => { /* multiline comment */ 'use strict'; var foo; } ok 6092 lines-around-directive valid function foo() { //comment 'use strict'; 'use asm'; var bar; } ok 6093 lines-around-directive valid function foo() { /* multiline comment */ 'use strict'; 'use asm'; var bar; } ok 6094 lines-around-directive valid () => { //comment 'use strict'; 'use asm'; var foo; } ok 6095 lines-around-directive valid () => { /* multiline comment */ 'use strict'; 'use asm'; var foo; } ok 6096 lines-around-directive valid /* * JSDoc comment */ function foo() { 'use strict'; var bar; } ok 6097 lines-around-directive valid function foo() { 'use strict'; } ok 6098 lines-around-directive valid 'use strict'; var foo; ok 6099 lines-around-directive valid 'use strict'; //comment var foo; ok 6100 lines-around-directive valid 'use strict'; /* multiline comment */ var foo; ok 6101 lines-around-directive valid 'use strict'; 'use asm'; var foo; ok 6102 lines-around-directive valid 'use strict'; 'use asm'; //comment var foo; ok 6103 lines-around-directive valid 'use strict'; 'use asm'; /* multiline comment */ var foo; ok 6104 lines-around-directive valid !/usr/bin/env node 'use strict'; var foo; ok 6105 lines-around-directive valid !/usr/bin/env node //comment 'use strict'; var foo; ok 6106 lines-around-directive valid //comment 'use strict'; var foo; ok 6107 lines-around-directive valid /* multiline comment */ 'use strict'; var foo; ok 6108 lines-around-directive valid !/usr/bin/env node 'use strict'; 'use asm'; var foo; ok 6109 lines-around-directive valid !/usr/bin/env node //comment 'use strict'; 'use asm'; var foo; ok 6110 lines-around-directive valid //comment 'use strict'; 'use asm'; var foo; ok 6111 lines-around-directive valid /* multiline comment */ 'use strict'; 'use asm'; var foo; ok 6112 lines-around-directive valid function foo() { 'use strict'; var bar; } ok 6113 lines-around-directive valid function foo() { 'use strict'; var bar; } ok 6114 lines-around-directive valid () => { 'use strict'; var foo; } ok 6115 lines-around-directive valid () => { 'use strict'; var foo; } ok 6116 lines-around-directive valid function foo() { 'use strict'; 'use asm'; var bar; } ok 6117 lines-around-directive valid function foo() { 'use strict'; 'use asm'; var bar; } ok 6118 lines-around-directive valid () => { 'use strict'; 'use asm'; var foo; } ok 6119 lines-around-directive valid () => { 'use strict'; 'use asm'; var foo; } ok 6120 lines-around-directive valid function foo() { //comment 'use strict'; var bar; } ok 6121 lines-around-directive valid function foo() { /* multiline comment */ 'use strict'; var bar; } ok 6122 lines-around-directive valid () => { //comment 'use strict'; var foo; } ok 6123 lines-around-directive valid () => { /* multiline comment */ 'use strict'; var foo; } ok 6124 lines-around-directive valid function foo() { //comment 'use strict'; 'use asm'; var bar; } ok 6125 lines-around-directive valid function foo() { /* multiline comment */ 'use strict'; 'use asm'; var bar; } ok 6126 lines-around-directive valid () => { //comment 'use strict'; 'use asm'; var foo; } ok 6127 lines-around-directive valid () => { /* multiline comment */ 'use strict'; 'use asm'; var foo; } ok 6128 lines-around-directive valid //comment 'use strict'; 'use asm'; var foo; ok 6129 lines-around-directive valid /* * JSDoc comment */ function foo() { 'use strict'; var bar; } ok 6130 lines-around-directive valid function foo() { 'use strict'; } ok 6131 lines-around-directive valid 'use strict'; var foo; ok 6132 lines-around-directive valid 'use strict'; //comment var foo; ok 6133 lines-around-directive valid 'use strict'; /* multiline comment */ var foo; ok 6134 lines-around-directive valid 'use strict'; 'use asm'; var foo; ok 6135 lines-around-directive valid 'use strict'; 'use asm'; //comment var foo; ok 6136 lines-around-directive valid 'use strict'; 'use asm'; /* multiline comment */ var foo; ok 6137 lines-around-directive valid !/usr/bin/env node 'use strict'; var foo; ok 6138 lines-around-directive valid //comment 'use strict'; var foo; ok 6139 lines-around-directive valid /* multiline comment */ 'use strict'; var foo; ok 6140 lines-around-directive valid !/usr/bin/env node 'use strict'; 'use asm'; var foo; ok 6141 lines-around-directive valid //comment 'use strict'; 'use asm'; var foo; ok 6142 lines-around-directive valid /* multiline comment */ 'use strict'; 'use asm'; var foo; ok 6143 lines-around-directive valid function foo() { 'use strict'; var bar; } ok 6144 lines-around-directive valid function foo() { 'use strict'; var bar; } ok 6145 lines-around-directive valid () => { 'use strict'; var foo; } ok 6146 lines-around-directive valid () => { 'use strict'; var foo; } ok 6147 lines-around-directive valid function foo() { 'use strict'; 'use asm'; var bar; } ok 6148 lines-around-directive valid function foo() { 'use strict'; 'use asm'; var bar; } ok 6149 lines-around-directive valid () => { 'use strict'; 'use asm'; var foo; } ok 6150 lines-around-directive valid () => { 'use strict'; 'use asm'; var foo; } ok 6151 lines-around-directive valid function foo() { //comment 'use strict'; var bar; } ok 6152 lines-around-directive valid function foo() { /* multiline comment */ 'use strict'; var bar; } ok 6153 lines-around-directive valid () => { //comment 'use strict'; var foo; } ok 6154 lines-around-directive valid () => { /* multiline comment */ 'use strict'; var foo; } ok 6155 lines-around-directive valid function foo() { //comment 'use strict'; 'use asm'; var bar; } ok 6156 lines-around-directive valid function foo() { /* multiline comment */ 'use strict'; 'use asm'; var bar; } ok 6157 lines-around-directive valid () => { //comment 'use strict'; 'use asm'; var foo; } ok 6158 lines-around-directive valid () => { /* multiline comment */ 'use strict'; 'use asm'; var foo; } ok 6159 lines-around-directive valid 'use strict'; var foo; ok 6160 lines-around-directive valid 'use strict'; var foo; ok 6161 lines-around-directive valid 'use strict'; //comment var foo; ok 6162 lines-around-directive valid 'use strict'; /* multiline comment */ var foo; ok 6163 lines-around-directive valid 'use strict'; 'use asm'; var foo; ok 6164 lines-around-directive valid 'use strict'; 'use asm'; var foo; ok 6165 lines-around-directive valid 'use strict'; 'use asm'; //comment var foo; ok 6166 lines-around-directive valid 'use strict'; 'use asm'; /* multiline comment */ var foo; ok 6167 lines-around-directive valid !/usr/bin/env node 'use strict'; var foo; ok 6168 lines-around-directive valid //comment 'use strict'; var foo; ok 6169 lines-around-directive valid /* multiline comment */ 'use strict'; var foo; ok 6170 lines-around-directive valid !/usr/bin/env node 'use strict'; 'use asm'; var foo; ok 6171 lines-around-directive valid //comment 'use strict'; 'use asm'; var foo; ok 6172 lines-around-directive valid /* multiline comment */ 'use strict'; 'use asm'; var foo; ok 6173 lines-around-directive valid function foo() { 'use strict'; var bar; } ok 6174 lines-around-directive valid function foo() { 'use strict'; var bar; } ok 6175 lines-around-directive valid () => { 'use strict'; var foo; } ok 6176 lines-around-directive valid () => { 'use strict'; var foo; } ok 6177 lines-around-directive valid function foo() { 'use strict'; 'use asm'; var bar; } ok 6178 lines-around-directive valid function foo() { 'use strict'; 'use asm'; var bar; } ok 6179 lines-around-directive valid () => { 'use strict'; 'use asm'; var foo; } ok 6180 lines-around-directive valid () => { 'use strict'; 'use asm'; var foo; } ok 6181 lines-around-directive valid function foo() { //comment 'use strict'; var bar; } ok 6182 lines-around-directive valid function foo() { /* multiline comment */ 'use strict'; var bar; } ok 6183 lines-around-directive valid () => { //comment 'use strict'; var foo; } ok 6184 lines-around-directive valid () => { /* multiline comment */ 'use strict'; var foo; } ok 6185 lines-around-directive valid function foo() { //comment 'use strict'; 'use asm'; var bar; } ok 6186 lines-around-directive valid function foo() { /* multiline comment */ 'use strict'; 'use asm'; var bar; } ok 6187 lines-around-directive valid () => { //comment 'use strict'; 'use asm'; var foo; } ok 6188 lines-around-directive valid () => { /* multiline comment */ 'use strict'; 'use asm'; var foo; } ok 6189 lines-around-directive valid 'use strict' ;foo(); ok 6190 lines-around-directive valid 'use strict' ;foo(); ok 6191 lines-around-directive invalid 'use strict'; var foo; ok 6192 lines-around-directive invalid 'use strict'; //comment var foo; ok 6193 lines-around-directive invalid 'use strict'; /* multiline comment */ var foo; ok 6194 lines-around-directive invalid 'use strict'; 'use asm'; var foo; ok 6195 lines-around-directive invalid 'use strict'; 'use asm'; //comment var foo; ok 6196 lines-around-directive invalid 'use strict'; 'use asm'; /* multiline comment */ var foo; ok 6197 lines-around-directive invalid !/usr/bin/env node 'use strict'; var foo; ok 6198 lines-around-directive invalid !/usr/bin/env node //comment 'use strict'; var foo; ok 6199 lines-around-directive invalid //comment 'use strict'; var foo; ok 6200 lines-around-directive invalid /* multiline comment */ 'use strict'; var foo; ok 6201 lines-around-directive invalid !/usr/bin/env node 'use strict'; 'use asm'; var foo; ok 6202 lines-around-directive invalid !/usr/bin/env node //comment 'use strict'; 'use asm'; var foo; ok 6203 lines-around-directive invalid //comment 'use strict'; 'use asm'; var foo; ok 6204 lines-around-directive invalid /* multiline comment */ 'use strict'; 'use asm'; var foo; ok 6205 lines-around-directive invalid function foo() { 'use strict'; var bar; } ok 6206 lines-around-directive invalid () => { 'use strict'; var foo; } ok 6207 lines-around-directive invalid function foo() { 'use strict'; 'use asm'; var bar; } ok 6208 lines-around-directive invalid () => { 'use strict'; 'use asm'; var foo; } ok 6209 lines-around-directive invalid function foo() { //comment 'use strict'; var bar; } ok 6210 lines-around-directive invalid function foo() { /* multiline comment */ 'use strict'; var bar; } ok 6211 lines-around-directive invalid () => { //comment 'use strict'; var foo; } ok 6212 lines-around-directive invalid () => { /* multiline comment */ 'use strict'; var foo; } ok 6213 lines-around-directive invalid function foo() { //comment 'use strict'; 'use asm'; var bar; } ok 6214 lines-around-directive invalid function foo() { /* multiline comment */ 'use strict'; 'use asm'; var bar; } ok 6215 lines-around-directive invalid () => { //comment 'use strict'; 'use asm'; var foo; } ok 6216 lines-around-directive invalid () => { /* multiline comment */ 'use strict'; 'use asm'; var foo; } ok 6217 lines-around-directive invalid 'use strict'; var foo; ok 6218 lines-around-directive invalid 'use strict'; //comment var foo; ok 6219 lines-around-directive invalid 'use strict'; /* multiline comment */ var foo; ok 6220 lines-around-directive invalid 'use strict'; 'use asm'; var foo; ok 6221 lines-around-directive invalid 'use strict'; 'use asm'; //comment var foo; ok 6222 lines-around-directive invalid 'use strict'; 'use asm'; /* multiline comment */ var foo; ok 6223 lines-around-directive invalid !/usr/bin/env node 'use strict'; var foo; ok 6224 lines-around-directive invalid !/usr/bin/env node //comment 'use strict'; var foo; ok 6225 lines-around-directive invalid //comment 'use strict'; var foo; ok 6226 lines-around-directive invalid /* multiline comment */ 'use strict'; var foo; ok 6227 lines-around-directive invalid !/usr/bin/env node 'use strict'; 'use asm'; var foo; ok 6228 lines-around-directive invalid !/usr/bin/env node //comment 'use strict'; 'use asm'; var foo; ok 6229 lines-around-directive invalid //comment 'use strict'; 'use asm'; var foo; ok 6230 lines-around-directive invalid /* multiline comment */ 'use strict'; 'use asm'; var foo; ok 6231 lines-around-directive invalid function foo() { 'use strict'; var bar; } ok 6232 lines-around-directive invalid () => { 'use strict'; var foo; } ok 6233 lines-around-directive invalid function foo() { 'use strict'; 'use asm'; var bar; } ok 6234 lines-around-directive invalid () => { 'use strict'; 'use asm'; var foo; } ok 6235 lines-around-directive invalid function foo() { //comment 'use strict'; var bar; } ok 6236 lines-around-directive invalid function foo() { /* multiline comment */ 'use strict'; var bar; } ok 6237 lines-around-directive invalid () => { //comment 'use strict'; var foo; } ok 6238 lines-around-directive invalid () => { /* multiline comment */ 'use strict'; var foo; } ok 6239 lines-around-directive invalid function foo() { //comment 'use strict'; 'use asm'; var bar; } ok 6240 lines-around-directive invalid function foo() { /* multiline comment */ 'use strict'; 'use asm'; var bar; } ok 6241 lines-around-directive invalid () => { //comment 'use strict'; 'use asm'; var foo; } ok 6242 lines-around-directive invalid () => { /* multiline comment */ 'use strict'; 'use asm'; var foo; } ok 6243 lines-around-directive invalid 'use strict'; var foo; ok 6244 lines-around-directive invalid 'use strict'; //comment var foo; ok 6245 lines-around-directive invalid 'use strict'; /* multiline comment */ var foo; ok 6246 lines-around-directive invalid 'use strict'; 'use asm'; var foo; ok 6247 lines-around-directive invalid 'use strict'; 'use asm'; //comment var foo; ok 6248 lines-around-directive invalid 'use strict'; 'use asm'; /* multiline comment */ var foo; ok 6249 lines-around-directive invalid !/usr/bin/env node 'use strict'; var foo; ok 6250 lines-around-directive invalid //comment 'use strict'; var foo; ok 6251 lines-around-directive invalid /* multiline comment */ 'use strict'; var foo; ok 6252 lines-around-directive invalid !/usr/bin/env node 'use strict'; 'use asm'; var foo; ok 6253 lines-around-directive invalid //comment 'use strict'; 'use asm'; var foo; ok 6254 lines-around-directive invalid /* multiline comment */ 'use strict'; 'use asm'; var foo; ok 6255 lines-around-directive invalid function foo() { 'use strict'; var bar; } ok 6256 lines-around-directive invalid function foo() { 'use strict'; var bar; } ok 6257 lines-around-directive invalid () => { 'use strict'; var foo; } ok 6258 lines-around-directive invalid () => { 'use strict'; var foo; } ok 6259 lines-around-directive invalid function foo() { 'use strict'; 'use asm'; var bar; } ok 6260 lines-around-directive invalid function foo() { 'use strict'; 'use asm'; var bar; } ok 6261 lines-around-directive invalid () => { 'use strict'; 'use asm'; var foo; } ok 6262 lines-around-directive invalid () => { 'use strict'; 'use asm'; var foo; } ok 6263 lines-around-directive invalid function foo() { //comment 'use strict'; var bar; } ok 6264 lines-around-directive invalid function foo() { /* multiline comment */ 'use strict'; var bar; } ok 6265 lines-around-directive invalid () => { //comment 'use strict'; var foo; } ok 6266 lines-around-directive invalid () => { /* multiline comment */ 'use strict'; var foo; } ok 6267 lines-around-directive invalid function foo() { //comment 'use strict'; 'use asm'; var bar; } ok 6268 lines-around-directive invalid function foo() { /* multiline comment */ 'use strict'; 'use asm'; var bar; } ok 6269 lines-around-directive invalid () => { //comment 'use strict'; 'use asm'; var foo; } ok 6270 lines-around-directive invalid () => { /* multiline comment */ 'use strict'; 'use asm'; var foo; } ok 6271 lines-around-directive invalid 'use strict'; var foo; ok 6272 lines-around-directive invalid 'use strict'; //comment var foo; ok 6273 lines-around-directive invalid 'use strict'; /* multiline comment */ var foo; ok 6274 lines-around-directive invalid 'use strict'; 'use asm'; var foo; ok 6275 lines-around-directive invalid 'use strict'; 'use asm'; //comment var foo; ok 6276 lines-around-directive invalid 'use strict'; 'use asm'; /* multiline comment */ var foo; ok 6277 lines-around-directive invalid !/usr/bin/env node 'use strict'; var foo; ok 6278 lines-around-directive invalid //comment 'use strict'; var foo; ok 6279 lines-around-directive invalid /* multiline comment */ 'use strict'; var foo; ok 6280 lines-around-directive invalid !/usr/bin/env node 'use strict'; 'use asm'; var foo; ok 6281 lines-around-directive invalid //comment 'use strict'; 'use asm'; var foo; ok 6282 lines-around-directive invalid /* multiline comment */ 'use strict'; 'use asm'; var foo; ok 6283 lines-around-directive invalid function foo() { 'use strict'; var bar; } ok 6284 lines-around-directive invalid function foo() { 'use strict'; var bar; } ok 6285 lines-around-directive invalid () => { 'use strict'; var foo; } ok 6286 lines-around-directive invalid () => { 'use strict'; var foo; } ok 6287 lines-around-directive invalid function foo() { 'use strict'; 'use asm'; var bar; } ok 6288 lines-around-directive invalid function foo() { 'use strict'; 'use asm'; var bar; } ok 6289 lines-around-directive invalid () => { 'use strict'; 'use asm'; var foo; } ok 6290 lines-around-directive invalid () => { 'use strict'; 'use asm'; var foo; } ok 6291 lines-around-directive invalid function foo() { //comment 'use strict'; var bar; } ok 6292 lines-around-directive invalid function foo() { /* multiline comment */ 'use strict'; var bar; } ok 6293 lines-around-directive invalid () => { //comment 'use strict'; var foo; } ok 6294 lines-around-directive invalid () => { /* multiline comment */ 'use strict'; var foo; } ok 6295 lines-around-directive invalid function foo() { //comment 'use strict'; 'use asm'; var bar; } ok 6296 lines-around-directive invalid function foo() { /* multiline comment */ 'use strict'; 'use asm'; var bar; } ok 6297 lines-around-directive invalid () => { //comment 'use strict'; 'use asm'; var foo; } ok 6298 lines-around-directive invalid () => { /* multiline comment */ 'use strict'; 'use asm'; var foo; } ok 6299 lines-around-directive invalid 'use strict' ;foo(); ok 6300 lines-around-directive invalid 'use strict' ;foo(); ok 6301 lines-around-directive invalid 'use strict' ; foo(); ok 6302 lines-between-class-members valid class foo{} ok 6303 lines-between-class-members valid class foo{;;} ok 6304 lines-between-class-members valid class foo{ } ok 6305 lines-between-class-members valid class foo{constructor(){} } ok 6306 lines-between-class-members valid class foo{ constructor(){}} ok 6307 lines-between-class-members valid class foo{ bar(){} baz(){}} ok 6308 lines-between-class-members valid class foo{ bar(){} /*comments*/baz(){}} ok 6309 lines-between-class-members valid class foo{ bar(){} //comments baz(){}} ok 6310 lines-between-class-members valid class foo{ bar(){} //comments baz(){}} ok 6311 lines-between-class-members valid class A{ foo() {} // a comment bar() {}} ok 6312 lines-between-class-members valid class A{ foo() {} /* a */ /* b */ bar() {}} ok 6313 lines-between-class-members valid class A{ foo() {}/* a */ /* b */bar() {}} ok 6314 lines-between-class-members valid class foo{ bar(){} ;;baz(){}} ok 6315 lines-between-class-members valid class foo{ bar(){}; baz(){}} ok 6316 lines-between-class-members valid class foo{ bar(){} baz(){}} ok 6317 lines-between-class-members valid class foo{ bar(){} /*comments*/baz(){}} ok 6318 lines-between-class-members valid class foo{ bar(){} //comments baz(){}} ok 6319 lines-between-class-members valid class foo{ bar(){}/* comments */baz(){}} ok 6320 lines-between-class-members valid class foo{ bar(){}/* comments */baz(){}} ok 6321 lines-between-class-members valid class foo{ bar(){} /* comments */ baz(){}} ok 6322 lines-between-class-members valid class foo{ bar(){} baz(){}} ok 6323 lines-between-class-members valid class foo{ bar(){} /*comments*/baz(){}} ok 6324 lines-between-class-members valid class foo{ bar(){} //comments baz(){}} ok 6325 lines-between-class-members valid class foo{ bar(){} baz(){}} ok 6326 lines-between-class-members valid class foo{ bar(){ } baz(){}} ok 6327 lines-between-class-members invalid class foo{ bar(){} baz(){}} ok 6328 lines-between-class-members invalid class foo{ bar(){} baz(){}} ok 6329 lines-between-class-members invalid class foo{ bar(){ } baz(){}} ok 6330 max-classes-per-file valid class Foo {} ok 6331 max-classes-per-file valid var x = class {}; ok 6332 max-classes-per-file valid var x = 5; ok 6333 max-classes-per-file valid class Foo {} ok 6334 max-classes-per-file valid class Foo {} class Bar {} ok 6335 max-classes-per-file invalid class Foo {} class Bar {} ok 6336 max-classes-per-file invalid var x = class {}; var y = class {}; ok 6337 max-classes-per-file invalid class Foo {} var x = class {}; ok 6338 max-classes-per-file invalid class Foo {} class Bar {} ok 6339 max-classes-per-file invalid class Foo {} class Bar {} class Baz {} ok 6340 max-depth valid function foo() { if (true) { if (false) { if (true) { } } } } ok 6341 max-depth valid function foo() { if (true) { } else if (false) { } else if (true) { } else if (false) {} } ok 6342 max-depth valid var foo = () => { if (true) { if (false) { if (true) { } } } } ok 6343 max-depth valid function foo() { if (true) { if (false) { if (true) { } } } } ok 6344 max-depth valid function foo() { if (true) { if (false) { if (true) { } } } } ok 6345 max-depth invalid function foo() { if (true) { if (false) { if (true) { } } } } ok 6346 max-depth invalid var foo = () => { if (true) { if (false) { if (true) { } } } } ok 6347 max-depth invalid function foo() { if (true) {} else { for(;;) {} } } ok 6348 max-depth invalid function foo() { while (true) { if (true) {} } } ok 6349 max-depth invalid function foo() { for (let x of foo) { if (true) {} } } ok 6350 max-depth invalid function foo() { while (true) { if (true) { if (false) { } } } } ok 6351 max-depth invalid function foo() { if (true) { if (false) { if (true) { if (false) { if (true) { } } } } } } ok 6352 max-depth invalid function foo() { if (true) { if (false) { if (true) { } } } } ok 6353 max-depth invalid function foo() { if (a) { if (b) { if (c) { if (d) { if (e) {} } } } } } ok 6354 max-depth invalid function foo() { if (true) {} } ok 6355 max-len valid var x = 5; var x = 2; ok 6356 max-len valid var x = 5; var x = 2; ok 6357 max-len valid var i = 1; var j = 1; ok 6358 max-len valid var one = 1; var three = 3; ok 6359 max-len valid var one = 1; var three = 3; ok 6360 max-len valid var i = 1; var i = 1; ok 6361 max-len valid // Blank line on top var foo = module.exports = {}; ok 6362 max-len valid // Blank line on top var foo = module.exports = {}; ok 6363 max-len valid var foo = module.exports = {}; // really long trailing comment ok 6364 max-len valid foo(); // strips entire comment *and* trailing whitespace ok 6365 max-len valid // really long comment on its own line sitting here ok 6366 max-len valid var /*inline-comment*/ i = 1; ok 6367 max-len valid var /*inline-comment*/ i = 1; // with really long trailing comment ok 6368 max-len valid foo('http://example.com/this/is/?a=longish&url=inhere'); ok 6369 max-len valid foo(bar(bazz('this is a long'), 'line of'), 'stuff'); ok 6370 max-len valid /* hey there! this is a multiline comment with longish lines in various places but with a short line-length */ ok 6371 max-len valid // I like short comments function butLongSourceLines() { weird(eh()) } ok 6372 max-len valid // I like longer comments and shorter code function see() { odd(eh()) } ok 6373 max-len valid // Full line comment someCode(); // With a long trailing comment. ok 6374 max-len valid var foo = module.exports = {}; // really long trailing comment ok 6375 max-len valid var foo = module.exports = {}; // really long trailing comment ok 6376 max-len valid var foo = veryLongIdentifier; var bar = 'this is a very long string'; ok 6377 max-len valid var foo = veryLongIdentifier; var bar = "this is a very long string"; ok 6378 max-len valid var str = "this is a very long string\ with continuation"; ok 6379 max-len valid var str = "this is a very long string\ with continuation\ and with another very very long continuation\ and ending"; ok 6380 max-len valid var foo = <div className="this is a very long string"></div>; ok 6381 max-len valid var foo = veryLongIdentifier; var bar = `this is a very long string`; ok 6382 max-len valid var foo = veryLongIdentifier; var bar = `this is a very long string and this is another line that is very long`; ok 6383 max-len valid var foo = veryLongIdentifier; var bar = `this is a very long string and this is another line that is very long and here is another and another!`; ok 6384 max-len valid var foo = /this is a very long pattern/; ok 6385 max-len valid function foo() { //this line has 29 characters } ok 6386 max-len valid function foo() { //this line has 33 characters } ok 6387 max-len valid function foo() { /*this line has 29 characters and this one has 21*/ } ok 6388 max-len valid function foo() { /*this line has 33 characters and this one has 25*/ } ok 6389 max-len valid function foo() { var a; /*this line has 40 characters and this one has 36 characters*/ } ok 6390 max-len valid function foo() { /*this line has 33 characters and this one has 43 characters*/ var a; } ok 6391 max-len valid ok 6392 max-len valid '🙂😀😆😎😊😜😉👍' ok 6393 max-len invalid var i = 1; ok 6394 max-len invalid var x = 5, y = 2, z = 5; ok 6395 max-len invalid var i = 1; ok 6396 max-len invalid var i = 1; var j = 1; ok 6397 max-len invalid var /*this is a long non-removed inline comment*/ i = 1; ok 6398 max-len invalid var foobar = 'this line isn\'t matched by the regexp'; var fizzbuzz = 'but this one is matched by the regexp'; ok 6399 max-len invalid var longLine = 'will trigger'; // even with a comment ok 6400 max-len invalid var foo = module.exports = {}; // really long trailing comment ok 6401 max-len invalid foo('http://example.com/this/is/?a=longish&url=inhere'); ok 6402 max-len invalid foo(bar(bazz('this is a long'), 'line of'), 'stuff'); ok 6403 max-len invalid // A comment that exceeds the max comment length. ok 6404 max-len invalid // A comment that exceeds the max comment length and the max code length, but will fail for being too long of a comment ok 6405 max-len invalid // A comment that exceeds the max comment length. ok 6406 max-len invalid //This is very long comment with more than 40 characters which is invalid ok 6407 max-len invalid function foo() { //this line has 29 characters } ok 6408 max-len invalid function foo() { //this line has 33 characters } ok 6409 max-len invalid function foo() { /*this line has 29 characters and this one has 32 characters*/ } ok 6410 max-len invalid function foo() { /*this line has 33 characters and this one has 36 characters*/ } ok 6411 max-len invalid function foo() { var a; /*this line has 40 characters and this one has 36 characters*/ } ok 6412 max-len invalid function foo() { /*this line has 33 characters and this one has 43 characters*/ var a; } ok 6413 max-len invalid // This commented line has precisely 51 characters. var x = 'This line also has exactly 51 characters'; ok 6414 max-len invalid var foo = veryLongIdentifier; var bar = 'this is a very long string'; ok 6415 max-len invalid var foo = veryLongIdentifier; var bar = /this is a very very long pattern/; ok 6416 max-len invalid var foo = veryLongIdentifier; var bar = new RegExp('this is a very very long pattern'); ok 6417 max-len invalid var foo = veryLongIdentifier; var bar = "this is a very long string"; ok 6418 max-len invalid var foo = veryLongIdentifier; var bar = `this is a very long string`; ok 6419 max-len invalid var foo = veryLongIdentifier; var bar = `this is a very long string and this is another line that is very long`; ok 6420 max-len invalid var foo = <div>this is a very very very long string</div>; ok 6421 max-len invalid '🙁😁😟☹️😣😖😩😱👎' ok 6422 max-lines-per-function valid var x = 5; var x = 2; ok 6423 max-lines-per-function valid function name() {} ok 6424 max-lines-per-function valid function name() { var x = 5; var x = 2; } ok 6425 max-lines-per-function valid const bar = () => 2 ok 6426 max-lines-per-function valid const bar = () => { const x = 2 + 1; return x; } ok 6427 max-lines-per-function valid function name() { var x = 5; var x = 2; } ok 6428 max-lines-per-function valid function name() { var x = 5; var x = 2; } ok 6429 max-lines-per-function valid function name() { var x = 5; var x = 2; // end of line comment } ok 6430 max-lines-per-function valid function name() { var x = 5; // a comment on it's own line var x = 2; // end of line comment } ok 6431 max-lines-per-function valid function name() { var x = 5; // a comment on it's own line // and another line comment var x = 2; // end of line comment } ok 6432 max-lines-per-function valid function name() { var x = 5; /* a multi line comment */ var x = 2; // end of line comment } ok 6433 max-lines-per-function valid function name() { var x = 5; /* a comment with leading whitespace */ /* a comment with trailing whitespace */ /* a comment with trailing and leading whitespace */ /* a multi line comment */ var x = 2; // end of line comment } ok 6434 max-lines-per-function valid function foo( aaa = 1, bbb = 2, ccc = 3 ) { return aaa + bbb + ccc } ok 6435 max-lines-per-function valid ( function () { } ) () ok 6436 max-lines-per-function valid function parent() { var x = 0; function nested() { var y = 0; x = 2; } if ( x === y ) { x++; } } ok 6437 max-lines-per-function valid class foo { method() { let y = 10; let x = 20; return y + x; } } ok 6438 max-lines-per-function valid (function(){ let x = 0; let y = 0; let z = x + y; let foo = {}; return bar; }()); ok 6439 max-lines-per-function valid (function(){ let x = 0; let y = 0; let z = x + y; let foo = {}; return bar; }()); ok 6440 max-lines-per-function invalid function name() { } ok 6441 max-lines-per-function invalid var func = function() { } ok 6442 max-lines-per-function invalid const bar = () => { const x = 2 + 1; return x; } ok 6443 max-lines-per-function invalid const bar = () => 2 ok 6444 max-lines-per-function invalid function name() { var x = 5; var x = 2; } ok 6445 max-lines-per-function invalid function name() { var x = 5; var x = 2; } ok 6446 max-lines-per-function invalid function name() { var x = 5; var x = 2; } ok 6447 max-lines-per-function invalid function name() { var x = 5; var x = 2; } ok 6448 max-lines-per-function invalid function name() { // end of line comment var x = 5; /* mid line comment */ // single line comment taking up whole line var x = 2; } ok 6449 max-lines-per-function invalid function name() { // end of line comment var x = 5; /* mid line comment */ // single line comment taking up whole line var x = 2; } ok 6450 max-lines-per-function invalid function name() { // end of line comment var x = 5; /* mid line comment */ // single line comment taking up whole line var x = 2; } ok 6451 max-lines-per-function invalid function foo( aaa = 1, bbb = 2, ccc = 3 ) { return aaa + bbb + ccc } ok 6452 max-lines-per-function invalid ( function () { } ) () ok 6453 max-lines-per-function invalid function parent() { var x = 0; function nested() { var y = 0; x = 2; } if ( x === y ) { x++; } } ok 6454 max-lines-per-function invalid function parent() { var x = 0; function nested() { var y = 0; x = 2; } if ( x === y ) { x++; } } ok 6455 max-lines-per-function invalid class foo { method() { let y = 10; let x = 20; return y + x; } } ok 6456 max-lines-per-function invalid class A { static foo (a) { return a } } ok 6457 max-lines-per-function invalid var obj = { get foo () { return 1 } } ok 6458 max-lines-per-function invalid var obj = { set foo ( val ) { this._foo = val; } } ok 6459 max-lines-per-function invalid class A { static [ foo + bar ] (a) { return a } } ok 6460 max-lines-per-function invalid (function(){ let x = 0; let y = 0; let z = x + y; let foo = {}; return bar; }()); ok 6461 max-lines valid var x; ok 6462 max-lines valid var xy; var xy; ok 6463 max-lines valid var xy; var xy; ok 6464 max-lines valid var xy; var xy; ok 6465 max-lines valid //a single line comment var xy; var xy; /* a multiline really really long comment*/ ok 6466 max-lines valid var x; /* inline comment spanning multiple lines */ var z; ok 6467 max-lines valid var x; /* inline comment spanning multiple lines */ var z; ok 6468 max-lines valid var x; var y; ok 6469 max-lines valid //a single line comment var xy; var xy; /* a multiline really really long comment*/ ok 6470 max-lines invalid var xyz; var xyz; var xyz; ok 6471 max-lines invalid /* a multiline comment that goes to many lines*/ var xy; var xy; ok 6472 max-lines invalid //a single line comment var xy; var xy; ok 6473 max-lines invalid var x; var y; ok 6474 max-lines invalid //a single line comment var xy; var xy; /* a multiline really really long comment*/ ok 6475 max-lines invalid var x; // inline comment var y; var z; ok 6476 max-lines invalid var x; /* inline comment spanning multiple lines */ var y; var z; ok 6477 max-lines invalid //a single line comment var xy; var xy; /* a multiline really really long comment*/ ok 6478 max-lines invalid AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA ok 6479 max-lines invalid A ok 6480 max-nested-callbacks valid foo(function() { bar(thing, function(data) {}); }); ok 6481 max-nested-callbacks valid var foo = function() {}; bar(function(){ baz(function() { qux(foo); }) }); ok 6482 max-nested-callbacks valid fn(function(){}, function(){}, function(){}); ok 6483 max-nested-callbacks valid fn(() => {}, function(){}, function(){}); ok 6484 max-nested-callbacks valid foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {});});});});});});});});});}); ok 6485 max-nested-callbacks valid foo(function() { bar(thing, function(data) {}); }); ok 6486 max-nested-callbacks invalid foo(function() { bar(thing, function(data) { baz(function() {}); }); }); ok 6487 max-nested-callbacks invalid foo(function() { bar(thing, (data) => { baz(function() {}); }); }); ok 6488 max-nested-callbacks invalid foo(() => { bar(thing, (data) => { baz( () => {}); }); }); ok 6489 max-nested-callbacks invalid foo(function() { if (isTrue) { bar(function(data) { baz(function() {}); }); } }); ok 6490 max-nested-callbacks invalid foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {});});});});});});});});});});}); ok 6491 max-nested-callbacks invalid foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {});});});});});});});});});});}); ok 6492 max-nested-callbacks invalid foo(function() {}) ok 6493 max-nested-callbacks invalid foo(function() { bar(thing, function(data) { baz(function() {}); }); }); ok 6494 max-params valid function test(d, e, f) {} ok 6495 max-params valid var test = function(a, b, c) {}; ok 6496 max-params valid var test = (a, b, c) => {}; ok 6497 max-params valid var test = function test(a, b, c) {}; ok 6498 max-params valid var test = function(a, b, c) {}; ok 6499 max-params invalid function test(a, b, c) {} ok 6500 max-params invalid function test(a, b, c, d) {} ok 6501 max-params invalid var test = function(a, b, c, d) {}; ok 6502 max-params invalid var test = (a, b, c, d) => {}; ok 6503 max-params invalid (function(a, b, c, d) {}); ok 6504 max-params invalid var test = function test(a, b, c) {}; ok 6505 max-params invalid function test(a, b, c) {} ok 6506 max-params invalid function test(a, b, c, d) {} ok 6507 max-params invalid function test(a) {} ok 6508 max-params invalid function test(a, b, c) { // Just to make it longer } ok 6509 max-statements-per-line valid { } ok 6510 max-statements-per-line valid var bar = 1; ok 6511 max-statements-per-line valid var bar = 1; ok 6512 max-statements-per-line valid var bar = 1;; ok 6513 max-statements-per-line valid ;(function foo() { })() ok 6514 max-statements-per-line valid if (condition) var bar = 1; ok 6515 max-statements-per-line valid if (condition) { } ok 6516 max-statements-per-line valid if (condition) { } else { } ok 6517 max-statements-per-line valid if (condition) { var bar = 1; } else { var bar = 1; } ok 6518 max-statements-per-line valid for (var i = 0; i < length; ++i) { } ok 6519 max-statements-per-line valid for (var i = 0; i < length; ++i) { var bar = 1; } ok 6520 max-statements-per-line valid switch (discriminant) { default: } ok 6521 max-statements-per-line valid switch (discriminant) { default: break; } ok 6522 max-statements-per-line valid function foo() { } ok 6523 max-statements-per-line valid function foo() { if (condition) var bar = 1; } ok 6524 max-statements-per-line valid function foo() { if (condition) { var bar = 1; } } ok 6525 max-statements-per-line valid (function() { })(); ok 6526 max-statements-per-line valid (function() { var bar = 1; })(); ok 6527 max-statements-per-line valid var foo = function foo() { }; ok 6528 max-statements-per-line valid var foo = function foo() { var bar = 1; }; ok 6529 max-statements-per-line valid var foo = { prop: () => { } }; ok 6530 max-statements-per-line valid var bar = 1; var baz = 2; ok 6531 max-statements-per-line valid if (condition) { var bar = 1; } ok 6532 max-statements-per-line valid if (condition) { var bar = 1; var baz = 2; } else { var bar = 1; var baz = 2; } ok 6533 max-statements-per-line valid for (var i = 0; i < length; ++i) { var bar = 1; } ok 6534 max-statements-per-line valid for (var i = 0; i < length; ++i) { var bar = 1; var baz = 2; } ok 6535 max-statements-per-line valid switch (discriminant) { default: break; } ok 6536 max-statements-per-line valid switch (discriminant) { case 'test': var bar = 1; break; default: var bar = 1; break; } ok 6537 max-statements-per-line valid function foo() { var bar = 1; } ok 6538 max-statements-per-line valid function foo() { var bar = 1; var baz = 2; } ok 6539 max-statements-per-line valid function foo() { if (condition) { var bar = 1; } } ok 6540 max-statements-per-line valid function foo() { if (condition) { var bar = 1; var baz = 2; } } ok 6541 max-statements-per-line valid (function() { var bar = 1; })(); ok 6542 max-statements-per-line valid (function() { var bar = 1; var baz = 2; })(); ok 6543 max-statements-per-line valid var foo = function foo() { var bar = 1; }; ok 6544 max-statements-per-line valid var foo = function foo() { var bar = 1; var baz = 2; }; ok 6545 max-statements-per-line valid var foo = { prop: () => { var bar = 1; } }; ok 6546 max-statements-per-line valid var bar = 1; var baz = 2; var qux = 3; ok 6547 max-statements-per-line valid if (condition) { var bar = 1; var baz = 2; } ok 6548 max-statements-per-line valid if (condition) { var bar = 1; } else { var bar = 1; } ok 6549 max-statements-per-line valid switch (discriminant) { case 'test1': ; case 'test2': ; } ok 6550 max-statements-per-line valid let bar = bar => { a; }, baz = baz => { b; }; ok 6551 max-statements-per-line valid function foo({[bar => { a; }]: baz = qux => { b; }}) { } ok 6552 max-statements-per-line valid bar => { a; }, baz => { b; }, qux => { c; }; ok 6553 max-statements-per-line valid [bar => { a; }, baz => { b; }, qux => { c; }]; ok 6554 max-statements-per-line valid foo(bar => { a; }, baz => { c; }, qux => { c; }); ok 6555 max-statements-per-line valid ({ bar: bar => { a; }, baz: baz => { c; }, qux: qux => { ; }}); ok 6556 max-statements-per-line valid (bar => { a; }) ? (baz => { b; }) : (qux => { c; }); ok 6557 max-statements-per-line valid const name = 'ESLint' ;(function foo() { })() ok 6558 max-statements-per-line valid if (foo > 1) foo--; else foo++; ok 6559 max-statements-per-line valid export default foo = 0; ok 6560 max-statements-per-line valid export default function foo() { console.log('test'); } ok 6561 max-statements-per-line valid export let foo = 0; ok 6562 max-statements-per-line valid export function foo() { console.log('test'); } ok 6563 max-statements-per-line invalid var foo; var bar; ok 6564 max-statements-per-line invalid var bar = 1; var foo = 3; ok 6565 max-statements-per-line invalid var bar = 1; var baz = 2; ok 6566 max-statements-per-line invalid var bar = 1; var baz = 2; ok 6567 max-statements-per-line invalid if (condition) var bar = 1; if (condition) var baz = 2; ok 6568 max-statements-per-line invalid if (condition) var bar = 1; else var baz = 1; ok 6569 max-statements-per-line invalid if (condition) { } if (condition) { } ok 6570 max-statements-per-line invalid if (condition) { var bar = 1; } else { } ok 6571 max-statements-per-line invalid if (condition) { } else { var bar = 1; } ok 6572 max-statements-per-line invalid if (condition) { var bar = 1; } else { var bar = 1; } ok 6573 max-statements-per-line invalid for (var i = 0; i < length; ++i) { var bar = 1; } ok 6574 max-statements-per-line invalid switch (discriminant) { default: break; } ok 6575 max-statements-per-line invalid function foo() { var bar = 1; } ok 6576 max-statements-per-line invalid function foo() { if (condition) var bar = 1; } ok 6577 max-statements-per-line invalid function foo() { if (condition) { var bar = 1; } } ok 6578 max-statements-per-line invalid (function() { var bar = 1; })(); ok 6579 max-statements-per-line invalid var foo = function foo() { var bar = 1; }; ok 6580 max-statements-per-line invalid var foo = { prop: () => { var bar = 1; } }; ok 6581 max-statements-per-line invalid var bar = 1; var baz = 2; var qux = 3; ok 6582 max-statements-per-line invalid if (condition) { var bar = 1; var baz = 2; } ok 6583 max-statements-per-line invalid if (condition) { var bar = 1; } else { var bar = 1; } ok 6584 max-statements-per-line invalid if (condition) { var bar = 1; var baz = 2; } else { var bar = 1; var baz = 2; } ok 6585 max-statements-per-line invalid for (var i = 0; i < length; ++i) { var bar = 1; var baz = 2; } ok 6586 max-statements-per-line invalid switch (discriminant) { case 'test': break; default: break; } ok 6587 max-statements-per-line invalid function foo() { var bar = 1; var baz = 2; } ok 6588 max-statements-per-line invalid function foo() { if (condition) { var bar = 1; } } ok 6589 max-statements-per-line invalid (function() { var bar = 1; var baz = 2; })(); ok 6590 max-statements-per-line invalid var foo = function foo() { var bar = 1; var baz = 2; }; ok 6591 max-statements-per-line invalid var foo = { prop: () => { var bar = 1; var baz = 2; } }; ok 6592 max-statements-per-line invalid var bar = 1; var baz = 2; var qux = 3; var waldo = 4; ok 6593 max-statements-per-line invalid if (condition) { var bar = 1; var baz = 2; var qux = 3; } ok 6594 max-statements-per-line invalid if (condition) { var bar = 1; var baz = 2; } else { var bar = 1; var baz = 2; } ok 6595 max-statements-per-line invalid switch (discriminant) { case 'test': var bar = 1; break; default: var bar = 1; break; } ok 6596 max-statements-per-line invalid let bar = bar => { a; }, baz = baz => { b; }, qux = qux => { c; }; ok 6597 max-statements-per-line invalid (bar => { a; }) ? (baz => { b; }) : (qux => { c; }); ok 6598 max-statements-per-line invalid bar => { a; }, baz => { b; }, qux => { c; }, quux => { d; }; ok 6599 max-statements-per-line invalid [bar => { a; }, baz => { b; }, qux => { c; }, quux => { d; }]; ok 6600 max-statements-per-line invalid foo(bar => { a; }, baz => { b; }, qux => { c; }, quux => { d; }); ok 6601 max-statements-per-line invalid ({ bar: bar => { a; }, baz: baz => { b; }, qux: qux => { c; }, quux: quux => { d; }}); ok 6602 max-statements-per-line invalid a; if (b) { c; d; } z; ok 6603 max-statements-per-line invalid export default function foo() { console.log('test') } ok 6604 max-statements-per-line invalid export function foo() { console.log('test') } ok 6605 max-statements valid function foo() { var bar = 1; function qux () { var noCount = 2; } return 3; } ok 6606 max-statements valid function foo() { var bar = 1; if (true) { for (;;) { var qux = null; } } else { quxx(); } return 3; } ok 6607 max-statements valid function foo() { var x = 5; function bar() { var y = 6; } bar(); z = 10; baz(); } ok 6608 max-statements valid function foo() { var a; var b; var c; var x; var y; var z; bar(); baz(); qux(); quxx(); } ok 6609 max-statements valid (function() { var bar = 1; return function () { return 42; }; })() ok 6610 max-statements valid function foo() { var bar = 1; var baz = 2; } ok 6611 max-statements valid define(['foo', 'qux'], function(foo, qux) { var bar = 1; var baz = 2; }) ok 6612 max-statements valid var foo = { thing: function() { var bar = 1; var baz = 2; } } ok 6613 max-statements valid var foo = { thing() { var bar = 1; var baz = 2; } } ok 6614 max-statements valid var foo = { ['thing']() { var bar = 1; var baz = 2; } } ok 6615 max-statements valid var foo = { thing: () => { var bar = 1; var baz = 2; } } ok 6616 max-statements valid var foo = { thing: function() { var bar = 1; var baz = 2; } } ok 6617 max-statements invalid function foo() { var bar = 1; var baz = 2; var qux = 3; } ok 6618 max-statements invalid var foo = () => { var bar = 1; var baz = 2; var qux = 3; }; ok 6619 max-statements invalid var foo = function() { var bar = 1; var baz = 2; var qux = 3; }; ok 6620 max-statements invalid function foo() { var bar = 1; if (true) { while (false) { var qux = null; } } return 3; } ok 6621 max-statements invalid function foo() { var bar = 1; if (true) { for (;;) { var qux = null; } } return 3; } ok 6622 max-statements invalid function foo() { var bar = 1; if (true) { for (;;) { var qux = null; } } else { quxx(); } return 3; } ok 6623 max-statements invalid function foo() { var x = 5; function bar() { var y = 6; } bar(); z = 10; baz(); } ok 6624 max-statements invalid function foo() { var x = 5; function bar() { var y = 6; } bar(); z = 10; baz(); } ok 6625 max-statements invalid ;(function() { var bar = 1; return function () { var z; return 42; }; })() ok 6626 max-statements invalid ;(function() { var bar = 1; var baz = 2; })(); (function() { var bar = 1; var baz = 2; })() ok 6627 max-statements invalid define(['foo', 'qux'], function(foo, qux) { var bar = 1; var baz = 2; return function () { var z; return 42; }; }) ok 6628 max-statements invalid function foo() { var a; var b; var c; var x; var y; var z; bar(); baz(); qux(); quxx(); foo(); } ok 6629 max-statements invalid var foo = { thing: function() { var bar = 1; var baz = 2; var baz2; } } ok 6630 max-statements invalid var foo = { thing() { var bar = 1; var baz = 2; var baz2; } } ok 6631 max-statements invalid var foo = { thing: () => { var bar = 1; var baz = 2; var baz2; } } ok 6632 max-statements invalid var foo = { thing: function() { var bar = 1; var baz = 2; var baz2; } } ok 6633 max-statements invalid function foo() { 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; } ok 6634 max-statements invalid function foo() { 1; } ok 6635 multiline-comment-style valid /* * this is * a comment */ ok 6636 multiline-comment-style valid /** * this is * a JSDoc comment */ ok 6637 multiline-comment-style valid /* eslint semi: [ "error" ] */ ok 6638 multiline-comment-style valid // this is a single-line comment ok 6639 multiline-comment-style valid /* foo */ ok 6640 multiline-comment-style valid // this is a comment foo(); // this is another comment ok 6641 multiline-comment-style valid /* * Function overview * ... */ // Step 1: Do the first thing foo(); ok 6642 multiline-comment-style valid /* * Function overview * ... */ /* * Step 1: Do the first thing. * The first thing is foo(). */ foo(); ok 6643 multiline-comment-style valid /** * this comment * is tab-aligned */ ok 6644 multiline-comment-style valid /** * this comment * uses windows linebreaks */ ok 6645 multiline-comment-style valid /**
 * this comment
 * uses paragraph separators
 */ ok 6646 multiline-comment-style valid foo(/* this is an inline comment */); ok 6647 multiline-comment-style valid // The following line comment // contains '*/'. ok 6648 multiline-comment-style valid // The following line comment // contains '*/'. ok 6649 multiline-comment-style valid /* * this is * a comment */ ok 6650 multiline-comment-style valid /** * this is * a JSDoc comment */ ok 6651 multiline-comment-style valid /* eslint semi: [ "error" ] */ ok 6652 multiline-comment-style valid // this is a single-line comment ok 6653 multiline-comment-style valid /* foo */ ok 6654 multiline-comment-style valid // this is // a comment ok 6655 multiline-comment-style valid /* this is a comment */ foo; ok 6656 multiline-comment-style valid // a comment // another comment ok 6657 multiline-comment-style valid // a comment // another comment ok 6658 multiline-comment-style valid // a comment // another comment ok 6659 multiline-comment-style valid /* eslint semi: "error" */ ok 6660 multiline-comment-style valid /** * This is * a JSDoc comment */ ok 6661 multiline-comment-style valid /** * This is * a JSDoc comment */ ok 6662 multiline-comment-style valid /** * This is * a JSDoc comment */ ok 6663 multiline-comment-style valid /* This is a comment */ ok 6664 multiline-comment-style valid /* This is a comment */ ok 6665 multiline-comment-style valid /* eslint semi: [ "error" ] */ ok 6666 multiline-comment-style valid /* The value of 5 + 4 is 9, and the value of 5 * 4 is 20. */ ok 6667 multiline-comment-style invalid // these are // line comments ok 6668 multiline-comment-style invalid //foo ///bar ok 6669 multiline-comment-style invalid // foo // bar // baz // qux ok 6670 multiline-comment-style invalid /* this block * is missing a newline at the start */ ok 6671 multiline-comment-style invalid /** this JSDoc comment * is missing a newline at the start */ ok 6672 multiline-comment-style invalid /* * this block * is missing a newline at the end*/ ok 6673 multiline-comment-style invalid /* * the following line is missing a '*' at the start */ ok 6674 multiline-comment-style invalid /* * the following line * has a '*' with the wrong offset at the start */ ok 6675 multiline-comment-style invalid /* * the following line * has a '*' with the wrong offset at the start */ ok 6676 multiline-comment-style invalid /* * the last line of this comment * is misaligned */ ok 6677 multiline-comment-style invalid /* * the following line * * is blank */ ok 6678 multiline-comment-style invalid /* * the following line * * is blank */ ok 6679 multiline-comment-style invalid /* * the last line of this comment * is misaligned */ foo ok 6680 multiline-comment-style invalid /* * foo * bar */ ok 6681 multiline-comment-style invalid /* foo *bar baz qux*/ ok 6682 multiline-comment-style invalid // foo // bar ok 6683 multiline-comment-style invalid /* * foo * bar */ ok 6684 multiline-ternary valid a ? b : c ok 6685 multiline-ternary valid a ? b : c ok 6686 multiline-ternary valid a ? b ? c : d : e ok 6687 multiline-ternary valid a ? (b ? c : d) : e ok 6688 multiline-ternary valid a ? b : c ok 6689 multiline-ternary valid a ? b : c ok 6690 multiline-ternary valid a ? b ? c : d : e ok 6691 multiline-ternary valid a ? (b ? c : d) : e ok 6692 multiline-ternary valid a ? b : c ok 6693 multiline-ternary valid a ? b : c ok 6694 multiline-ternary valid a ? b ? c : d : e ok 6695 multiline-ternary valid a ? (b ? c : d) : e ok 6696 multiline-ternary valid a ? b : c ok 6697 multiline-ternary valid a ? b ? c : d : e ok 6698 multiline-ternary valid a ? (b ? c : d) : e ok 6699 multiline-ternary valid a ? (b ? c : d) : e ok 6700 multiline-ternary valid a ? (b ? c : d) : e ok 6701 multiline-ternary valid a ? b : c ok 6702 multiline-ternary valid a ? b ? c : d : e ok 6703 multiline-ternary valid a ? (b ? c : d) : e ok 6704 multiline-ternary invalid a ? b : c ok 6705 multiline-ternary invalid a ? b : c ok 6706 multiline-ternary invalid a ? b : c ok 6707 multiline-ternary invalid a ? (b ? c : d) : e ok 6708 multiline-ternary invalid a ? (b ? c : d) : e ok 6709 multiline-ternary invalid a ? (b ? c : d) : e ok 6710 multiline-ternary invalid a ? (b? c : d) : e ok 6711 multiline-ternary invalid a ? (b ? c : d) : e ok 6712 multiline-ternary invalid a ? (b ? c : d) : e ok 6713 multiline-ternary invalid a ? b : c ok 6714 multiline-ternary invalid a ? b : c ok 6715 multiline-ternary invalid a ? b : c ok 6716 multiline-ternary invalid a ? (b ? c : d) : e ok 6717 multiline-ternary invalid a ? (b ? c : d) : e ok 6718 multiline-ternary invalid a ? (b ? c : d) : e ok 6719 multiline-ternary invalid a ? (b? c : d) : e ok 6720 multiline-ternary invalid a ? (b ? c : d) : e ok 6721 multiline-ternary invalid a ? (b ? c : d) : e ok 6722 multiline-ternary invalid a ? b : c ok 6723 multiline-ternary invalid a ? b : c ok 6724 multiline-ternary invalid a && b ? c : d ok 6725 multiline-ternary invalid a ? b + c : d ok 6726 multiline-ternary invalid a ? b : c + d ok 6727 multiline-ternary invalid a ? (b ? c : d) : e ok 6728 multiline-ternary invalid a ? (b ? c : d) : e ok 6729 multiline-ternary invalid a ? (b ? c : d) : e ok 6730 multiline-ternary invalid a ? (b ? c : d) : e ok 6731 multiline-ternary invalid a ? (b ? c : d) : e ok 6732 multiline-ternary invalid a ? (b ? c : d) : e ok 6733 multiline-ternary invalid a ? b : c ok 6734 multiline-ternary invalid a ? b : c ok 6735 multiline-ternary invalid a ? (b ? c : d) : e ok 6736 multiline-ternary invalid a ? (b ? c : d) : e ok 6737 multiline-ternary invalid a ? (b? c : d) : e ok 6738 multiline-ternary invalid a ? (b ? c : d) : e ok 6739 multiline-ternary invalid a ? (b ? c : d) : e ok 6740 multiline-ternary invalid a ? (b ? c : d) : e ok 6741 multiline-ternary invalid a ? (b ? c : d) : e ok 6742 new-cap valid var x = new Constructor(); ok 6743 new-cap valid var x = new a.b.Constructor(); ok 6744 new-cap valid var x = new a.b['Constructor'](); ok 6745 new-cap valid var x = new a.b[Constructor](); ok 6746 new-cap valid var x = new a.b[constructor](); ok 6747 new-cap valid var x = new function(){}; ok 6748 new-cap valid var x = new _; ok 6749 new-cap valid var x = new $; ok 6750 new-cap valid var x = new Σ; ok 6751 new-cap valid var x = new _x; ok 6752 new-cap valid var x = new $x; ok 6753 new-cap valid var x = new this; ok 6754 new-cap valid var x = Array(42) ok 6755 new-cap valid var x = Boolean(42) ok 6756 new-cap valid var x = Date(42) ok 6757 new-cap valid var x = Date.UTC(2000, 0) ok 6758 new-cap valid var x = Error('error') ok 6759 new-cap valid var x = Function('return 0') ok 6760 new-cap valid var x = Number(42) ok 6761 new-cap valid var x = Object(null) ok 6762 new-cap valid var x = RegExp(42) ok 6763 new-cap valid var x = String(42) ok 6764 new-cap valid var x = Symbol('symbol') ok 6765 new-cap valid var x = _(); ok 6766 new-cap valid var x = $(); ok 6767 new-cap valid var x = Foo(42) ok 6768 new-cap valid var x = bar.Foo(42) ok 6769 new-cap valid var x = Foo.bar(42) ok 6770 new-cap valid var x = bar[Foo](42) ok 6771 new-cap valid var x = bar['Foo'](42) ok 6772 new-cap valid var x = Foo.bar(42) ok 6773 new-cap valid var x = new foo(42) ok 6774 new-cap valid var o = { 1: function() {} }; o[1](); ok 6775 new-cap valid var o = { 1: function() {} }; new o[1](); ok 6776 new-cap valid var x = Foo(42); ok 6777 new-cap valid var x = Foo(42); ok 6778 new-cap valid var x = new foo(42); ok 6779 new-cap valid var x = new foo(42); ok 6780 new-cap valid var x = Object(42); ok 6781 new-cap valid var x = Foo.Bar(42); ok 6782 new-cap valid var x = Foo.Bar(42); ok 6783 new-cap valid var x = Foo.Bar(42); ok 6784 new-cap valid var x = new foo.bar(42); ok 6785 new-cap valid var x = new foo.bar(42); ok 6786 new-cap valid var x = new foo.bar(42); ok 6787 new-cap valid var x = new foo.bar(42); ok 6788 new-cap valid var x = Foo.bar(42); ok 6789 new-cap valid var x = foo.Bar(42); ok 6790 new-cap invalid var x = new c(); ok 6791 new-cap invalid var x = new φ; ok 6792 new-cap invalid var x = new a.b.c; ok 6793 new-cap invalid var x = new a.b['c']; ok 6794 new-cap invalid var b = Foo(); ok 6795 new-cap invalid var b = a.Foo(); ok 6796 new-cap invalid var b = a['Foo'](); ok 6797 new-cap invalid var b = a.Date.UTC(); ok 6798 new-cap invalid var b = UTC(); ok 6799 new-cap invalid var a = B.C(); ok 6800 new-cap invalid var a = B .C(); ok 6801 new-cap invalid var a = new B.c(); ok 6802 new-cap invalid var a = new B. c(); ok 6803 new-cap invalid var a = new c(); ok 6804 new-cap invalid var x = Foo.Bar(42); ok 6805 new-cap invalid var x = Bar.Foo(42); ok 6806 new-cap invalid var x = new foo.bar(42); ok 6807 new-cap invalid var x = new bar.foo(42); ok 6808 new-parens valid var a = new Date(); ok 6809 new-parens valid var a = new Date(function() {}); ok 6810 new-parens valid var a = new (Date)(); ok 6811 new-parens valid var a = new ((Date))(); ok 6812 new-parens valid var a = (new Date()); ok 6813 new-parens valid var a = new foo.Bar(); ok 6814 new-parens valid var a = (new Foo()).bar; ok 6815 new-parens valid new Storage<RootState>('state'); ok 6816 new-parens invalid var a = new Date; ok 6817 new-parens invalid var a = new Date ok 6818 new-parens invalid var a = new (Date); ok 6819 new-parens invalid var a = new (Date) ok 6820 new-parens invalid var a = (new Date) ok 6821 new-parens invalid var a = (new Date)() ok 6822 new-parens invalid var a = new foo.Bar; ok 6823 new-parens invalid var a = (new Foo).bar; ok 6824 newline-after-var valid console.log(greet); ok 6825 newline-after-var valid console.log(greet); ok 6826 newline-after-var valid var greet = 'hello'; ok 6827 newline-after-var valid var greet = 'hello'; ok 6828 newline-after-var valid var greet = 'hello';console.log(greet); ok 6829 newline-after-var valid var greet = 'hello'; console.log(greet); ok 6830 newline-after-var valid var greet = 'hello'; console.log(greet); ok 6831 newline-after-var valid var greet = 'hello'; console.log(greet); ok 6832 newline-after-var valid var greet = 'hello'; console.log(greet); ok 6833 newline-after-var valid var greet = 'hello'; console.log(greet); ok 6834 newline-after-var valid var greet = 'hello'; console.log(greet); ok 6835 newline-after-var valid var greet = 'hello'; // inline comment console.log(greet); ok 6836 newline-after-var valid var greet = 'hello'; // inline comment console.log(greet); ok 6837 newline-after-var valid var greet = 'hello'; // next-line comment console.log(greet); ok 6838 newline-after-var valid var greet = 'hello'; /* block comment block comment */ console.log(greet); ok 6839 newline-after-var valid var greet = 'hello'; // next-line comment console.log(greet); ok 6840 newline-after-var valid var greet = 'hello'; /* block comment block comment */ console.log(greet); ok 6841 newline-after-var valid var greet = 'hello'; // next-line comment // second-line comment console.log(greet); ok 6842 newline-after-var valid var greet = 'hello'; // next-line comment // second-line comment console.log(greet); ok 6843 newline-after-var valid var greet = 'hello'; // next-line comment /* block comment block comment */ console.log(greet); ok 6844 newline-after-var valid var greet = 'hello';var name = 'world';console.log(greet, name); ok 6845 newline-after-var valid var greet = 'hello'; var name = 'world'; console.log(greet, name); ok 6846 newline-after-var valid var greet = 'hello'; var name = 'world'; console.log(greet, name); ok 6847 newline-after-var valid var greet = 'hello'; // inline comment var name = 'world'; console.log(greet, name); ok 6848 newline-after-var valid var greet = 'hello'; /* block comment block comment */ var name = 'world'; console.log(greet, name); ok 6849 newline-after-var valid var greet = 'hello'; // inline comment var name = 'world'; console.log(greet, name); ok 6850 newline-after-var valid var greet = 'hello'; /* block comment block comment */ var name = 'world'; console.log(greet, name); ok 6851 newline-after-var valid var greet = 'hello', name = 'world';console.log(greet, name); ok 6852 newline-after-var valid var greet = 'hello', name = 'world'; console.log(greet, name); ok 6853 newline-after-var valid var greet = 'hello', name = 'world'; console.log(greet, name); ok 6854 newline-after-var valid var greet = 'hello', name = 'world'; console.log(greet, name); ok 6855 newline-after-var valid var greet = 'hello', name = 'world'; console.log(greet, name); ok 6856 newline-after-var valid var greet = 'hello', // inline comment name = 'world'; // inline comment console.log(greet, name); ok 6857 newline-after-var valid var greet = 'hello', // inline comment name = 'world'; // inline comment console.log(greet, name); ok 6858 newline-after-var valid var greet = 'hello', name = 'world'; // next-line comment console.log(greet); ok 6859 newline-after-var valid var greet = 'hello', name = 'world'; /* block comment block comment */ console.log(greet); ok 6860 newline-after-var valid let greet = 'hello'; console.log(greet); ok 6861 newline-after-var valid let greet = 'hello'; console.log(greet); ok 6862 newline-after-var valid const greet = 'hello'; console.log(greet); ok 6863 newline-after-var valid const greet = 'hello'; console.log(greet); ok 6864 newline-after-var valid let greet = 'hello'; var name = 'world'; console.log(greet, name); ok 6865 newline-after-var valid const greet = 'hello'; var name = 'world'; console.log(greet, name); ok 6866 newline-after-var valid let greet = 'hello'; const name = 'world'; console.log(greet, name); ok 6867 newline-after-var valid for(let a = 1; a < 1; a++){ break; } ok 6868 newline-after-var valid for(var a = 1; a < 1; a++){ break; } ok 6869 newline-after-var valid for(let a = 1; a < 1; a++){ break; } ok 6870 newline-after-var valid for(var a = 1; a < 1; a++){ break; } ok 6871 newline-after-var valid for(let a in obj){ break; } ok 6872 newline-after-var valid for(var a in obj){ break; } ok 6873 newline-after-var valid for(let a in obj){ break; } ok 6874 newline-after-var valid for(var a in obj){ break; } ok 6875 newline-after-var valid for(let a in obj){ break; } ok 6876 newline-after-var valid for(var a in obj){ break; } ok 6877 newline-after-var valid for(let a in obj){ break; } ok 6878 newline-after-var valid for(var a in obj){ break; } ok 6879 newline-after-var valid export let a = 1; export let b = 2; ok 6880 newline-after-var valid export let a = 1; export let b = 2; ok 6881 newline-after-var valid export var a = 1; export var b = 2; ok 6882 newline-after-var valid export var a = 1; export var b = 2; ok 6883 newline-after-var valid export const a = 1; export const b = 2; ok 6884 newline-after-var valid export const a = 1; export const b = 2; ok 6885 newline-after-var valid function example() { var greet = 'hello' } ok 6886 newline-after-var valid function example() { var greet = 'hello' } ok 6887 newline-after-var valid function example() { var greet = 'hello'; console.log(greet); } ok 6888 newline-after-var valid var f = function() { var greet = 'hello' }; ok 6889 newline-after-var valid var f = function() { var greet = 'hello' }; ok 6890 newline-after-var valid var f = function() { var greet = 'hello'; console.log(greet); }; ok 6891 newline-after-var valid () => { var greet = 'hello'; } ok 6892 newline-after-var valid () => { var greet = 'hello'; } ok 6893 newline-after-var valid () => { var greet = 'hello'; console.log(greet); } ok 6894 newline-after-var valid { var foo; } ok 6895 newline-after-var valid { var foo; } ok 6896 newline-after-var valid if(true) { var foo; } ok 6897 newline-after-var valid if(true) { var foo; } ok 6898 newline-after-var valid switch(a) { case 0: var foo; } ok 6899 newline-after-var valid switch(a) { case 0: var foo; } ok 6900 newline-after-var valid switch(a) { case 0: var foo; case 1:} ok 6901 newline-after-var valid switch(a) { case 0: var foo; case 1:} ok 6902 newline-after-var valid var a = 1 ;(b || c).doSomething() ok 6903 newline-after-var valid var a = 1 ;(b || c).doSomething() ok 6904 newline-after-var valid var a = 1 ; (b || c).doSomething(); ok 6905 newline-after-var invalid var greet = 'hello';console.log(greet); ok 6906 newline-after-var invalid var greet = 'hello';var name = 'world';console.log(greet, name); ok 6907 newline-after-var invalid var greet = 'hello', name = 'world';console.log(greet, name); ok 6908 newline-after-var invalid var greet = 'hello'; console.log(greet); ok 6909 newline-after-var invalid var greet = 'hello'; console.log(greet); ok 6910 newline-after-var invalid var greet = 'hello'; // inline comment console.log(greet); ok 6911 newline-after-var invalid var greet = 'hello'; var name = 'world'; console.log(greet, name); ok 6912 newline-after-var invalid var greet = 'hello', name = 'world'; console.log(greet, name); ok 6913 newline-after-var invalid var greet = 'hello', name = 'world'; console.log(greet, name); ok 6914 newline-after-var invalid let greet = 'hello'; console.log(greet); ok 6915 newline-after-var invalid const greet = 'hello'; console.log(greet); ok 6916 newline-after-var invalid function example() { var greet = 'hello'; console.log(greet); } ok 6917 newline-after-var invalid var f = function() { var greet = 'hello'; console.log(greet); }; ok 6918 newline-after-var invalid () => { var greet = 'hello'; console.log(greet); } ok 6919 newline-after-var invalid switch(a) { case 0: var foo; case 1:} ok 6920 newline-after-var invalid var greet = 'hello'; console.log(greet); ok 6921 newline-after-var invalid var greet = 'hello'; console.log(greet); ok 6922 newline-after-var invalid var greet = 'hello'; console.log(greet); ok 6923 newline-after-var invalid var greet = 'hello'; console.log(greet); ok 6924 newline-after-var invalid var greet = 'hello'; // inline comment console.log(greet); ok 6925 newline-after-var invalid var greet = 'hello'; var name = 'world'; console.log(greet, name); ok 6926 newline-after-var invalid var greet = 'hello', name = 'world'; console.log(greet, name); ok 6927 newline-after-var invalid var greet = 'hello', name = 'world'; console.log(greet, name); ok 6928 newline-after-var invalid var greet = 'hello', // inline comment name = 'world'; // inline comment console.log(greet, name); ok 6929 newline-after-var invalid let greet = 'hello'; console.log(greet); ok 6930 newline-after-var invalid const greet = 'hello'; console.log(greet); ok 6931 newline-after-var invalid switch(a) { case 0: var foo; case 1:} ok 6932 newline-after-var invalid var greet = 'hello'; // next-line comment console.log(greet); ok 6933 newline-after-var invalid var greet = 'hello'; /* block comment block comment */ console.log(greet); ok 6934 newline-after-var invalid var greet = 'hello', name = 'world'; // next-line comment console.log(greet); ok 6935 newline-after-var invalid var greet = 'hello', name = 'world'; /* block comment block comment */ console.log(greet); ok 6936 newline-after-var invalid var greet = 'hello'; // next-line comment // second-line comment console.log(greet); ok 6937 newline-after-var invalid var greet = 'hello'; // next-line comment /* block comment block comment */ console.log(greet); ok 6938 newline-after-var invalid var a = 1 ;(b || c).doSomething() ok 6939 newline-after-var invalid var a = 1 ;(b || c).doSomething() ok 6940 newline-after-var invalid var a = 1 ; (b || c).doSomething(); ok 6941 newline-before-return valid function a() { return; } ok 6942 newline-before-return valid function a() { return; } ok 6943 newline-before-return valid function a() { var b; return; } ok 6944 newline-before-return valid function a() { if (b) return; } ok 6945 newline-before-return valid function a() { if (b) { return; } } ok 6946 newline-before-return valid function a() { if (b) { return; } } ok 6947 newline-before-return valid function a() { if (b) { return; } } ok 6948 newline-before-return valid function a() { if (b) { return; } return c; } ok 6949 newline-before-return valid function a() { if (b) { return; } return c; } ok 6950 newline-before-return valid function a() { if (!b) { return; } else { return b; } } ok 6951 newline-before-return valid function a() { if (!b) { return; } else { return b; } } ok 6952 newline-before-return valid function a() { if (b) { return b; } else if (c) { return c; } } ok 6953 newline-before-return valid function a() { if (b) { return b; } else if (c) { return c; } else { return d; } } ok 6954 newline-before-return valid function a() { if (b) { return b; } else if (c) { return c; } else { return d; } return a; } ok 6955 newline-before-return valid function a() { if (b) return b; else if (c) return c; else return d; } ok 6956 newline-before-return valid function a() { if (b) return b; else if (c) return c; else { return d; } } ok 6957 newline-before-return valid function a() { if (b) return b; else if (c) return c; else { e(); return d; } } ok 6958 newline-before-return valid function a() { while (b) return; } ok 6959 newline-before-return valid function a() { while (b) return; } ok 6960 newline-before-return valid function a() { while (b) { return; } } ok 6961 newline-before-return valid function a() { while (b) { return; } } ok 6962 newline-before-return valid function a() { while (b) { c(); return; } } ok 6963 newline-before-return valid function a() { var c; while (b) { c = d; //comment } return c; } ok 6964 newline-before-return valid function a() { do return; while (b); } ok 6965 newline-before-return valid function a() { do return; while (b); } ok 6966 newline-before-return valid function a() { do { return; } while (b); } ok 6967 newline-before-return valid function a() { do { return; } while (b); } ok 6968 newline-before-return valid function a() { do { return; } while (b); } ok 6969 newline-before-return valid function a() { do { c(); return; } while (b); } ok 6970 newline-before-return valid function a() { for (var b; b < c; b++) return; } ok 6971 newline-before-return valid function a() { for (var b; b < c; b++) return; } ok 6972 newline-before-return valid function a() { for (var b; b < c; b++) { return; } } ok 6973 newline-before-return valid function a() { for (var b; b < c; b++) { c(); return; } } ok 6974 newline-before-return valid function a() { for (var b; b < c; b++) { if (d) { break; //comment } return; } } ok 6975 newline-before-return valid function a() { for (b in c) return; } ok 6976 newline-before-return valid function a() { for (b in c) { return; } } ok 6977 newline-before-return valid function a() { for (b in c) { return; } } ok 6978 newline-before-return valid function a() { for (b in c) { d(); return; } } ok 6979 newline-before-return valid function a() { for (b of c) return; } ok 6980 newline-before-return valid function a() { for (b of c) return; } ok 6981 newline-before-return valid function a() { for (b of c) { return; } } ok 6982 newline-before-return valid function a() { for (b of c) { d(); return; } } ok 6983 newline-before-return valid function a() { switch (b) { case 'b': return; } } ok 6984 newline-before-return valid function a() { switch (b) { case 'b': return; } } ok 6985 newline-before-return valid function a() { switch (b) { case 'b': { return; } } } ok 6986 newline-before-return valid function a() { //comment return b; } ok 6987 newline-before-return valid function a() { { //comment } return } ok 6988 newline-before-return valid function a() { var b = { //comment }; return; } ok 6989 newline-before-return valid function a() {/*multi-line comment*/return b; } ok 6990 newline-before-return valid function a() { /*comment comment*/ //comment return b; } ok 6991 newline-before-return valid function a() { /*comment comment*/ //comment if (b) return; } ok 6992 newline-before-return valid function a() { /*comment comment*/ //comment if (b) { c(); return b; } else { //comment return d; } /*multi-line comment*/ return e; } ok 6993 newline-before-return valid function a() { if (b) { //comment return; } return c; } ok 6994 newline-before-return valid function a() { if (b) { return; } //comment return c; } ok 6995 newline-before-return valid function a() { if (b) { return; } /*multi-line comment*/ return c; } ok 6996 newline-before-return valid function a() { if (b) { return; } /*multi-line comment*/ return c; } ok 6997 newline-before-return valid return; ok 6998 newline-before-return valid var a; return; ok 6999 newline-before-return valid // comment return; ok 7000 newline-before-return valid /* comment */ return; ok 7001 newline-before-return valid /* multi-line comment */ return; ok 7002 newline-before-return invalid function a() { var b; return; } ok 7003 newline-before-return invalid function a() { var b; return; } ok 7004 newline-before-return invalid function a() { if (b) return b; else if (c) return c; else { e(); return d; } } ok 7005 newline-before-return invalid function a() { if (b) return b; else if (c) return c; else { e(); return d; } } ok 7006 newline-before-return invalid function a() { while (b) { c(); return; } } ok 7007 newline-before-return invalid function a() { do { c(); return; } while (b); } ok 7008 newline-before-return invalid function a() { for (var b; b < c; b++) { c(); return; } } ok 7009 newline-before-return invalid function a() { for (b in c) { d(); return; } } ok 7010 newline-before-return invalid function a() { for (b of c) { d(); return; } } ok 7011 newline-before-return invalid function a() { if (b) { c(); } //comment return b; } ok 7012 newline-before-return invalid function a() { /*comment comment*/ if (b) { c(); return b; } else { //comment return d; } /*multi-line comment*/ return e; } ok 7013 newline-before-return invalid function a() { if (b) { return; } //comment return c; } ok 7014 newline-before-return invalid function a() { if (b) { return; } /*multi-line comment*/ return c; } ok 7015 newline-before-return invalid function a() { if (b) { return; } /*multi-line comment*/ return c; } ok 7016 newline-before-return invalid function a() { if (b) { return; } /*multi-line comment*/ return c; } ok 7017 newline-before-return invalid var a; return; ok 7018 newline-before-return invalid var a; return; ok 7019 newline-before-return invalid function a() { { //comment } return } ok 7020 newline-before-return invalid function a() { { //comment } return } ok 7021 newline-before-return invalid function a() { var c; while (b) { c = d; //comment } return c; } ok 7022 newline-before-return invalid function a() { for (var b; b < c; b++) { if (d) { break; //comment } return; } } ok 7023 newline-before-return invalid function a() { var b; /*multi-line comment*/ return c; } ok 7024 newline-before-return invalid function a() { var b; /*multi-line comment*/ return c; } ok 7025 newline-before-return invalid function a() { var b; /*multi-line comment*/ return c; } ok 7026 newline-before-return invalid function a() { var b; //comment return; } ok 7027 newline-before-return invalid function a() { var b; //comment return; } ok 7028 newline-before-return invalid function a() { var b; /* comment */ return; } ok 7029 newline-before-return invalid function a() { var b; //comment /* comment */ return; } ok 7030 newline-before-return invalid function a() { var b; /* comment */ return; } ok 7031 newline-before-return invalid function a() { var b; /* comment */ return; } ok 7032 newline-before-return invalid function a() { var b; return; //comment } ok 7033 newline-before-return invalid function a() { var b; return; //comment } ok 7034 newline-per-chained-call valid _ .chain({}) .map(foo) .filter(bar) .value(); ok 7035 newline-per-chained-call valid a.b.c.d.e.f ok 7036 newline-per-chained-call valid a() .b() .c .e ok 7037 newline-per-chained-call valid var a = m1.m2(); var b = m1.m2(); var c = m1.m2() ok 7038 newline-per-chained-call valid var a = m1() .m2(); ok 7039 newline-per-chained-call valid var a = m1(); ok 7040 newline-per-chained-call valid a() .b().c.e.d() ok 7041 newline-per-chained-call valid a().b().c.e.d() ok 7042 newline-per-chained-call valid a.b.c.e.d() ok 7043 newline-per-chained-call valid var a = window .location .href .match(/(^[^]*)/)[0]; ok 7044 newline-per-chained-call valid var a = window['location'] .href .match(/(^[^]*)/)[0]; ok 7045 newline-per-chained-call valid var a = window['location'].href.match(/(^[^]*)/)[0]; ok 7046 newline-per-chained-call valid var a = m1().m2.m3(); ok 7047 newline-per-chained-call valid var a = m1().m2.m3().m4.m5().m6.m7().m8; ok 7048 newline-per-chained-call invalid _ .chain({}).map(foo).filter(bar).value(); ok 7049 newline-per-chained-call invalid _ .chain({}) .map(foo) .filter(bar).value(); ok 7050 newline-per-chained-call invalid a().b().c().e.d() ok 7051 newline-per-chained-call invalid a.b.c().e().d() ok 7052 newline-per-chained-call invalid _.chain({}).map(a).value(); ok 7053 newline-per-chained-call invalid var a = m1.m2(); var b = m1.m2().m3().m4().m5(); ok 7054 newline-per-chained-call invalid var a = m1.m2(); var b = m1.m2().m3() .m4().m5(); ok 7055 newline-per-chained-call invalid var a = m1().m2 .m3().m4().m5().m6().m7(); ok 7056 newline-per-chained-call invalid http.request({ // Param // Param // Param }).on('response', function(response) { // Do something with response. // Do something with response. // Do something with response. // Do something with response. // Do something with response. // Do something with response. // Do something with response. // Do something with response. // Do something with response. // Do something with response. }).on('error', function(error) { // Do something with error. // Do something with error. // Do something with error. // Do something with error. // Do something with error. // Do something with error. // Do something with error. // Do something with error. // Do something with error. // Do something with error. }).end(); ok 7057 newline-per-chained-call invalid anObject.method1().method2()['method' + n]()[aCondition ? 'method3' : 'method4']() ok 7058 newline-per-chained-call invalid foo.bar()['foo' + 
 + 'bar']() ok 7059 newline-per-chained-call invalid foo.bar()[(biz)]() ok 7060 newline-per-chained-call invalid (foo).bar().biz() ok 7061 newline-per-chained-call invalid foo.bar(). /* comment */ biz() ok 7062 newline-per-chained-call invalid foo.bar() /* comment */ .biz() ok 7063 no-alert valid a[o.k](1) ok 7064 no-alert valid foo.alert(foo) ok 7065 no-alert valid foo.confirm(foo) ok 7066 no-alert valid foo.prompt(foo) ok 7067 no-alert valid function alert() {} alert(); ok 7068 no-alert valid var alert = function() {}; alert(); ok 7069 no-alert valid function foo() { var alert = bar; alert(); } ok 7070 no-alert valid function foo(alert) { alert(); } ok 7071 no-alert valid var alert = function() {}; function test() { alert(); } ok 7072 no-alert valid function foo() { var alert = function() {}; function test() { alert(); } } ok 7073 no-alert valid function confirm() {} confirm(); ok 7074 no-alert valid function prompt() {} prompt(); ok 7075 no-alert valid window[alert](); ok 7076 no-alert valid function foo() { this.alert(); } ok 7077 no-alert valid function foo() { var window = bar; window.alert(); } ok 7078 no-alert invalid alert(foo) ok 7079 no-alert invalid window.alert(foo) ok 7080 no-alert invalid window['alert'](foo) ok 7081 no-alert invalid confirm(foo) ok 7082 no-alert invalid window.confirm(foo) ok 7083 no-alert invalid window['confirm'](foo) ok 7084 no-alert invalid prompt(foo) ok 7085 no-alert invalid window.prompt(foo) ok 7086 no-alert invalid window['prompt'](foo) ok 7087 no-alert invalid function alert() {} window.alert(foo) ok 7088 no-alert invalid var alert = function() {}; window.alert(foo) ok 7089 no-alert invalid function foo(alert) { window.alert(); } ok 7090 no-alert invalid function foo() { alert(); } ok 7091 no-alert invalid function foo() { var alert = function() {}; } alert(); ok 7092 no-alert invalid this.alert(foo) ok 7093 no-alert invalid this['alert'](foo) ok 7094 no-alert invalid function foo() { var window = bar; window.alert(); } window.alert(); ok 7095 no-array-constructor valid new Array(x) ok 7096 no-array-constructor valid Array(x) ok 7097 no-array-constructor valid new Array(9) ok 7098 no-array-constructor valid Array(9) ok 7099 no-array-constructor valid new foo.Array() ok 7100 no-array-constructor valid foo.Array() ok 7101 no-array-constructor valid new Array.foo ok 7102 no-array-constructor valid Array.foo() ok 7103 no-array-constructor invalid new Array() ok 7104 no-array-constructor invalid new Array ok 7105 no-array-constructor invalid new Array(x, y) ok 7106 no-array-constructor invalid new Array(0, 1, 2) ok 7107 no-async-promise-executor valid new Promise((resolve, reject) => {}) ok 7108 no-async-promise-executor valid new Promise((resolve, reject) => {}, async function unrelated() {}) ok 7109 no-async-promise-executor valid new Foo(async (resolve, reject) => {}) ok 7110 no-async-promise-executor invalid new Promise(async function foo(resolve, reject) {}) ok 7111 no-async-promise-executor invalid new Promise(async (resolve, reject) => {}) ok 7112 no-async-promise-executor invalid new Promise(((((async () => {}))))) ok 7113 no-await-in-loop valid async function foo() { await bar; } ok 7114 no-await-in-loop valid async function foo() { for (var bar in await baz) { } } ok 7115 no-await-in-loop valid async function foo() { for (var bar of await baz) { } } ok 7116 no-await-in-loop valid async function foo() { for await (var bar of await baz) { } } ok 7117 no-await-in-loop valid async function foo() { for (var bar = await baz in qux) {} } ok 7118 no-await-in-loop valid async function foo() { while (true) { async function foo() { await bar; } } } ok 7119 no-await-in-loop valid async function foo() { for (var i = await bar; i < n; i++) { } } ok 7120 no-await-in-loop valid async function foo() { do { } while (bar); } ok 7121 no-await-in-loop valid async function foo() { while (true) { var y = async function() { await bar; } } } ok 7122 no-await-in-loop valid async function foo() { while (true) { var y = async () => await foo; } } ok 7123 no-await-in-loop valid async function foo() { while (true) { var y = async () => { await foo; } } } ok 7124 no-await-in-loop valid async function foo() { while (true) { class Foo { async foo() { await bar; } } } } ok 7125 no-await-in-loop valid async function foo() { for await (var x of xs) { await f(x) } } ok 7126 no-await-in-loop invalid async function foo() { while (baz) { await bar; } } ok 7127 no-await-in-loop invalid async function foo() { while (await foo()) { } } ok 7128 no-await-in-loop invalid async function foo() { while (baz) { for await (x of xs); } } ok 7129 no-await-in-loop invalid async function foo() { for (var bar of baz) { await bar; } } ok 7130 no-await-in-loop invalid async function foo() { for (var bar of baz) await bar; } ok 7131 no-await-in-loop invalid async function foo() { for (var bar in baz) { await bar; } } ok 7132 no-await-in-loop invalid async function foo() { for (var i; i < n; i++) { await bar; } } ok 7133 no-await-in-loop invalid async function foo() { for (var i; await foo(i); i++) { } } ok 7134 no-await-in-loop invalid async function foo() { for (var i; i < n; i = await bar) { } } ok 7135 no-await-in-loop invalid async function foo() { do { await bar; } while (baz); } ok 7136 no-await-in-loop invalid async function foo() { do { } while (await bar); } ok 7137 no-await-in-loop invalid async function foo() { while (true) { if (bar) { foo(await bar); } } } ok 7138 no-await-in-loop invalid async function foo() { while (xyz || 5 > await x) { } } ok 7139 no-await-in-loop invalid async function foo() { for await (var x of xs) { while (1) await f(x) } } ok 7140 no-bitwise valid a + b ok 7141 no-bitwise valid !a ok 7142 no-bitwise valid a += b ok 7143 no-bitwise valid ~[1, 2, 3].indexOf(1) ok 7144 no-bitwise valid ~1<<2 === -8 ok 7145 no-bitwise valid a|0 ok 7146 no-bitwise valid a|0 ok 7147 no-bitwise invalid a ^ b ok 7148 no-bitwise invalid a | b ok 7149 no-bitwise invalid a & b ok 7150 no-bitwise invalid a << b ok 7151 no-bitwise invalid a >> b ok 7152 no-bitwise invalid a >>> b ok 7153 no-bitwise invalid ~a ok 7154 no-bitwise invalid a ^= b ok 7155 no-bitwise invalid a |= b ok 7156 no-bitwise invalid a &= b ok 7157 no-bitwise invalid a <<= b ok 7158 no-bitwise invalid a >>= b ok 7159 no-bitwise invalid a >>>= b ok 7160 no-buffer-constructor valid Buffer.alloc(5) ok 7161 no-buffer-constructor valid Buffer.allocUnsafe(5) ok 7162 no-buffer-constructor valid new Buffer.Foo() ok 7163 no-buffer-constructor valid Buffer.from([1, 2, 3]) ok 7164 no-buffer-constructor valid foo(Buffer) ok 7165 no-buffer-constructor valid Buffer.alloc(res.body.amount) ok 7166 no-buffer-constructor valid Buffer.from(res.body.values) ok 7167 no-buffer-constructor invalid Buffer(5) ok 7168 no-buffer-constructor invalid new Buffer(5) ok 7169 no-buffer-constructor invalid Buffer([1, 2, 3]) ok 7170 no-buffer-constructor invalid new Buffer([1, 2, 3]) ok 7171 no-buffer-constructor invalid new Buffer(res.body.amount) ok 7172 no-buffer-constructor invalid new Buffer(res.body.values) ok 7173 no-caller valid var x = arguments.length ok 7174 no-caller valid var x = arguments ok 7175 no-caller valid var x = arguments[0] ok 7176 no-caller valid var x = arguments[caller] ok 7177 no-caller invalid var x = arguments.callee ok 7178 no-caller invalid var x = arguments.caller ok 7179 no-case-declarations valid switch (a) { case 1: { let x = 1; break; } default: { let x = 2; break; } } ok 7180 no-case-declarations valid switch (a) { case 1: { const x = 1; break; } default: { const x = 2; break; } } ok 7181 no-case-declarations valid switch (a) { case 1: { function f() {} break; } default: { function f() {} break; } } ok 7182 no-case-declarations valid switch (a) { case 1: { class C {} break; } default: { class C {} break; } } ok 7183 no-case-declarations invalid switch (a) { case 1: let x = 1; break; } ok 7184 no-case-declarations invalid switch (a) { default: let x = 2; break; } ok 7185 no-case-declarations invalid switch (a) { case 1: const x = 1; break; } ok 7186 no-case-declarations invalid switch (a) { default: const x = 2; break; } ok 7187 no-case-declarations invalid switch (a) { case 1: function f() {} break; } ok 7188 no-case-declarations invalid switch (a) { default: function f() {} break; } ok 7189 no-case-declarations invalid switch (a) { case 1: class C {} break; } ok 7190 no-case-declarations invalid switch (a) { default: class C {} break; } ok 7191 no-catch-shadow valid var foo = 1; try { bar(); } catch(baz) { } ok 7192 no-catch-shadow valid 'use strict'; function broken() { try { throw new Error(); } catch (e) { // } } module.exports = broken; ok 7193 no-catch-shadow valid try {} catch (error) {} ok 7194 no-catch-shadow valid try {} catch {} ok 7195 no-catch-shadow invalid var foo = 1; try { bar(); } catch(foo) { } ok 7196 no-catch-shadow invalid function foo(){} try { bar(); } catch(foo) { } ok 7197 no-catch-shadow invalid function foo(){ try { bar(); } catch(foo) { } } ok 7198 no-catch-shadow invalid var foo = function(){ try { bar(); } catch(foo) { } }; ok 7199 no-class-assign valid class A { } foo(A); ok 7200 no-class-assign valid let A = class A { }; foo(A); ok 7201 no-class-assign valid class A { b(A) { A = 0; } } ok 7202 no-class-assign valid class A { b() { let A; A = 0; } } ok 7203 no-class-assign valid let A = class { b() { A = 0; } } ok 7204 no-class-assign valid var x = 0; x = 1; ok 7205 no-class-assign valid let x = 0; x = 1; ok 7206 no-class-assign valid const x = 0; x = 1; ok 7207 no-class-assign valid function x() {} x = 1; ok 7208 no-class-assign valid function foo(x) { x = 1; } ok 7209 no-class-assign valid try {} catch (x) { x = 1; } ok 7210 no-class-assign invalid class A { } A = 0; ok 7211 no-class-assign invalid class A { } ({A} = 0); ok 7212 no-class-assign invalid class A { } ({b: A = 0} = {}); ok 7213 no-class-assign invalid A = 0; class A { } ok 7214 no-class-assign invalid class A { b() { A = 0; } } ok 7215 no-class-assign invalid let A = class A { b() { A = 0; } } ok 7216 no-class-assign invalid class A { } A = 0; A = 1; ok 7217 no-compare-neg-zero valid x === 0 ok 7218 no-compare-neg-zero valid 0 === x ok 7219 no-compare-neg-zero valid x == 0 ok 7220 no-compare-neg-zero valid 0 == x ok 7221 no-compare-neg-zero valid x === '0' ok 7222 no-compare-neg-zero valid '0' === x ok 7223 no-compare-neg-zero valid x == '0' ok 7224 no-compare-neg-zero valid '0' == x ok 7225 no-compare-neg-zero valid x === '-0' ok 7226 no-compare-neg-zero valid '-0' === x ok 7227 no-compare-neg-zero valid x == '-0' ok 7228 no-compare-neg-zero valid '-0' == x ok 7229 no-compare-neg-zero valid x === -1 ok 7230 no-compare-neg-zero valid -1 === x ok 7231 no-compare-neg-zero valid x < 0 ok 7232 no-compare-neg-zero valid 0 < x ok 7233 no-compare-neg-zero valid x <= 0 ok 7234 no-compare-neg-zero valid 0 <= x ok 7235 no-compare-neg-zero valid x > 0 ok 7236 no-compare-neg-zero valid 0 > x ok 7237 no-compare-neg-zero valid x >= 0 ok 7238 no-compare-neg-zero valid 0 >= x ok 7239 no-compare-neg-zero valid x != 0 ok 7240 no-compare-neg-zero valid 0 != x ok 7241 no-compare-neg-zero valid x !== 0 ok 7242 no-compare-neg-zero valid 0 !== x ok 7243 no-compare-neg-zero valid Object.is(x, -0) ok 7244 no-compare-neg-zero invalid x === -0 ok 7245 no-compare-neg-zero invalid -0 === x ok 7246 no-compare-neg-zero invalid x == -0 ok 7247 no-compare-neg-zero invalid -0 == x ok 7248 no-compare-neg-zero invalid x > -0 ok 7249 no-compare-neg-zero invalid -0 > x ok 7250 no-compare-neg-zero invalid x >= -0 ok 7251 no-compare-neg-zero invalid -0 >= x ok 7252 no-compare-neg-zero invalid x < -0 ok 7253 no-compare-neg-zero invalid -0 < x ok 7254 no-compare-neg-zero invalid x <= -0 ok 7255 no-compare-neg-zero invalid -0 <= x ok 7256 no-cond-assign valid var x = 0; if (x == 0) { var b = 1; } ok 7257 no-cond-assign valid var x = 0; if (x == 0) { var b = 1; } ok 7258 no-cond-assign valid var x = 5; while (x < 5) { x = x + 1; } ok 7259 no-cond-assign valid if ((someNode = someNode.parentNode) !== null) { } ok 7260 no-cond-assign valid if ((someNode = someNode.parentNode) !== null) { } ok 7261 no-cond-assign valid if ((a = b)); ok 7262 no-cond-assign valid while ((a = b)); ok 7263 no-cond-assign valid do {} while ((a = b)); ok 7264 no-cond-assign valid for (;(a = b);); ok 7265 no-cond-assign valid for (;;) {} ok 7266 no-cond-assign valid if (someNode || (someNode = parentNode)) { } ok 7267 no-cond-assign valid while (someNode || (someNode = parentNode)) { } ok 7268 no-cond-assign valid do { } while (someNode || (someNode = parentNode)); ok 7269 no-cond-assign valid for (;someNode || (someNode = parentNode);); ok 7270 no-cond-assign valid if ((function(node) { return node = parentNode; })(someNode)) { } ok 7271 no-cond-assign valid if ((function(node) { return node = parentNode; })(someNode)) { } ok 7272 no-cond-assign valid if ((node => node = parentNode)(someNode)) { } ok 7273 no-cond-assign valid if ((node => node = parentNode)(someNode)) { } ok 7274 no-cond-assign valid if (function(node) { return node = parentNode; }) { } ok 7275 no-cond-assign valid if (function(node) { return node = parentNode; }) { } ok 7276 no-cond-assign valid x = 0; ok 7277 no-cond-assign valid var x; var b = (x === 0) ? 1 : 0; ok 7278 no-cond-assign invalid var x; if (x = 0) { var b = 1; } ok 7279 no-cond-assign invalid var x; while (x = 0) { var b = 1; } ok 7280 no-cond-assign invalid var x = 0, y; do { y = x; } while (x = x + 1); ok 7281 no-cond-assign invalid var x; for(; x+=1 ;){}; ok 7282 no-cond-assign invalid var x; if ((x) = (0)); ok 7283 no-cond-assign invalid if (someNode || (someNode = parentNode)) { } ok 7284 no-cond-assign invalid while (someNode || (someNode = parentNode)) { } ok 7285 no-cond-assign invalid do { } while (someNode || (someNode = parentNode)); ok 7286 no-cond-assign invalid for (; (typeof l === 'undefined' ? (l = 0) : l); i++) { } ok 7287 no-cond-assign invalid if (x = 0) { } ok 7288 no-cond-assign invalid while (x = 0) { } ok 7289 no-cond-assign invalid do { } while (x = x + 1); ok 7290 no-cond-assign invalid for(; x = y; ) { } ok 7291 no-cond-assign invalid if ((x = 0)) { } ok 7292 no-cond-assign invalid while ((x = 0)) { } ok 7293 no-cond-assign invalid do { } while ((x = x + 1)); ok 7294 no-cond-assign invalid for(; (x = y); ) { } ok 7295 no-cond-assign invalid var x; var b = (x = 0) ? 1 : 0; ok 7296 no-confusing-arrow valid a => { return 1 ? 2 : 3; } ok 7297 no-confusing-arrow valid var x = a => { return 1 ? 2 : 3; } ok 7298 no-confusing-arrow valid var x = (a) => { return 1 ? 2 : 3; } ok 7299 no-confusing-arrow valid var x = a => (1 ? 2 : 3) ok 7300 no-confusing-arrow invalid a => 1 ? 2 : 3 ok 7301 no-confusing-arrow invalid var x = a => 1 ? 2 : 3 ok 7302 no-confusing-arrow invalid var x = (a) => 1 ? 2 : 3 ok 7303 no-confusing-arrow invalid var x = a => (1 ? 2 : 3) ok 7304 no-confusing-arrow invalid a => 1 ? 2 : 3 ok 7305 no-confusing-arrow invalid var x = a => 1 ? 2 : 3 ok 7306 no-confusing-arrow invalid var x = (a) => 1 ? 2 : 3 ok 7307 no-console valid Console.info(foo) ok 7308 no-console valid console.info(foo) ok 7309 no-console valid console.warn(foo) ok 7310 no-console valid console.error(foo) ok 7311 no-console valid console.log(foo) ok 7312 no-console valid console.info(foo) ok 7313 no-console valid console.warn(foo) ok 7314 no-console valid console.error(foo) ok 7315 no-console valid console.log(foo) ok 7316 no-console valid var console = require('myconsole'); console.log(foo) ok 7317 no-console invalid console.log(foo) ok 7318 no-console invalid console.error(foo) ok 7319 no-console invalid console.info(foo) ok 7320 no-console invalid console.warn(foo) ok 7321 no-console invalid console.log(foo) ok 7322 no-console invalid console.error(foo) ok 7323 no-console invalid console.info(foo) ok 7324 no-console invalid console.warn(foo) ok 7325 no-console invalid console.log(foo) ok 7326 no-console invalid console.error(foo) ok 7327 no-console invalid console.info(foo) ok 7328 no-console invalid console.warn(foo) ok 7329 no-console invalid console.log(foo) ok 7330 no-const-assign valid const x = 0; { let x; x = 1; } ok 7331 no-const-assign valid const x = 0; function a(x) { x = 1; } ok 7332 no-const-assign valid const x = 0; foo(x); ok 7333 no-const-assign valid for (const x in [1,2,3]) { foo(x); } ok 7334 no-const-assign valid for (const x of [1,2,3]) { foo(x); } ok 7335 no-const-assign valid const x = {key: 0}; x.key = 1; ok 7336 no-const-assign valid var x = 0; x = 1; ok 7337 no-const-assign valid let x = 0; x = 1; ok 7338 no-const-assign valid function x() {} x = 1; ok 7339 no-const-assign valid function foo(x) { x = 1; } ok 7340 no-const-assign valid class X {} X = 1; ok 7341 no-const-assign valid try {} catch (x) { x = 1; } ok 7342 no-const-assign invalid const x = 0; x = 1; ok 7343 no-const-assign invalid const {a: x} = {a: 0}; x = 1; ok 7344 no-const-assign invalid const x = 0; ({x} = {x: 1}); ok 7345 no-const-assign invalid const x = 0; ({a: x = 1} = {}); ok 7346 no-const-assign invalid const x = 0; x += 1; ok 7347 no-const-assign invalid const x = 0; ++x; ok 7348 no-const-assign invalid for (const i = 0; i < 10; ++i) { foo(i); } ok 7349 no-const-assign invalid const x = 0; x = 1; x = 2; ok 7350 no-const-assign invalid const x = 0; function foo() { x = x + 1; } ok 7351 no-const-assign invalid const x = 0; function foo(a) { x = a; } ok 7352 no-const-assign invalid const x = 0; while (true) { x = x + 1; } ok 7353 no-constant-condition valid if(a); ok 7354 no-constant-condition valid if(a == 0); ok 7355 no-constant-condition valid if(a = f()); ok 7356 no-constant-condition valid if(1, a); ok 7357 no-constant-condition valid if ('every' in []); ok 7358 no-constant-condition valid while(~!a); ok 7359 no-constant-condition valid while(a = b); ok 7360 no-constant-condition valid for(;x < 10;); ok 7361 no-constant-condition valid for(;;); ok 7362 no-constant-condition valid do{ }while(x) ok 7363 no-constant-condition valid q > 0 ? 1 : 2; ok 7364 no-constant-condition valid while(x += 3) {} ok 7365 no-constant-condition valid if(typeof x === 'undefined'){} ok 7366 no-constant-condition valid if(a === 'str' && typeof b){} ok 7367 no-constant-condition valid typeof a == typeof b ok 7368 no-constant-condition valid typeof 'a' === 'string'|| typeof b === 'string' ok 7369 no-constant-condition valid if (void a || a); ok 7370 no-constant-condition valid if (a || void a); ok 7371 no-constant-condition valid if(xyz === 'str1' && abc==='str2'){} ok 7372 no-constant-condition valid if(xyz === 'str1' || abc==='str2'){} ok 7373 no-constant-condition valid if(xyz === 'str1' || abc==='str2' && pqr === 5){} ok 7374 no-constant-condition valid if(typeof abc === 'string' && abc==='str2'){} ok 7375 no-constant-condition valid if(false || abc==='str'){} ok 7376 no-constant-condition valid if(true && abc==='str'){} ok 7377 no-constant-condition valid if(typeof 'str' && abc==='str'){} ok 7378 no-constant-condition valid if(abc==='str' || false || def ==='str'){} ok 7379 no-constant-condition valid if(true && abc==='str' || def ==='str'){} ok 7380 no-constant-condition valid if(true && typeof abc==='string'){} ok 7381 no-constant-condition valid if('str' || a){} ok 7382 no-constant-condition valid if('str1' && a){} ok 7383 no-constant-condition valid if(a && 'str'){} ok 7384 no-constant-condition valid if('str' || abc==='str'){} ok 7385 no-constant-condition valid if ((foo || 'bar') === 'baz') {} ok 7386 no-constant-condition valid if ((foo || 'bar') !== 'baz') {} ok 7387 no-constant-condition valid if ((foo || 'bar') == 'baz') {} ok 7388 no-constant-condition valid if ((foo || 'bar') != 'baz') {} ok 7389 no-constant-condition valid if ((foo || 233) > 666) {} ok 7390 no-constant-condition valid if ((foo || 233) < 666) {} ok 7391 no-constant-condition valid if ((foo || 233) >= 666) {} ok 7392 no-constant-condition valid if ((foo || 233) <= 666) {} ok 7393 no-constant-condition valid if ((key || 'k') in obj) {} ok 7394 no-constant-condition valid if ((foo || {}) instanceof obj) {} ok 7395 no-constant-condition valid while(true); ok 7396 no-constant-condition valid for(;true;); ok 7397 no-constant-condition valid do{}while(true) ok 7398 no-constant-condition valid function* foo(){while(true){yield 'foo';}} ok 7399 no-constant-condition valid function* foo(){for(;true;){yield 'foo';}} ok 7400 no-constant-condition valid function* foo(){do{yield 'foo';}while(true)} ok 7401 no-constant-condition valid function* foo(){while (true) { while(true) {yield;}}} ok 7402 no-constant-condition valid function* foo() {for (; yield; ) {}} ok 7403 no-constant-condition valid function* foo() {for (; ; yield) {}} ok 7404 no-constant-condition valid function* foo() {while (true) {function* foo() {yield;}yield;}} ok 7405 no-constant-condition valid function* foo() { for (let x = yield; x < 10; x++) {yield;}yield;} ok 7406 no-constant-condition valid function* foo() { for (let x = yield; ; x++) { yield; }} ok 7407 no-constant-condition invalid for(;true;); ok 7408 no-constant-condition invalid do{}while(true) ok 7409 no-constant-condition invalid do{}while(t = -2) ok 7410 no-constant-condition invalid true ? 1 : 2; ok 7411 no-constant-condition invalid q = 0 ? 1 : 2; ok 7412 no-constant-condition invalid (q = 0) ? 1 : 2; ok 7413 no-constant-condition invalid if(-2); ok 7414 no-constant-condition invalid if(true); ok 7415 no-constant-condition invalid if({}); ok 7416 no-constant-condition invalid if(0 < 1); ok 7417 no-constant-condition invalid if(0 || 1); ok 7418 no-constant-condition invalid if(a, 1); ok 7419 no-constant-condition invalid while([]); ok 7420 no-constant-condition invalid while(~!0); ok 7421 no-constant-condition invalid while(x = 1); ok 7422 no-constant-condition invalid while(function(){}); ok 7423 no-constant-condition invalid while(true); ok 7424 no-constant-condition invalid while(() => {}); ok 7425 no-constant-condition invalid if(typeof x){} ok 7426 no-constant-condition invalid if(typeof 'abc' === 'string'){} ok 7427 no-constant-condition invalid if(a = typeof b){} ok 7428 no-constant-condition invalid if(a, typeof b){} ok 7429 no-constant-condition invalid if(typeof 'a' == 'string' || typeof 'b' == 'string'){} ok 7430 no-constant-condition invalid while(typeof x){} ok 7431 no-constant-condition invalid if(1 || void x); ok 7432 no-constant-condition invalid if(void x); ok 7433 no-constant-condition invalid if(y = void x); ok 7434 no-constant-condition invalid if(x, void x); ok 7435 no-constant-condition invalid if(void x === void y); ok 7436 no-constant-condition invalid if(void x && a); ok 7437 no-constant-condition invalid if(a && void x); ok 7438 no-constant-condition invalid if(false && abc==='str'){} ok 7439 no-constant-condition invalid if(true || abc==='str'){} ok 7440 no-constant-condition invalid if(abc==='str' || true){} ok 7441 no-constant-condition invalid if(abc==='str' || true || def ==='str'){} ok 7442 no-constant-condition invalid if(false || true){} ok 7443 no-constant-condition invalid if(typeof abc==='str' || true){} ok 7444 no-constant-condition invalid if('str1' || 'str2'){} ok 7445 no-constant-condition invalid if('str1' && 'str2'){} ok 7446 no-constant-condition invalid if(abc==='str' || 'str'){} ok 7447 no-constant-condition invalid if(a || 'str'){} ok 7448 no-constant-condition invalid function* foo(){while(true){} yield 'foo';} ok 7449 no-constant-condition invalid function* foo(){while(true){if (true) {yield 'foo';}}} ok 7450 no-constant-condition invalid function* foo(){while(true){yield 'foo';} while(true) {}} ok 7451 no-constant-condition invalid var a = function* foo(){while(true){} yield 'foo';} ok 7452 no-constant-condition invalid while (true) { function* foo() {yield;}} ok 7453 no-constant-condition invalid function* foo(){if (true) {yield 'foo';}} ok 7454 no-constant-condition invalid function* foo() {for (let foo = yield; true;) {}} ok 7455 no-constant-condition invalid function* foo() {for (foo = yield; true;) {}} ok 7456 no-constant-condition invalid function foo() {while (true) {function* bar() {while (true) {yield;}}}} ok 7457 no-constant-condition invalid function foo() {while (true) {const bar = function*() {while (true) {yield;}}}} ok 7458 no-constant-condition invalid function* foo() { for (let foo = 1 + 2 + 3 + (yield); true; baz) {}} ok 7459 no-continue valid var sum = 0, i; for(i = 0; i < 10; i++){ if(i > 5) { sum += i; } } ok 7460 no-continue valid var sum = 0, i = 0; while(i < 10) { if(i > 5) { sum += i; } i++; } ok 7461 no-continue invalid var sum = 0, i; for(i = 0; i < 10; i++){ if(i <= 5) { continue; } sum += i; } ok 7462 no-continue invalid var sum = 0, i; myLabel: for(i = 0; i < 10; i++){ if(i <= 5) { continue myLabel; } sum += i; } ok 7463 no-continue invalid var sum = 0, i = 0; while(i < 10) { if(i <= 5) { i++; continue; } sum += i; i++; } ok 7464 no-continue invalid var sum = 0, i = 0; myLabel: while(i < 10) { if(i <= 5) { i++; continue myLabel; } sum += i; i++; } ok 7465 no-control-regex valid var regex = /x1f/ ok 7466 no-control-regex valid var regex = /\\x1f/ ok 7467 no-control-regex valid var regex = new RegExp('x1f') ok 7468 no-control-regex valid var regex = RegExp('x1f') ok 7469 no-control-regex valid new RegExp('[') ok 7470 no-control-regex valid RegExp('[') ok 7471 no-control-regex valid new (function foo(){})('\x1f') ok 7472 no-control-regex invalid var regex = /\x1f/ ok 7473 no-control-regex invalid var regex = /\\\x1f\\x1e/ ok 7474 no-control-regex invalid var regex = /\\\x1fFOO\\x00/ ok 7475 no-control-regex invalid var regex = /FOO\\\x1fFOO\\x1f/ ok 7476 no-control-regex invalid var regex = new RegExp('\x1f\x1e') ok 7477 no-control-regex invalid var regex = new RegExp('\x1fFOO\x00') ok 7478 no-control-regex invalid var regex = new RegExp('FOO\x1fFOO\x1f') ok 7479 no-control-regex invalid var regex = RegExp('\x1f') ok 7480 no-control-regex invalid var regex = /(?<a>\x1f)/ ok 7481 no-debugger valid var test = { debugger: 1 }; test.debugger; ok 7482 no-debugger invalid if (foo) debugger ok 7483 no-delete-var valid delete x.prop; ok 7484 no-delete-var invalid delete x ok 7485 no-div-regex valid var f = function() { return /foo/ig.test('bar'); }; ok 7486 no-div-regex valid var f = function() { return /\=foo/; }; ok 7487 no-div-regex invalid var f = function() { return /=foo/; }; ok 7488 no-dupe-args valid function a(a, b, c){} ok 7489 no-dupe-args valid var a = function(a, b, c){} ok 7490 no-dupe-args valid function a({a, b}, {c, d}){} ok 7491 no-dupe-args valid function a([ , a]) {} ok 7492 no-dupe-args valid function foo([[a, b], [c, d]]) {} ok 7493 no-dupe-args invalid function a(a, b, b) {} ok 7494 no-dupe-args invalid function a(a, a, a) {} ok 7495 no-dupe-args invalid function a(a, b, a) {} ok 7496 no-dupe-args invalid function a(a, b, a, b) {} ok 7497 no-dupe-args invalid var a = function(a, b, b) {} ok 7498 no-dupe-args invalid var a = function(a, a, a) {} ok 7499 no-dupe-args invalid var a = function(a, b, a) {} ok 7500 no-dupe-args invalid var a = function(a, b, a, b) {} ok 7501 no-dupe-class-members valid class A { foo() {} bar() {} } ok 7502 no-dupe-class-members valid class A { static foo() {} foo() {} } ok 7503 no-dupe-class-members valid class A { get foo() {} set foo(value) {} } ok 7504 no-dupe-class-members valid class A { static foo() {} get foo() {} set foo(value) {} } ok 7505 no-dupe-class-members valid class A { foo() { } } class B { foo() { } } ok 7506 no-dupe-class-members valid class A { [foo]() {} foo() {} } ok 7507 no-dupe-class-members valid class A { 'foo'() {} 'bar'() {} baz() {} } ok 7508 no-dupe-class-members valid class A { *'foo'() {} *'bar'() {} *baz() {} } ok 7509 no-dupe-class-members valid class A { get 'foo'() {} get 'bar'() {} get baz() {} } ok 7510 no-dupe-class-members valid class A { 1() {} 2() {} } ok 7511 no-dupe-class-members invalid class A { foo() {} foo() {} } ok 7512 no-dupe-class-members invalid !class A { foo() {} foo() {} }; ok 7513 no-dupe-class-members invalid class A { 'foo'() {} 'foo'() {} } ok 7514 no-dupe-class-members invalid class A { 10() {} 1e1() {} } ok 7515 no-dupe-class-members invalid class A { foo() {} foo() {} foo() {} } ok 7516 no-dupe-class-members invalid class A { static foo() {} static foo() {} } ok 7517 no-dupe-class-members invalid class A { foo() {} get foo() {} } ok 7518 no-dupe-class-members invalid class A { set foo(value) {} foo() {} } ok 7519 no-dupe-keys valid var foo = { __proto__: 1, two: 2}; ok 7520 no-dupe-keys valid var x = { foo: 1, bar: 2 }; ok 7521 no-dupe-keys valid +{ get a() { }, set a(b) { } }; ok 7522 no-dupe-keys valid var x = { a: b, [a]: b }; ok 7523 no-dupe-keys valid var x = { a: b, ...c } ok 7524 no-dupe-keys valid var x = { get a() {}, set a (value) {} }; ok 7525 no-dupe-keys valid var x = { a: 1, b: { a: 2 } }; ok 7526 no-dupe-keys valid var {a, a} = obj ok 7527 no-dupe-keys invalid var x = { a: b, ['a']: b }; ok 7528 no-dupe-keys invalid var x = { y: 1, y: 2 }; ok 7529 no-dupe-keys invalid var foo = { 0x1: 1, 1: 2}; ok 7530 no-dupe-keys invalid var x = { "z": 1, z: 2 }; ok 7531 no-dupe-keys invalid var foo = { bar: 1, bar: 1, } ok 7532 no-dupe-keys invalid var x = { a: 1, get a() {} }; ok 7533 no-dupe-keys invalid var x = { a: 1, set a(value) {} }; ok 7534 no-dupe-keys invalid var x = { a: 1, b: { a: 2 }, get b() {} }; ok 7535 no-duplicate-case valid var a = 1; switch (a) {case 1: break; case 2: break; default: break;} ok 7536 no-duplicate-case valid var a = 1; switch (a) {case 1: break; case '1': break; default: break;} ok 7537 no-duplicate-case valid var a = 1; switch (a) {case 1: break; case true: break; default: break;} ok 7538 no-duplicate-case valid var a = 1; switch (a) {default: break;} ok 7539 no-duplicate-case valid var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p.p.p1: break; case p.p.p2: break; default: break;} ok 7540 no-duplicate-case valid var a = 1, f = function(b) { return b ? { p1: 1 } : { p1: 2 }; }; switch (a) {case f(true).p1: break; case f(true, false).p1: break; default: break;} ok 7541 no-duplicate-case valid var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a + 1).p1: break; case f(a + 2).p1: break; default: break;} ok 7542 no-duplicate-case valid var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a == 1 ? 2 : 3).p1: break; case f(a === 1 ? 2 : 3).p1: break; default: break;} ok 7543 no-duplicate-case valid var a = 1, f1 = function() { return { p1: 1 } }, f2 = function() { return { p1: 2 } }; switch (a) {case f1().p1: break; case f2().p1: break; default: break;} ok 7544 no-duplicate-case valid var a = [1,2]; switch(a.toString()){case ([1,2]).toString():break; case ([1]).toString():break; default:break;} ok 7545 no-duplicate-case invalid var a = 1; switch (a) {case 1: break; case 1: break; case 2: break; default: break;} ok 7546 no-duplicate-case invalid var a = '1'; switch (a) {case '1': break; case '1': break; case '2': break; default: break;} ok 7547 no-duplicate-case invalid var a = 1, one = 1; switch (a) {case one: break; case one: break; case 2: break; default: break;} ok 7548 no-duplicate-case invalid var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p.p.p1: break; case p.p.p1: break; default: break;} ok 7549 no-duplicate-case invalid var a = 1, f = function(b) { return b ? { p1: 1 } : { p1: 2 }; }; switch (a) {case f(true).p1: break; case f(true).p1: break; default: break;} ok 7550 no-duplicate-case invalid var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a + 1).p1: break; case f(a + 1).p1: break; default: break;} ok 7551 no-duplicate-case invalid var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a === 1 ? 2 : 3).p1: break; case f(a === 1 ? 2 : 3).p1: break; default: break;} ok 7552 no-duplicate-case invalid var a = 1, f1 = function() { return { p1: 1 } }; switch (a) {case f1().p1: break; case f1().p1: break; default: break;} ok 7553 no-duplicate-case invalid var a = [1, 2]; switch(a.toString()){case ([1, 2]).toString():break; case ([1, 2]).toString():break; default:break;} ok 7554 no-duplicate-imports valid import os from "os"; import fs from "fs"; ok 7555 no-duplicate-imports valid import { merge } from "lodash-es"; ok 7556 no-duplicate-imports valid import _, { merge } from "lodash-es"; ok 7557 no-duplicate-imports valid import * as Foobar from "async"; ok 7558 no-duplicate-imports valid import "foo" ok 7559 no-duplicate-imports valid import os from "os"; export { something } from "os"; ok 7560 no-duplicate-imports valid import os from "os"; export { hello } from "hello"; ok 7561 no-duplicate-imports valid import os from "os"; export * from "hello"; ok 7562 no-duplicate-imports valid import os from "os"; export { hello as hi } from "hello"; ok 7563 no-duplicate-imports valid import os from "os"; export default function(){}; ok 7564 no-duplicate-imports valid import { merge } from "lodash-es"; export { merge as lodashMerge } ok 7565 no-duplicate-imports invalid import "fs"; import "fs" ok 7566 no-duplicate-imports invalid import { merge } from "lodash-es";import { find } from "lodash-es"; ok 7567 no-duplicate-imports invalid import { merge } from "lodash-es";import _ from "lodash-es"; ok 7568 no-duplicate-imports invalid export { os } from "os"; export { something } from "os"; ok 7569 no-duplicate-imports invalid import os from "os"; export { os as foobar } from "os"; export { something } from "os"; ok 7570 no-duplicate-imports invalid import os from "os"; export { something } from "os"; ok 7571 no-duplicate-imports invalid import os from "os"; export * from "os"; ok 7572 no-else-return valid function foo() { if (true) { if (false) { return x; } } else { return y; } } ok 7573 no-else-return valid function foo() { if (true) { return x; } return y; } ok 7574 no-else-return valid function foo() { if (true) { for (;;) { return x; } } else { return y; } } ok 7575 no-else-return valid function foo() { var x = true; if (x) { return x; } else if (x === false) { return false; } } ok 7576 no-else-return valid function foo() { if (true) notAReturn(); else return y; } ok 7577 no-else-return valid function foo() {if (x) { notAReturn(); } else if (y) { return true; } else { notAReturn(); } } ok 7578 no-else-return valid function foo() {if (x) { return true; } else if (y) { notAReturn() } else { notAReturn(); } } ok 7579 no-else-return valid if (0) { if (0) {} else {} } else {} ok 7580 no-else-return valid function foo() { if (foo) if (bar) return; else baz; else qux; } ok 7581 no-else-return valid function foo() { while (foo) if (bar) return; else baz; } ok 7582 no-else-return valid function foo19() { if (true) { return x; } else if (false) { return y; } } ok 7583 no-else-return valid function foo20() {if (x) { return true; } else if (y) { notAReturn() } else { notAReturn(); } } ok 7584 no-else-return valid function foo21() { var x = true; if (x) { return x; } else if (x === false) { return false; } } ok 7585 no-else-return invalid function foo1() { if (true) { return x; } else { return y; } } ok 7586 no-else-return invalid function foo2() { if (true) { var x = bar; return x; } else { var y = baz; return y; } } ok 7587 no-else-return invalid function foo3() { if (true) return x; else return y; } ok 7588 no-else-return invalid function foo4() { if (true) { if (false) return x; else return y; } else { return z; } } ok 7589 no-else-return invalid function foo5() { if (true) { if (false) { if (true) return x; else { w = y; } } else { w = x; } } else { return z; } } ok 7590 no-else-return invalid function foo6() { if (true) { if (false) { if (true) return x; else return y; } } else { return z; } } ok 7591 no-else-return invalid function foo7() { if (true) { if (false) { if (true) return x; else return y; } return w; } else { return z; } } ok 7592 no-else-return invalid function foo8() { if (true) { if (false) { if (true) return x; else return y; } else { w = x; } } else { return z; } } ok 7593 no-else-return invalid function foo9() {if (x) { return true; } else if (y) { return true; } else { notAReturn(); } } ok 7594 no-else-return invalid function foo9a() {if (x) { return true; } else if (y) { return true; } else { notAReturn(); } } ok 7595 no-else-return invalid function foo9b() {if (x) { return true; } if (y) { return true; } else { notAReturn(); } } ok 7596 no-else-return invalid function foo10() { if (foo) return bar; else (foo).bar(); } ok 7597 no-else-return invalid function foo11() { if (foo) return bar else { [1, 2, 3].map(foo) } } ok 7598 no-else-return invalid function foo12() { if (foo) return bar else { baz() } [1, 2, 3].map(foo) } ok 7599 no-else-return invalid function foo13() { if (foo) return bar; else { [1, 2, 3].map(foo) } } ok 7600 no-else-return invalid function foo14() { if (foo) return bar else { baz(); } [1, 2, 3].map(foo) } ok 7601 no-else-return invalid function foo15() { if (foo) return bar; else { baz() } qaz() } ok 7602 no-else-return invalid function foo16() { if (foo) return bar else { baz() } qaz() } ok 7603 no-else-return invalid function foo17() { if (foo) return bar else { baz() } qaz() } ok 7604 no-else-return invalid function foo18() { if (foo) return function() {} else [1, 2, 3].map(bar) } ok 7605 no-else-return invalid function foo19() { if (true) { return x; } else if (false) { return y; } } ok 7606 no-else-return invalid function foo20() {if (x) { return true; } else if (y) { notAReturn() } else { notAReturn(); } } ok 7607 no-else-return invalid function foo21() { var x = true; if (x) { return x; } else if (x === false) { return false; } } ok 7608 no-empty-character-class valid var foo = /^abc[a-zA-Z]/; ok 7609 no-empty-character-class valid var regExp = new RegExp("^abc[]"); ok 7610 no-empty-character-class valid var foo = /^abc/; ok 7611 no-empty-character-class valid var foo = /[\[]/; ok 7612 no-empty-character-class valid var foo = /[\]]/; ok 7613 no-empty-character-class valid var foo = /[a-zA-Z\[]/; ok 7614 no-empty-character-class valid var foo = /[[]/; ok 7615 no-empty-character-class valid var foo = /[\[a-z[]]/; ok 7616 no-empty-character-class valid var foo = /[\-\[\]\/\{\}\(\)\*\+\?\.\\^\$\|]/g; ok 7617 no-empty-character-class valid var foo = /\s*:\s*/gim; ok 7618 no-empty-character-class valid var foo = /[\]]/uy; ok 7619 no-empty-character-class valid var foo = /[\]]/s; ok 7620 no-empty-character-class valid var foo = /\[]/ ok 7621 no-empty-character-class invalid var foo = /^abc[]/; ok 7622 no-empty-character-class invalid var foo = /foo[]bar/; ok 7623 no-empty-character-class invalid if (foo.match(/^abc[]/)) {} ok 7624 no-empty-character-class invalid if (/^abc[]/.test(foo)) {} ok 7625 no-empty-character-class invalid var foo = /[]]/; ok 7626 no-empty-character-class invalid var foo = /\[[]/; ok 7627 no-empty-character-class invalid var foo = /\[\[\]a-z[]/; ok 7628 no-empty-function valid var foo = () => 0; ok 7629 no-empty-function valid function foo() { bar(); } ok 7630 no-empty-function valid function foo() { /* empty */ } ok 7631 no-empty-function valid function foo() { // empty } ok 7632 no-empty-function valid function foo() {} // allow: functions ok 7633 no-empty-function valid var foo = function() { bar(); }; ok 7634 no-empty-function valid var foo = function() { /* empty */ }; ok 7635 no-empty-function valid var foo = function() { // empty }; ok 7636 no-empty-function valid var foo = function() {}; // allow: functions ok 7637 no-empty-function valid var obj = {foo: function() { bar(); }}; ok 7638 no-empty-function valid var obj = {foo: function() { /* empty */ }}; ok 7639 no-empty-function valid var obj = {foo: function() { // empty }}; ok 7640 no-empty-function valid var obj = {foo: function() {}}; // allow: functions ok 7641 no-empty-function valid var foo = () => { bar(); }; ok 7642 no-empty-function valid var foo = () => { /* empty */ }; ok 7643 no-empty-function valid var foo = () => { // empty }; ok 7644 no-empty-function valid var foo = () => {}; // allow: arrowFunctions ok 7645 no-empty-function valid function* foo() { bar(); } ok 7646 no-empty-function valid function* foo() { /* empty */ } ok 7647 no-empty-function valid function* foo() { // empty } ok 7648 no-empty-function valid function* foo() {} // allow: generatorFunctions ok 7649 no-empty-function valid var foo = function*() { bar(); }; ok 7650 no-empty-function valid var foo = function*() { /* empty */ }; ok 7651 no-empty-function valid var foo = function*() { // empty }; ok 7652 no-empty-function valid var foo = function*() {}; // allow: generatorFunctions ok 7653 no-empty-function valid var obj = {foo: function*() { bar(); }}; ok 7654 no-empty-function valid var obj = {foo: function*() { /* empty */ }}; ok 7655 no-empty-function valid var obj = {foo: function*() { // empty }}; ok 7656 no-empty-function valid var obj = {foo: function*() {}}; // allow: generatorFunctions ok 7657 no-empty-function valid var obj = {foo() { bar(); }}; ok 7658 no-empty-function valid var obj = {foo() { /* empty */ }}; ok 7659 no-empty-function valid var obj = {foo() { // empty }}; ok 7660 no-empty-function valid var obj = {foo() {}}; // allow: methods ok 7661 no-empty-function valid class A {foo() { bar(); }} ok 7662 no-empty-function valid class A {foo() { /* empty */ }} ok 7663 no-empty-function valid class A {foo() { // empty }} ok 7664 no-empty-function valid class A {foo() {}} // allow: methods ok 7665 no-empty-function valid class A {static foo() { bar(); }} ok 7666 no-empty-function valid class A {static foo() { /* empty */ }} ok 7667 no-empty-function valid class A {static foo() { // empty }} ok 7668 no-empty-function valid class A {static foo() {}} // allow: methods ok 7669 no-empty-function valid var A = class {foo() { bar(); }}; ok 7670 no-empty-function valid var A = class {foo() { /* empty */ }}; ok 7671 no-empty-function valid var A = class {foo() { // empty }}; ok 7672 no-empty-function valid var A = class {foo() {}}; // allow: methods ok 7673 no-empty-function valid var A = class {static foo() { bar(); }}; ok 7674 no-empty-function valid var A = class {static foo() { /* empty */ }}; ok 7675 no-empty-function valid var A = class {static foo() { // empty }}; ok 7676 no-empty-function valid var A = class {static foo() {}}; // allow: methods ok 7677 no-empty-function valid var obj = {*foo() { bar(); }}; ok 7678 no-empty-function valid var obj = {*foo() { /* empty */ }}; ok 7679 no-empty-function valid var obj = {*foo() { // empty }}; ok 7680 no-empty-function valid var obj = {*foo() {}}; // allow: generatorMethods ok 7681 no-empty-function valid class A {*foo() { bar(); }} ok 7682 no-empty-function valid class A {*foo() { /* empty */ }} ok 7683 no-empty-function valid class A {*foo() { // empty }} ok 7684 no-empty-function valid class A {*foo() {}} // allow: generatorMethods ok 7685 no-empty-function valid class A {static *foo() { bar(); }} ok 7686 no-empty-function valid class A {static *foo() { /* empty */ }} ok 7687 no-empty-function valid class A {static *foo() { // empty }} ok 7688 no-empty-function valid class A {static *foo() {}} // allow: generatorMethods ok 7689 no-empty-function valid var A = class {*foo() { bar(); }}; ok 7690 no-empty-function valid var A = class {*foo() { /* empty */ }}; ok 7691 no-empty-function valid var A = class {*foo() { // empty }}; ok 7692 no-empty-function valid var A = class {*foo() {}}; // allow: generatorMethods ok 7693 no-empty-function valid var A = class {static *foo() { bar(); }}; ok 7694 no-empty-function valid var A = class {static *foo() { /* empty */ }}; ok 7695 no-empty-function valid var A = class {static *foo() { // empty }}; ok 7696 no-empty-function valid var A = class {static *foo() {}}; // allow: generatorMethods ok 7697 no-empty-function valid var obj = {get foo() { bar(); }}; ok 7698 no-empty-function valid var obj = {get foo() { /* empty */ }}; ok 7699 no-empty-function valid var obj = {get foo() { // empty }}; ok 7700 no-empty-function valid var obj = {get foo() {}}; // allow: getters ok 7701 no-empty-function valid class A {get foo() { bar(); }} ok 7702 no-empty-function valid class A {get foo() { /* empty */ }} ok 7703 no-empty-function valid class A {get foo() { // empty }} ok 7704 no-empty-function valid class A {get foo() {}} // allow: getters ok 7705 no-empty-function valid class A {static get foo() { bar(); }} ok 7706 no-empty-function valid class A {static get foo() { /* empty */ }} ok 7707 no-empty-function valid class A {static get foo() { // empty }} ok 7708 no-empty-function valid class A {static get foo() {}} // allow: getters ok 7709 no-empty-function valid var A = class {get foo() { bar(); }}; ok 7710 no-empty-function valid var A = class {get foo() { /* empty */ }}; ok 7711 no-empty-function valid var A = class {get foo() { // empty }}; ok 7712 no-empty-function valid var A = class {get foo() {}}; // allow: getters ok 7713 no-empty-function valid var A = class {static get foo() { bar(); }}; ok 7714 no-empty-function valid var A = class {static get foo() { /* empty */ }}; ok 7715 no-empty-function valid var A = class {static get foo() { // empty }}; ok 7716 no-empty-function valid var A = class {static get foo() {}}; // allow: getters ok 7717 no-empty-function valid var obj = {set foo(value) { bar(); }}; ok 7718 no-empty-function valid var obj = {set foo(value) { /* empty */ }}; ok 7719 no-empty-function valid var obj = {set foo(value) { // empty }}; ok 7720 no-empty-function valid var obj = {set foo(value) {}}; // allow: setters ok 7721 no-empty-function valid class A {set foo(value) { bar(); }} ok 7722 no-empty-function valid class A {set foo(value) { /* empty */ }} ok 7723 no-empty-function valid class A {set foo(value) { // empty }} ok 7724 no-empty-function valid class A {set foo(value) {}} // allow: setters ok 7725 no-empty-function valid class A {static set foo(value) { bar(); }} ok 7726 no-empty-function valid class A {static set foo(value) { /* empty */ }} ok 7727 no-empty-function valid class A {static set foo(value) { // empty }} ok 7728 no-empty-function valid class A {static set foo(value) {}} // allow: setters ok 7729 no-empty-function valid var A = class {set foo(value) { bar(); }}; ok 7730 no-empty-function valid var A = class {set foo(value) { /* empty */ }}; ok 7731 no-empty-function valid var A = class {set foo(value) { // empty }}; ok 7732 no-empty-function valid var A = class {set foo(value) {}}; // allow: setters ok 7733 no-empty-function valid var A = class {static set foo(value) { bar(); }}; ok 7734 no-empty-function valid var A = class {static set foo(value) { /* empty */ }}; ok 7735 no-empty-function valid var A = class {static set foo(value) { // empty }}; ok 7736 no-empty-function valid var A = class {static set foo(value) {}}; // allow: setters ok 7737 no-empty-function valid class A {constructor() { bar(); }} ok 7738 no-empty-function valid class A {constructor() { /* empty */ }} ok 7739 no-empty-function valid class A {constructor() { // empty }} ok 7740 no-empty-function valid class A {constructor() {}} // allow: constructors ok 7741 no-empty-function valid var A = class {constructor() { bar(); }}; ok 7742 no-empty-function valid var A = class {constructor() { /* empty */ }}; ok 7743 no-empty-function valid var A = class {constructor() { // empty }}; ok 7744 no-empty-function valid var A = class {constructor() {}}; // allow: constructors ok 7745 no-empty-function invalid function foo() {} ok 7746 no-empty-function invalid function foo() {} // allow: arrowFunctions ok 7747 no-empty-function invalid function foo() {} // allow: generatorFunctions ok 7748 no-empty-function invalid function foo() {} // allow: methods ok 7749 no-empty-function invalid function foo() {} // allow: generatorMethods ok 7750 no-empty-function invalid function foo() {} // allow: getters ok 7751 no-empty-function invalid function foo() {} // allow: setters ok 7752 no-empty-function invalid function foo() {} // allow: constructors ok 7753 no-empty-function invalid var foo = function() {}; ok 7754 no-empty-function invalid var foo = function() {}; // allow: arrowFunctions ok 7755 no-empty-function invalid var foo = function() {}; // allow: generatorFunctions ok 7756 no-empty-function invalid var foo = function() {}; // allow: methods ok 7757 no-empty-function invalid var foo = function() {}; // allow: generatorMethods ok 7758 no-empty-function invalid var foo = function() {}; // allow: getters ok 7759 no-empty-function invalid var foo = function() {}; // allow: setters ok 7760 no-empty-function invalid var foo = function() {}; // allow: constructors ok 7761 no-empty-function invalid var obj = {foo: function() {}}; ok 7762 no-empty-function invalid var obj = {foo: function() {}}; // allow: arrowFunctions ok 7763 no-empty-function invalid var obj = {foo: function() {}}; // allow: generatorFunctions ok 7764 no-empty-function invalid var obj = {foo: function() {}}; // allow: methods ok 7765 no-empty-function invalid var obj = {foo: function() {}}; // allow: generatorMethods ok 7766 no-empty-function invalid var obj = {foo: function() {}}; // allow: getters ok 7767 no-empty-function invalid var obj = {foo: function() {}}; // allow: setters ok 7768 no-empty-function invalid var obj = {foo: function() {}}; // allow: constructors ok 7769 no-empty-function invalid var foo = () => {}; ok 7770 no-empty-function invalid var foo = () => {}; // allow: functions ok 7771 no-empty-function invalid var foo = () => {}; // allow: generatorFunctions ok 7772 no-empty-function invalid var foo = () => {}; // allow: methods ok 7773 no-empty-function invalid var foo = () => {}; // allow: generatorMethods ok 7774 no-empty-function invalid var foo = () => {}; // allow: getters ok 7775 no-empty-function invalid var foo = () => {}; // allow: setters ok 7776 no-empty-function invalid var foo = () => {}; // allow: constructors ok 7777 no-empty-function invalid function* foo() {} ok 7778 no-empty-function invalid function* foo() {} // allow: functions ok 7779 no-empty-function invalid function* foo() {} // allow: arrowFunctions ok 7780 no-empty-function invalid function* foo() {} // allow: methods ok 7781 no-empty-function invalid function* foo() {} // allow: generatorMethods ok 7782 no-empty-function invalid function* foo() {} // allow: getters ok 7783 no-empty-function invalid function* foo() {} // allow: setters ok 7784 no-empty-function invalid function* foo() {} // allow: constructors ok 7785 no-empty-function invalid var foo = function*() {}; ok 7786 no-empty-function invalid var foo = function*() {}; // allow: functions ok 7787 no-empty-function invalid var foo = function*() {}; // allow: arrowFunctions ok 7788 no-empty-function invalid var foo = function*() {}; // allow: methods ok 7789 no-empty-function invalid var foo = function*() {}; // allow: generatorMethods ok 7790 no-empty-function invalid var foo = function*() {}; // allow: getters ok 7791 no-empty-function invalid var foo = function*() {}; // allow: setters ok 7792 no-empty-function invalid var foo = function*() {}; // allow: constructors ok 7793 no-empty-function invalid var obj = {foo: function*() {}}; ok 7794 no-empty-function invalid var obj = {foo: function*() {}}; // allow: functions ok 7795 no-empty-function invalid var obj = {foo: function*() {}}; // allow: arrowFunctions ok 7796 no-empty-function invalid var obj = {foo: function*() {}}; // allow: methods ok 7797 no-empty-function invalid var obj = {foo: function*() {}}; // allow: generatorMethods ok 7798 no-empty-function invalid var obj = {foo: function*() {}}; // allow: getters ok 7799 no-empty-function invalid var obj = {foo: function*() {}}; // allow: setters ok 7800 no-empty-function invalid var obj = {foo: function*() {}}; // allow: constructors ok 7801 no-empty-function invalid var obj = {foo() {}}; ok 7802 no-empty-function invalid var obj = {foo() {}}; // allow: functions ok 7803 no-empty-function invalid var obj = {foo() {}}; // allow: arrowFunctions ok 7804 no-empty-function invalid var obj = {foo() {}}; // allow: generatorFunctions ok 7805 no-empty-function invalid var obj = {foo() {}}; // allow: generatorMethods ok 7806 no-empty-function invalid var obj = {foo() {}}; // allow: getters ok 7807 no-empty-function invalid var obj = {foo() {}}; // allow: setters ok 7808 no-empty-function invalid var obj = {foo() {}}; // allow: constructors ok 7809 no-empty-function invalid class A {foo() {}} ok 7810 no-empty-function invalid class A {foo() {}} // allow: functions ok 7811 no-empty-function invalid class A {foo() {}} // allow: arrowFunctions ok 7812 no-empty-function invalid class A {foo() {}} // allow: generatorFunctions ok 7813 no-empty-function invalid class A {foo() {}} // allow: generatorMethods ok 7814 no-empty-function invalid class A {foo() {}} // allow: getters ok 7815 no-empty-function invalid class A {foo() {}} // allow: setters ok 7816 no-empty-function invalid class A {foo() {}} // allow: constructors ok 7817 no-empty-function invalid class A {static foo() {}} ok 7818 no-empty-function invalid class A {static foo() {}} // allow: functions ok 7819 no-empty-function invalid class A {static foo() {}} // allow: arrowFunctions ok 7820 no-empty-function invalid class A {static foo() {}} // allow: generatorFunctions ok 7821 no-empty-function invalid class A {static foo() {}} // allow: generatorMethods ok 7822 no-empty-function invalid class A {static foo() {}} // allow: getters ok 7823 no-empty-function invalid class A {static foo() {}} // allow: setters ok 7824 no-empty-function invalid class A {static foo() {}} // allow: constructors ok 7825 no-empty-function invalid var A = class {foo() {}}; ok 7826 no-empty-function invalid var A = class {foo() {}}; // allow: functions ok 7827 no-empty-function invalid var A = class {foo() {}}; // allow: arrowFunctions ok 7828 no-empty-function invalid var A = class {foo() {}}; // allow: generatorFunctions ok 7829 no-empty-function invalid var A = class {foo() {}}; // allow: generatorMethods ok 7830 no-empty-function invalid var A = class {foo() {}}; // allow: getters ok 7831 no-empty-function invalid var A = class {foo() {}}; // allow: setters ok 7832 no-empty-function invalid var A = class {foo() {}}; // allow: constructors ok 7833 no-empty-function invalid var A = class {static foo() {}}; ok 7834 no-empty-function invalid var A = class {static foo() {}}; // allow: functions ok 7835 no-empty-function invalid var A = class {static foo() {}}; // allow: arrowFunctions ok 7836 no-empty-function invalid var A = class {static foo() {}}; // allow: generatorFunctions ok 7837 no-empty-function invalid var A = class {static foo() {}}; // allow: generatorMethods ok 7838 no-empty-function invalid var A = class {static foo() {}}; // allow: getters ok 7839 no-empty-function invalid var A = class {static foo() {}}; // allow: setters ok 7840 no-empty-function invalid var A = class {static foo() {}}; // allow: constructors ok 7841 no-empty-function invalid var obj = {*foo() {}}; ok 7842 no-empty-function invalid var obj = {*foo() {}}; // allow: functions ok 7843 no-empty-function invalid var obj = {*foo() {}}; // allow: arrowFunctions ok 7844 no-empty-function invalid var obj = {*foo() {}}; // allow: generatorFunctions ok 7845 no-empty-function invalid var obj = {*foo() {}}; // allow: methods ok 7846 no-empty-function invalid var obj = {*foo() {}}; // allow: getters ok 7847 no-empty-function invalid var obj = {*foo() {}}; // allow: setters ok 7848 no-empty-function invalid var obj = {*foo() {}}; // allow: constructors ok 7849 no-empty-function invalid class A {*foo() {}} ok 7850 no-empty-function invalid class A {*foo() {}} // allow: functions ok 7851 no-empty-function invalid class A {*foo() {}} // allow: arrowFunctions ok 7852 no-empty-function invalid class A {*foo() {}} // allow: generatorFunctions ok 7853 no-empty-function invalid class A {*foo() {}} // allow: methods ok 7854 no-empty-function invalid class A {*foo() {}} // allow: getters ok 7855 no-empty-function invalid class A {*foo() {}} // allow: setters ok 7856 no-empty-function invalid class A {*foo() {}} // allow: constructors ok 7857 no-empty-function invalid class A {static *foo() {}} ok 7858 no-empty-function invalid class A {static *foo() {}} // allow: functions ok 7859 no-empty-function invalid class A {static *foo() {}} // allow: arrowFunctions ok 7860 no-empty-function invalid class A {static *foo() {}} // allow: generatorFunctions ok 7861 no-empty-function invalid class A {static *foo() {}} // allow: methods ok 7862 no-empty-function invalid class A {static *foo() {}} // allow: getters ok 7863 no-empty-function invalid class A {static *foo() {}} // allow: setters ok 7864 no-empty-function invalid class A {static *foo() {}} // allow: constructors ok 7865 no-empty-function invalid var A = class {*foo() {}}; ok 7866 no-empty-function invalid var A = class {*foo() {}}; // allow: functions ok 7867 no-empty-function invalid var A = class {*foo() {}}; // allow: arrowFunctions ok 7868 no-empty-function invalid var A = class {*foo() {}}; // allow: generatorFunctions ok 7869 no-empty-function invalid var A = class {*foo() {}}; // allow: methods ok 7870 no-empty-function invalid var A = class {*foo() {}}; // allow: getters ok 7871 no-empty-function invalid var A = class {*foo() {}}; // allow: setters ok 7872 no-empty-function invalid var A = class {*foo() {}}; // allow: constructors ok 7873 no-empty-function invalid var A = class {static *foo() {}}; ok 7874 no-empty-function invalid var A = class {static *foo() {}}; // allow: functions ok 7875 no-empty-function invalid var A = class {static *foo() {}}; // allow: arrowFunctions ok 7876 no-empty-function invalid var A = class {static *foo() {}}; // allow: generatorFunctions ok 7877 no-empty-function invalid var A = class {static *foo() {}}; // allow: methods ok 7878 no-empty-function invalid var A = class {static *foo() {}}; // allow: getters ok 7879 no-empty-function invalid var A = class {static *foo() {}}; // allow: setters ok 7880 no-empty-function invalid var A = class {static *foo() {}}; // allow: constructors ok 7881 no-empty-function invalid var obj = {get foo() {}}; ok 7882 no-empty-function invalid var obj = {get foo() {}}; // allow: functions ok 7883 no-empty-function invalid var obj = {get foo() {}}; // allow: arrowFunctions ok 7884 no-empty-function invalid var obj = {get foo() {}}; // allow: generatorFunctions ok 7885 no-empty-function invalid var obj = {get foo() {}}; // allow: methods ok 7886 no-empty-function invalid var obj = {get foo() {}}; // allow: generatorMethods ok 7887 no-empty-function invalid var obj = {get foo() {}}; // allow: setters ok 7888 no-empty-function invalid var obj = {get foo() {}}; // allow: constructors ok 7889 no-empty-function invalid class A {get foo() {}} ok 7890 no-empty-function invalid class A {get foo() {}} // allow: functions ok 7891 no-empty-function invalid class A {get foo() {}} // allow: arrowFunctions ok 7892 no-empty-function invalid class A {get foo() {}} // allow: generatorFunctions ok 7893 no-empty-function invalid class A {get foo() {}} // allow: methods ok 7894 no-empty-function invalid class A {get foo() {}} // allow: generatorMethods ok 7895 no-empty-function invalid class A {get foo() {}} // allow: setters ok 7896 no-empty-function invalid class A {get foo() {}} // allow: constructors ok 7897 no-empty-function invalid class A {static get foo() {}} ok 7898 no-empty-function invalid class A {static get foo() {}} // allow: functions ok 7899 no-empty-function invalid class A {static get foo() {}} // allow: arrowFunctions ok 7900 no-empty-function invalid class A {static get foo() {}} // allow: generatorFunctions ok 7901 no-empty-function invalid class A {static get foo() {}} // allow: methods ok 7902 no-empty-function invalid class A {static get foo() {}} // allow: generatorMethods ok 7903 no-empty-function invalid class A {static get foo() {}} // allow: setters ok 7904 no-empty-function invalid class A {static get foo() {}} // allow: constructors ok 7905 no-empty-function invalid var A = class {get foo() {}}; ok 7906 no-empty-function invalid var A = class {get foo() {}}; // allow: functions ok 7907 no-empty-function invalid var A = class {get foo() {}}; // allow: arrowFunctions ok 7908 no-empty-function invalid var A = class {get foo() {}}; // allow: generatorFunctions ok 7909 no-empty-function invalid var A = class {get foo() {}}; // allow: methods ok 7910 no-empty-function invalid var A = class {get foo() {}}; // allow: generatorMethods ok 7911 no-empty-function invalid var A = class {get foo() {}}; // allow: setters ok 7912 no-empty-function invalid var A = class {get foo() {}}; // allow: constructors ok 7913 no-empty-function invalid var A = class {static get foo() {}}; ok 7914 no-empty-function invalid var A = class {static get foo() {}}; // allow: functions ok 7915 no-empty-function invalid var A = class {static get foo() {}}; // allow: arrowFunctions ok 7916 no-empty-function invalid var A = class {static get foo() {}}; // allow: generatorFunctions ok 7917 no-empty-function invalid var A = class {static get foo() {}}; // allow: methods ok 7918 no-empty-function invalid var A = class {static get foo() {}}; // allow: generatorMethods ok 7919 no-empty-function invalid var A = class {static get foo() {}}; // allow: setters ok 7920 no-empty-function invalid var A = class {static get foo() {}}; // allow: constructors ok 7921 no-empty-function invalid var obj = {set foo(value) {}}; ok 7922 no-empty-function invalid var obj = {set foo(value) {}}; // allow: functions ok 7923 no-empty-function invalid var obj = {set foo(value) {}}; // allow: arrowFunctions ok 7924 no-empty-function invalid var obj = {set foo(value) {}}; // allow: generatorFunctions ok 7925 no-empty-function invalid var obj = {set foo(value) {}}; // allow: methods ok 7926 no-empty-function invalid var obj = {set foo(value) {}}; // allow: generatorMethods ok 7927 no-empty-function invalid var obj = {set foo(value) {}}; // allow: getters ok 7928 no-empty-function invalid var obj = {set foo(value) {}}; // allow: constructors ok 7929 no-empty-function invalid class A {set foo(value) {}} ok 7930 no-empty-function invalid class A {set foo(value) {}} // allow: functions ok 7931 no-empty-function invalid class A {set foo(value) {}} // allow: arrowFunctions ok 7932 no-empty-function invalid class A {set foo(value) {}} // allow: generatorFunctions ok 7933 no-empty-function invalid class A {set foo(value) {}} // allow: methods ok 7934 no-empty-function invalid class A {set foo(value) {}} // allow: generatorMethods ok 7935 no-empty-function invalid class A {set foo(value) {}} // allow: getters ok 7936 no-empty-function invalid class A {set foo(value) {}} // allow: constructors ok 7937 no-empty-function invalid class A {static set foo(value) {}} ok 7938 no-empty-function invalid class A {static set foo(value) {}} // allow: functions ok 7939 no-empty-function invalid class A {static set foo(value) {}} // allow: arrowFunctions ok 7940 no-empty-function invalid class A {static set foo(value) {}} // allow: generatorFunctions ok 7941 no-empty-function invalid class A {static set foo(value) {}} // allow: methods ok 7942 no-empty-function invalid class A {static set foo(value) {}} // allow: generatorMethods ok 7943 no-empty-function invalid class A {static set foo(value) {}} // allow: getters ok 7944 no-empty-function invalid class A {static set foo(value) {}} // allow: constructors ok 7945 no-empty-function invalid var A = class {set foo(value) {}}; ok 7946 no-empty-function invalid var A = class {set foo(value) {}}; // allow: functions ok 7947 no-empty-function invalid var A = class {set foo(value) {}}; // allow: arrowFunctions ok 7948 no-empty-function invalid var A = class {set foo(value) {}}; // allow: generatorFunctions ok 7949 no-empty-function invalid var A = class {set foo(value) {}}; // allow: methods ok 7950 no-empty-function invalid var A = class {set foo(value) {}}; // allow: generatorMethods ok 7951 no-empty-function invalid var A = class {set foo(value) {}}; // allow: getters ok 7952 no-empty-function invalid var A = class {set foo(value) {}}; // allow: constructors ok 7953 no-empty-function invalid var A = class {static set foo(value) {}}; ok 7954 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: functions ok 7955 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: arrowFunctions ok 7956 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: generatorFunctions ok 7957 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: methods ok 7958 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: generatorMethods ok 7959 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: getters ok 7960 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: constructors ok 7961 no-empty-function invalid class A {constructor() {}} ok 7962 no-empty-function invalid class A {constructor() {}} // allow: functions ok 7963 no-empty-function invalid class A {constructor() {}} // allow: arrowFunctions ok 7964 no-empty-function invalid class A {constructor() {}} // allow: generatorFunctions ok 7965 no-empty-function invalid class A {constructor() {}} // allow: methods ok 7966 no-empty-function invalid class A {constructor() {}} // allow: generatorMethods ok 7967 no-empty-function invalid class A {constructor() {}} // allow: getters ok 7968 no-empty-function invalid class A {constructor() {}} // allow: setters ok 7969 no-empty-function invalid var A = class {constructor() {}}; ok 7970 no-empty-function invalid var A = class {constructor() {}}; // allow: functions ok 7971 no-empty-function invalid var A = class {constructor() {}}; // allow: arrowFunctions ok 7972 no-empty-function invalid var A = class {constructor() {}}; // allow: generatorFunctions ok 7973 no-empty-function invalid var A = class {constructor() {}}; // allow: methods ok 7974 no-empty-function invalid var A = class {constructor() {}}; // allow: generatorMethods ok 7975 no-empty-function invalid var A = class {constructor() {}}; // allow: getters ok 7976 no-empty-function invalid var A = class {constructor() {}}; // allow: setters ok 7977 no-empty-pattern valid var {a = {}} = foo; ok 7978 no-empty-pattern valid var {a, b = {}} = foo; ok 7979 no-empty-pattern valid var {a = []} = foo; ok 7980 no-empty-pattern valid function foo({a = {}}) {} ok 7981 no-empty-pattern valid function foo({a = []}) {} ok 7982 no-empty-pattern valid var [a] = foo ok 7983 no-empty-pattern invalid var {} = foo ok 7984 no-empty-pattern invalid var [] = foo ok 7985 no-empty-pattern invalid var {a: {}} = foo ok 7986 no-empty-pattern invalid var {a, b: {}} = foo ok 7987 no-empty-pattern invalid var {a: []} = foo ok 7988 no-empty-pattern invalid function foo({}) {} ok 7989 no-empty-pattern invalid function foo([]) {} ok 7990 no-empty-pattern invalid function foo({a: {}}) {} ok 7991 no-empty-pattern invalid function foo({a: []}) {} ok 7992 no-empty valid if (foo) { bar() } ok 7993 no-empty valid while (foo) { bar() } ok 7994 no-empty valid for (;foo;) { bar() } ok 7995 no-empty valid try { foo() } catch (ex) { foo() } ok 7996 no-empty valid switch(foo) {case 'foo': break;} ok 7997 no-empty valid (function() { }()) ok 7998 no-empty valid var foo = () => {}; ok 7999 no-empty valid function foo() { } ok 8000 no-empty valid if (foo) {/* empty */} ok 8001 no-empty valid while (foo) {/* empty */} ok 8002 no-empty valid for (;foo;) {/* empty */} ok 8003 no-empty valid try { foo() } catch (ex) {/* empty */} ok 8004 no-empty valid try { foo() } catch (ex) {// empty } ok 8005 no-empty valid try { foo() } finally {// empty } ok 8006 no-empty valid try { foo() } finally {// test } ok 8007 no-empty valid try { foo() } finally { // hi i am off no use } ok 8008 no-empty valid try { foo() } catch (ex) {/* test111 */} ok 8009 no-empty valid if (foo) { bar() } else { // nothing in me } ok 8010 no-empty valid if (foo) { bar() } else { /**/ } ok 8011 no-empty valid if (foo) { bar() } else { // } ok 8012 no-empty valid try { foo(); } catch (ex) {} ok 8013 no-empty valid try { foo(); } catch (ex) {} finally { bar(); } ok 8014 no-empty invalid try {} catch (ex) {throw ex} ok 8015 no-empty invalid try { foo() } catch (ex) {} ok 8016 no-empty invalid try { foo() } catch (ex) {throw ex} finally {} ok 8017 no-empty invalid if (foo) {} ok 8018 no-empty invalid while (foo) {} ok 8019 no-empty invalid for (;foo;) {} ok 8020 no-empty invalid switch(foo) {} ok 8021 no-empty invalid try {} catch (ex) {} ok 8022 no-empty invalid try { foo(); } catch (ex) {} finally {} ok 8023 no-empty invalid try {} catch (ex) {} finally {} ok 8024 no-empty invalid try { foo(); } catch (ex) {} finally {} ok 8025 no-eq-null valid if (x === null) { } ok 8026 no-eq-null valid if (null === f()) { } ok 8027 no-eq-null invalid if (x == null) { } ok 8028 no-eq-null invalid if (x != null) { } ok 8029 no-eq-null invalid do {} while (null == x) ok 8030 no-eval valid Eval(foo) ok 8031 no-eval valid setTimeout('foo') ok 8032 no-eval valid setInterval('foo') ok 8033 no-eval valid window.setTimeout('foo') ok 8034 no-eval valid window.setInterval('foo') ok 8035 no-eval valid window.eval('foo') ok 8036 no-eval valid window.eval('foo') ok 8037 no-eval valid window.noeval('foo') ok 8038 no-eval valid function foo() { var eval = 'foo'; window[eval]('foo') } ok 8039 no-eval valid global.eval('foo') ok 8040 no-eval valid global.eval('foo') ok 8041 no-eval valid global.noeval('foo') ok 8042 no-eval valid function foo() { var eval = 'foo'; global[eval]('foo') } ok 8043 no-eval valid this.noeval('foo'); ok 8044 no-eval valid function foo() { 'use strict'; this.eval('foo'); } ok 8045 no-eval valid function foo() { this.eval('foo'); } ok 8046 no-eval valid function foo() { this.eval('foo'); } ok 8047 no-eval valid var obj = {foo: function() { this.eval('foo'); }} ok 8048 no-eval valid var obj = {}; obj.foo = function() { this.eval('foo'); } ok 8049 no-eval valid class A { foo() { this.eval(); } } ok 8050 no-eval valid class A { static foo() { this.eval(); } } ok 8051 no-eval valid (0, eval)('foo') ok 8052 no-eval valid (0, window.eval)('foo') ok 8053 no-eval valid (0, window['eval'])('foo') ok 8054 no-eval valid var EVAL = eval; EVAL('foo') ok 8055 no-eval valid var EVAL = this.eval; EVAL('foo') ok 8056 no-eval valid (function(exe){ exe('foo') })(eval); ok 8057 no-eval valid window.eval('foo') ok 8058 no-eval valid window.window.eval('foo') ok 8059 no-eval valid window.window['eval']('foo') ok 8060 no-eval valid global.eval('foo') ok 8061 no-eval valid global.global.eval('foo') ok 8062 no-eval valid this.eval('foo') ok 8063 no-eval valid function foo() { this.eval('foo') } ok 8064 no-eval invalid eval(foo) ok 8065 no-eval invalid eval('foo') ok 8066 no-eval invalid function foo(eval) { eval('foo') } ok 8067 no-eval invalid eval(foo) ok 8068 no-eval invalid eval('foo') ok 8069 no-eval invalid function foo(eval) { eval('foo') } ok 8070 no-eval invalid (0, eval)('foo') ok 8071 no-eval invalid (0, window.eval)('foo') ok 8072 no-eval invalid (0, window['eval'])('foo') ok 8073 no-eval invalid var EVAL = eval; EVAL('foo') ok 8074 no-eval invalid var EVAL = this.eval; EVAL('foo') ok 8075 no-eval invalid (function(exe){ exe('foo') })(eval); ok 8076 no-eval invalid window.eval('foo') ok 8077 no-eval invalid window.window.eval('foo') ok 8078 no-eval invalid window.window['eval']('foo') ok 8079 no-eval invalid global.eval('foo') ok 8080 no-eval invalid global.global.eval('foo') ok 8081 no-eval invalid global.global[`eval`]('foo') ok 8082 no-eval invalid this.eval('foo') ok 8083 no-eval invalid function foo() { this.eval('foo') } ok 8084 no-ex-assign valid try { } catch (e) { three = 2 + 1; } ok 8085 no-ex-assign valid try { } catch ({e}) { this.something = 2; } ok 8086 no-ex-assign valid function foo() { try { } catch (e) { return false; } } ok 8087 no-ex-assign invalid try { } catch (e) { e = 10; } ok 8088 no-ex-assign invalid try { } catch (ex) { ex = 10; } ok 8089 no-ex-assign invalid try { } catch (ex) { [ex] = []; } ok 8090 no-ex-assign invalid try { } catch (ex) { ({x: ex = 0} = {}); } ok 8091 no-ex-assign invalid try { } catch ({message}) { message = 10; } ok 8092 no-extend-native valid x.prototype.p = 0 ok 8093 no-extend-native valid x.prototype['p'] = 0 ok 8094 no-extend-native valid Object.p = 0 ok 8095 no-extend-native valid Object.toString.bind = 0 ok 8096 no-extend-native valid Object['toString'].bind = 0 ok 8097 no-extend-native valid Object.defineProperty(x, 'p', {value: 0}) ok 8098 no-extend-native valid Object.defineProperties(x, {p: {value: 0}}) ok 8099 no-extend-native valid global.Object.prototype.toString = 0 ok 8100 no-extend-native valid this.Object.prototype.toString = 0 ok 8101 no-extend-native valid with(Object) { prototype.p = 0; } ok 8102 no-extend-native valid o = Object; o.prototype.toString = 0 ok 8103 no-extend-native valid eval('Object.prototype.toString = 0') ok 8104 no-extend-native valid parseFloat.prototype.x = 1 ok 8105 no-extend-native valid Object.prototype.g = 0 ok 8106 no-extend-native valid Object.defineProperty() ok 8107 no-extend-native valid Object.defineProperties() ok 8108 no-extend-native valid function foo() { var Object = function() {}; Object.prototype.p = 0 } ok 8109 no-extend-native valid { let Object = function() {}; Object.prototype.p = 0 } ok 8110 no-extend-native invalid Object.prototype.p = 0 ok 8111 no-extend-native invalid Function.prototype['p'] = 0 ok 8112 no-extend-native invalid String['prototype'].p = 0 ok 8113 no-extend-native invalid Number['prototype']['p'] = 0 ok 8114 no-extend-native invalid Object.defineProperty(Array.prototype, 'p', {value: 0}) ok 8115 no-extend-native invalid Object.defineProperties(Array.prototype, {p: {value: 0}}) ok 8116 no-extend-native invalid Object.defineProperties(Array.prototype, {p: {value: 0}, q: {value: 0}}) ok 8117 no-extend-native invalid Number['prototype']['p'] = 0 ok 8118 no-extend-native invalid Object.prototype.p = 0; Object.prototype.q = 0 ok 8119 no-extend-native invalid function foo() { Object.prototype.p = 0 } ok 8120 no-extra-bind valid var a = function(b) { return b }.bind(c, d) ok 8121 no-extra-bind valid var a = function() { this.b }() ok 8122 no-extra-bind valid var a = function() { this.b }.foo() ok 8123 no-extra-bind valid var a = f.bind(a) ok 8124 no-extra-bind valid var a = function() { return this.b }.bind(c) ok 8125 no-extra-bind valid var a = (() => { return b }).bind(c, d) ok 8126 no-extra-bind valid (function() { (function() { this.b }.bind(this)) }.bind(c)) ok 8127 no-extra-bind valid var a = function() { return 1; }[bind](b) ok 8128 no-extra-bind valid var a = function() { return 1; }[`bi${n}d`](b) ok 8129 no-extra-bind valid var a = function() { return () => this; }.bind(b) ok 8130 no-extra-bind invalid var a = function() { return 1; }.bind(b) ok 8131 no-extra-bind invalid var a = function() { return 1; }['bind'](b) ok 8132 no-extra-bind invalid var a = function() { return 1; }[`bind`](b) ok 8133 no-extra-bind invalid var a = (() => { return 1; }).bind(b) ok 8134 no-extra-bind invalid var a = (() => { return this; }).bind(b) ok 8135 no-extra-bind invalid var a = function() { (function(){ this.c }) }.bind(b) ok 8136 no-extra-bind invalid var a = function() { function c(){ this.d } }.bind(b) ok 8137 no-extra-bind invalid var a = function() { return 1; }.bind(this) ok 8138 no-extra-bind invalid var a = function() { (function(){ (function(){ this.d }.bind(c)) }) }.bind(b) ok 8139 no-extra-bind invalid var a = function() {}.bind(b++) ok 8140 no-extra-bind invalid var a = function() {}.bind(b()) ok 8141 no-extra-bind invalid var a = function() {}.bind(b.c) ok 8142 no-extra-boolean-cast valid var foo = !!bar; ok 8143 no-extra-boolean-cast valid function foo() { return !!bar; } ok 8144 no-extra-boolean-cast valid var foo = bar() ? !!baz : !!bat ok 8145 no-extra-boolean-cast valid for(!!foo;;) {} ok 8146 no-extra-boolean-cast valid for(;; !!foo) {} ok 8147 no-extra-boolean-cast valid var foo = Boolean(bar); ok 8148 no-extra-boolean-cast valid function foo() { return Boolean(bar); } ok 8149 no-extra-boolean-cast valid var foo = bar() ? Boolean(baz) : Boolean(bat) ok 8150 no-extra-boolean-cast valid for(Boolean(foo);;) {} ok 8151 no-extra-boolean-cast valid for(;; Boolean(foo)) {} ok 8152 no-extra-boolean-cast valid if (new Boolean(foo)) {} ok 8153 no-extra-boolean-cast invalid if (!!foo) {} ok 8154 no-extra-boolean-cast invalid do {} while (!!foo) ok 8155 no-extra-boolean-cast invalid while (!!foo) {} ok 8156 no-extra-boolean-cast invalid !!foo ? bar : baz ok 8157 no-extra-boolean-cast invalid for (; !!foo;) {} ok 8158 no-extra-boolean-cast invalid !!!foo ok 8159 no-extra-boolean-cast invalid Boolean(!!foo) ok 8160 no-extra-boolean-cast invalid new Boolean(!!foo) ok 8161 no-extra-boolean-cast invalid if (Boolean(foo)) {} ok 8162 no-extra-boolean-cast invalid do {} while (Boolean(foo)) ok 8163 no-extra-boolean-cast invalid while (Boolean(foo)) {} ok 8164 no-extra-boolean-cast invalid Boolean(foo) ? bar : baz ok 8165 no-extra-boolean-cast invalid for (; Boolean(foo);) {} ok 8166 no-extra-boolean-cast invalid !Boolean(foo) ok 8167 no-extra-boolean-cast invalid !Boolean(foo && bar) ok 8168 no-extra-boolean-cast invalid !Boolean(foo + bar) ok 8169 no-extra-boolean-cast invalid !Boolean(+foo) ok 8170 no-extra-boolean-cast invalid !Boolean(foo()) ok 8171 no-extra-boolean-cast invalid !Boolean(foo = bar) ok 8172 no-extra-boolean-cast invalid !Boolean(...foo); ok 8173 no-extra-boolean-cast invalid !Boolean(foo, bar()); ok 8174 no-extra-boolean-cast invalid !Boolean((foo, bar())); ok 8175 no-extra-boolean-cast invalid !Boolean(); ok 8176 no-extra-boolean-cast invalid !(Boolean()); ok 8177 no-extra-label valid A: break A; ok 8178 no-extra-label valid A: { if (a) break A; } ok 8179 no-extra-label valid A: { while (b) { break A; } } ok 8180 no-extra-label valid A: { switch (b) { case 0: break A; } } ok 8181 no-extra-label valid A: while (a) { while (b) { break; } break; } ok 8182 no-extra-label valid A: while (a) { while (b) { break A; } } ok 8183 no-extra-label valid A: while (a) { while (b) { continue A; } } ok 8184 no-extra-label valid A: while (a) { switch (b) { case 0: break A; } } ok 8185 no-extra-label valid A: while (a) { switch (b) { case 0: continue A; } } ok 8186 no-extra-label valid A: switch (a) { case 0: while (b) { break A; } } ok 8187 no-extra-label valid A: switch (a) { case 0: switch (b) { case 0: break A; } } ok 8188 no-extra-label valid A: for (;;) { while (b) { break A; } } ok 8189 no-extra-label valid A: do { switch (b) { case 0: break A; break; } } while (a); ok 8190 no-extra-label valid A: for (a in obj) { while (b) { break A; } } ok 8191 no-extra-label valid A: for (a of ary) { switch (b) { case 0: break A; } } ok 8192 no-extra-label invalid A: while (a) break A; ok 8193 no-extra-label invalid A: while (a) { B: { continue A; } } ok 8194 no-extra-label invalid X: while (x) { A: while (a) { B: { break A; break B; continue X; } } } ok 8195 no-extra-label invalid A: do { break A; } while (a); ok 8196 no-extra-label invalid A: for (;;) { break A; } ok 8197 no-extra-label invalid A: for (a in obj) { break A; } ok 8198 no-extra-label invalid A: for (a of ary) { break A; } ok 8199 no-extra-label invalid A: switch (a) { case 0: break A; } ok 8200 no-extra-label invalid X: while (x) { A: switch (a) { case 0: break A; } } ok 8201 no-extra-label invalid X: switch (a) { case 0: A: while (b) break A; } ok 8202 no-extra-label invalid A: while (true) { break A; while (true) { break A; } } ok 8203 no-extra-parens valid foo ok 8204 no-extra-parens valid a = b, c = d ok 8205 no-extra-parens valid a = b ? c : d ok 8206 no-extra-parens valid a = (b, c) ok 8207 no-extra-parens valid a || b ? c = d : e = f ok 8208 no-extra-parens valid (a = b) ? (c, d) : (e, f) ok 8209 no-extra-parens valid a && b || c && d ok 8210 no-extra-parens valid (a ? b : c) || (d ? e : f) ok 8211 no-extra-parens valid a | b && c | d ok 8212 no-extra-parens valid (a || b) && (c || d) ok 8213 no-extra-parens valid a ^ b | c ^ d ok 8214 no-extra-parens valid (a && b) | (c && d) ok 8215 no-extra-parens valid a & b ^ c & d ok 8216 no-extra-parens valid (a | b) ^ (c | d) ok 8217 no-extra-parens valid a == b & c != d ok 8218 no-extra-parens valid (a ^ b) & (c ^ d) ok 8219 no-extra-parens valid a < b === c in d ok 8220 no-extra-parens valid (a & b) !== (c & d) ok 8221 no-extra-parens valid a << b >= c >>> d ok 8222 no-extra-parens valid (a == b) instanceof (c != d) ok 8223 no-extra-parens valid a + b << c - d ok 8224 no-extra-parens valid (a <= b) >> (c > d) ok 8225 no-extra-parens valid a * b + c / d ok 8226 no-extra-parens valid (a << b) - (c >> d) ok 8227 no-extra-parens valid +a % !b ok 8228 no-extra-parens valid (a + b) * (c - d) ok 8229 no-extra-parens valid -void+delete~typeof!a ok 8230 no-extra-parens valid !(a * b); typeof (a / b); +(a % b); delete (a * b); ~(a / b); void (a % b); -(a * b) ok 8231 no-extra-parens valid a(b = c, (d, e)) ok 8232 no-extra-parens valid (++a)(b); (c++)(d); ok 8233 no-extra-parens valid new (A()) ok 8234 no-extra-parens valid new (foo.Baz().foo) ok 8235 no-extra-parens valid new (foo.baz.bar().foo.baz) ok 8236 no-extra-parens valid new ({}.baz.bar.foo().baz) ok 8237 no-extra-parens valid new (doSomething().baz.bar().foo) ok 8238 no-extra-parens valid new ([][0].baz.foo().bar.foo) ok 8239 no-extra-parens valid new (foo .baz .bar() .foo.baz) ok 8240 no-extra-parens valid new A()() ok 8241 no-extra-parens valid (new A)() ok 8242 no-extra-parens valid (new (Foo || Bar))() ok 8243 no-extra-parens valid (2 + 3) ** 4 ok 8244 no-extra-parens valid 2 ** (2 + 3) ok 8245 no-extra-parens valid a, b, c ok 8246 no-extra-parens valid a = b = c ok 8247 no-extra-parens valid a ? b ? c : d : e ok 8248 no-extra-parens valid a ? b : c ? d : e ok 8249 no-extra-parens valid a || b || c ok 8250 no-extra-parens valid a || (b || c) ok 8251 no-extra-parens valid a && b && c ok 8252 no-extra-parens valid a && (b && c) ok 8253 no-extra-parens valid a | b | c ok 8254 no-extra-parens valid a | (b | c) ok 8255 no-extra-parens valid a ^ b ^ c ok 8256 no-extra-parens valid a ^ (b ^ c) ok 8257 no-extra-parens valid a & b & c ok 8258 no-extra-parens valid a & (b & c) ok 8259 no-extra-parens valid a == b == c ok 8260 no-extra-parens valid a == (b == c) ok 8261 no-extra-parens valid a < b < c ok 8262 no-extra-parens valid a < (b < c) ok 8263 no-extra-parens valid a << b << c ok 8264 no-extra-parens valid a << (b << c) ok 8265 no-extra-parens valid a + b + c ok 8266 no-extra-parens valid a + (b + c) ok 8267 no-extra-parens valid a * b * c ok 8268 no-extra-parens valid a * (b * c) ok 8269 no-extra-parens valid !!a; typeof +b; void -c; ~delete d; ok 8270 no-extra-parens valid a(b) ok 8271 no-extra-parens valid a(b)(c) ok 8272 no-extra-parens valid a((b, c)) ok 8273 no-extra-parens valid new new A ok 8274 no-extra-parens valid 2 ** 3 ** 4 ok 8275 no-extra-parens valid (2 ** 3) ** 4 ok 8276 no-extra-parens valid if(a); ok 8277 no-extra-parens valid with(a){} ok 8278 no-extra-parens valid switch(a){ case 0: break; } ok 8279 no-extra-parens valid function a(){ return b; } ok 8280 no-extra-parens valid var a = () => { return b; } ok 8281 no-extra-parens valid throw a; ok 8282 no-extra-parens valid while(a); ok 8283 no-extra-parens valid do; while(a); ok 8284 no-extra-parens valid for(;;); ok 8285 no-extra-parens valid for(a in b); ok 8286 no-extra-parens valid for(a in b, c); ok 8287 no-extra-parens valid for(a of b); ok 8288 no-extra-parens valid for (a of (b, c)); ok 8289 no-extra-parens valid var a = (b, c); ok 8290 no-extra-parens valid [] ok 8291 no-extra-parens valid [a, b] ok 8292 no-extra-parens valid !{a: 0, b: 1} ok 8293 no-extra-parens valid ({}); ok 8294 no-extra-parens valid (function(){}); ok 8295 no-extra-parens valid (let[a] = b); ok 8296 no-extra-parens valid (function*(){}); ok 8297 no-extra-parens valid (class{}); ok 8298 no-extra-parens valid (0).a ok 8299 no-extra-parens valid (function(){ }()) ok 8300 no-extra-parens valid ({a: function(){}}.a()); ok 8301 no-extra-parens valid ({a:0}.a ? b : c) ok 8302 no-extra-parens valid var isA = (/^a$/).test('a'); ok 8303 no-extra-parens valid var regex = (/^a$/); ok 8304 no-extra-parens valid function a(){ return (/^a$/); } ok 8305 no-extra-parens valid function a(){ return (/^a$/).test('a'); } ok 8306 no-extra-parens valid var foo = (function() { return bar(); }()) ok 8307 no-extra-parens valid var o = { foo: (function() { return bar(); }()) }; ok 8308 no-extra-parens valid o.foo = (function(){ return bar(); }()); ok 8309 no-extra-parens valid (function(){ return bar(); }()), (function(){ return bar(); }()) ok 8310 no-extra-parens valid var foo = (function() { return bar(); })() ok 8311 no-extra-parens valid var o = { foo: (function() { return bar(); })() }; ok 8312 no-extra-parens valid o.foo = (function(){ return bar(); })(); ok 8313 no-extra-parens valid (function(){ return bar(); })(), (function(){ return bar(); })() ok 8314 no-extra-parens valid function foo() { return (function(){}()); } ok 8315 no-extra-parens valid var foo = (function*() { if ((yield foo()) + 1) { return; } }()) ok 8316 no-extra-parens valid (() => 0)() ok 8317 no-extra-parens valid (_ => 0)() ok 8318 no-extra-parens valid _ => 0, _ => 1 ok 8319 no-extra-parens valid a = () => b = 0 ok 8320 no-extra-parens valid 0 ? _ => 0 : _ => 0 ok 8321 no-extra-parens valid (_ => 0) || (_ => 0) ok 8322 no-extra-parens valid x => ({foo: 1}) ok 8323 no-extra-parens valid 1 + 2 ** 3 ok 8324 no-extra-parens valid 1 - 2 ** 3 ok 8325 no-extra-parens valid 2 ** -3 ok 8326 no-extra-parens valid (-2) ** 3 ok 8327 no-extra-parens valid (+2) ** 3 ok 8328 no-extra-parens valid + (2 ** 3) ok 8329 no-extra-parens valid a => ({b: c}[d]) ok 8330 no-extra-parens valid a => ({b: c}.d()) ok 8331 no-extra-parens valid a => ({b: c}.d.e) ok 8332 no-extra-parens valid (0) ok 8333 no-extra-parens valid a + (b * c) ok 8334 no-extra-parens valid (a)(b) ok 8335 no-extra-parens valid a, (b = c) ok 8336 no-extra-parens valid for(a in (0)); ok 8337 no-extra-parens valid var a = (b = c) ok 8338 no-extra-parens valid _ => (a = 0) ok 8339 no-extra-parens valid while ((foo = bar())) {} ok 8340 no-extra-parens valid if ((foo = bar())) {} ok 8341 no-extra-parens valid do; while ((foo = bar())) ok 8342 no-extra-parens valid for (;(a = b);); ok 8343 no-extra-parens valid a + (b * c) ok 8344 no-extra-parens valid (a * b) + c ok 8345 no-extra-parens valid (a * b) / c ok 8346 no-extra-parens valid a || (b && c) ok 8347 no-extra-parens valid function a(b) { return b || c; } ok 8348 no-extra-parens valid function a(b) { return; } ok 8349 no-extra-parens valid function a(b) { return (b = 1); } ok 8350 no-extra-parens valid function a(b) { return (b = c) || (b = d); } ok 8351 no-extra-parens valid function a(b) { return c ? (d = b) : (e = b); } ok 8352 no-extra-parens valid b => b || c; ok 8353 no-extra-parens valid b => (b = 1); ok 8354 no-extra-parens valid b => (b = c) || (b = d); ok 8355 no-extra-parens valid b => c ? (d = b) : (e = b); ok 8356 no-extra-parens valid b => { return b || c }; ok 8357 no-extra-parens valid b => { return (b = 1) }; ok 8358 no-extra-parens valid b => { return (b = c) || (b = d) }; ok 8359 no-extra-parens valid b => { return c ? (d = b) : (e = b) }; ok 8360 no-extra-parens valid (function(){}).foo(), 1, 2; ok 8361 no-extra-parens valid (function(){}).foo++; ok 8362 no-extra-parens valid (function(){}).foo() || bar; ok 8363 no-extra-parens valid (function(){}).foo() + 1; ok 8364 no-extra-parens valid (function(){}).foo() ? bar : baz; ok 8365 no-extra-parens valid (function(){}).foo.bar(); ok 8366 no-extra-parens valid (function(){}.foo()); ok 8367 no-extra-parens valid (function(){}.foo.bar); ok 8368 no-extra-parens valid (class{}).foo(), 1, 2; ok 8369 no-extra-parens valid (class{}).foo++; ok 8370 no-extra-parens valid (class{}).foo() || bar; ok 8371 no-extra-parens valid (class{}).foo() + 1; ok 8372 no-extra-parens valid (class{}).foo() ? bar : baz; ok 8373 no-extra-parens valid (class{}).foo.bar(); ok 8374 no-extra-parens valid (class{}.foo()); ok 8375 no-extra-parens valid (class{}.foo.bar); ok 8376 no-extra-parens valid function *a() { yield b; } ok 8377 no-extra-parens valid function *a() { yield yield; } ok 8378 no-extra-parens valid function *a() { yield b, c; } ok 8379 no-extra-parens valid function *a() { yield (b, c); } ok 8380 no-extra-parens valid function *a() { yield b + c; } ok 8381 no-extra-parens valid function *a() { (yield b) + c; } ok 8382 no-extra-parens valid function a() { return ( b ); } ok 8383 no-extra-parens valid function a() { return ( <JSX /> ); } ok 8384 no-extra-parens valid function a() { return ( <></> ); } ok 8385 no-extra-parens valid throw ( a ); ok 8386 no-extra-parens valid function *a() { yield ( b ); } ok 8387 no-extra-parens valid async function a() { await (a + b) } ok 8388 no-extra-parens valid async function a() { await (a + await b) } ok 8389 no-extra-parens valid async function a() { (await a)() } ok 8390 no-extra-parens valid async function a() { new (await a) } ok 8391 no-extra-parens valid (foo instanceof bar) instanceof baz ok 8392 no-extra-parens valid (foo in bar) in baz ok 8393 no-extra-parens valid (foo + bar) + baz ok 8394 no-extra-parens valid (foo && bar) && baz ok 8395 no-extra-parens valid foo instanceof (bar instanceof baz) ok 8396 no-extra-parens valid foo in (bar in baz) ok 8397 no-extra-parens valid foo + (bar + baz) ok 8398 no-extra-parens valid foo && (bar && baz) ok 8399 no-extra-parens valid (async function() {}); ok 8400 no-extra-parens valid (async function () { }()); ok 8401 no-extra-parens valid const Component = (<div />) ok 8402 no-extra-parens valid const Component = (<> <p /> </>); ok 8403 no-extra-parens valid const Component = (<div> <p /> </div>); ok 8404 no-extra-parens valid const Component = ( <div /> ); ok 8405 no-extra-parens valid const Component = (<div />) ok 8406 no-extra-parens valid const Component = (<div />); ok 8407 no-extra-parens valid const Component = ( <div /> ); ok 8408 no-extra-parens valid const Component = (<div />) ok 8409 no-extra-parens valid const Component = ( <div> <p /> </div> ); ok 8410 no-extra-parens valid const Component = (<div> <p /> </div>); ok 8411 no-extra-parens valid const Component = (<div> <p /> </div>); ok 8412 no-extra-parens valid const Component = (<div prop={true} />) ok 8413 no-extra-parens valid var a = b => 1 ? 2 : 3 ok 8414 no-extra-parens valid var a = (b) => (1 ? 2 : 3) ok 8415 no-extra-parens valid let a = [ ...b ] ok 8416 no-extra-parens valid let a = { ...b } ok 8417 no-extra-parens valid let a = { ...b } ok 8418 no-extra-parens valid let a = [ ...(b, c) ] ok 8419 no-extra-parens valid let a = { ...(b, c) } ok 8420 no-extra-parens valid let a = { ...(b, c) } ok 8421 no-extra-parens valid var [x = (1, foo)] = bar ok 8422 no-extra-parens valid class A extends B {} ok 8423 no-extra-parens valid const A = class extends B {} ok 8424 no-extra-parens valid class A extends (B=C) {} ok 8425 no-extra-parens valid const A = class extends (B=C) {} ok 8426 no-extra-parens valid () => ({ foo: 1 }) ok 8427 no-extra-parens valid () => ({ foo: 1 }).foo ok 8428 no-extra-parens valid () => ({ foo: 1 }.foo().bar).baz.qux() ok 8429 no-extra-parens valid () => ({ foo: 1 }.foo().bar + baz) ok 8430 no-extra-parens valid export default (function(){}).foo ok 8431 no-extra-parens valid export default (class{}).foo ok 8432 no-extra-parens valid ({}).hasOwnProperty.call(foo, bar) ok 8433 no-extra-parens valid ({}) ? foo() : bar() ok 8434 no-extra-parens valid ({}) + foo ok 8435 no-extra-parens valid (function(){}) + foo ok 8436 no-extra-parens valid (let) foo ok 8437 no-extra-parens valid (let[foo]) = 1 ok 8438 no-extra-parens valid ((function(){}).foo.bar)(); ok 8439 no-extra-parens valid ((function(){}).foo)(); ok 8440 no-extra-parens valid (let)[foo] ok 8441 no-extra-parens valid for ((let) in foo); ok 8442 no-extra-parens valid for ((let[foo]) in bar); ok 8443 no-extra-parens valid for ((let)[foo] in bar); ok 8444 no-extra-parens valid for ((let[foo].bar) in baz); ok 8445 no-extra-parens invalid (0) ok 8446 no-extra-parens invalid ( 0 ) ok 8447 no-extra-parens invalid if((0)); ok 8448 no-extra-parens invalid if(( 0 )); ok 8449 no-extra-parens invalid with((0)){} ok 8450 no-extra-parens invalid switch((0)){} ok 8451 no-extra-parens invalid switch(0){ case (1): break; } ok 8452 no-extra-parens invalid for((0);;); ok 8453 no-extra-parens invalid for(;(0);); ok 8454 no-extra-parens invalid for(;;(0)); ok 8455 no-extra-parens invalid throw(0) ok 8456 no-extra-parens invalid while((0)); ok 8457 no-extra-parens invalid do; while((0)) ok 8458 no-extra-parens invalid for(a in (0)); ok 8459 no-extra-parens invalid for(a of (0)); ok 8460 no-extra-parens invalid var foo = (function*() { if ((yield foo())) { return; } }()) ok 8461 no-extra-parens invalid f((0)) ok 8462 no-extra-parens invalid f(0, (1)) ok 8463 no-extra-parens invalid !(0) ok 8464 no-extra-parens invalid a[(1)] ok 8465 no-extra-parens invalid (a)(b) ok 8466 no-extra-parens invalid (async) ok 8467 no-extra-parens invalid (a, b) ok 8468 no-extra-parens invalid var a = (b = c); ok 8469 no-extra-parens invalid function f(){ return (a); } ok 8470 no-extra-parens invalid [a, (b = c)] ok 8471 no-extra-parens invalid !{a: (b = c)} ok 8472 no-extra-parens invalid typeof(0) ok 8473 no-extra-parens invalid typeof (0) ok 8474 no-extra-parens invalid typeof([]) ok 8475 no-extra-parens invalid typeof ([]) ok 8476 no-extra-parens invalid typeof( 0) ok 8477 no-extra-parens invalid typeof(typeof 5) ok 8478 no-extra-parens invalid typeof (typeof 5) ok 8479 no-extra-parens invalid +(+foo) ok 8480 no-extra-parens invalid -(-foo) ok 8481 no-extra-parens invalid +(-foo) ok 8482 no-extra-parens invalid -(+foo) ok 8483 no-extra-parens invalid ++(foo) ok 8484 no-extra-parens invalid --(foo) ok 8485 no-extra-parens invalid (a || b) ? c : d ok 8486 no-extra-parens invalid a ? (b = c) : d ok 8487 no-extra-parens invalid a ? b : (c = d) ok 8488 no-extra-parens invalid f((a = b)) ok 8489 no-extra-parens invalid a, (b = c) ok 8490 no-extra-parens invalid a = (b * c) ok 8491 no-extra-parens invalid a + (b * c) ok 8492 no-extra-parens invalid (a * b) + c ok 8493 no-extra-parens invalid (a * b) / c ok 8494 no-extra-parens invalid (2) ** 3 ** 4 ok 8495 no-extra-parens invalid 2 ** (3 ** 4) ok 8496 no-extra-parens invalid (2 ** 3) ok 8497 no-extra-parens invalid (2 ** 3) + 1 ok 8498 no-extra-parens invalid 1 - (2 ** 3) ok 8499 no-extra-parens invalid a = (b * c) ok 8500 no-extra-parens invalid (b * c) ok 8501 no-extra-parens invalid a = (b = c) ok 8502 no-extra-parens invalid (a).b ok 8503 no-extra-parens invalid (0)[a] ok 8504 no-extra-parens invalid (0.0).a ok 8505 no-extra-parens invalid (0xBEEF).a ok 8506 no-extra-parens invalid (1e6).a ok 8507 no-extra-parens invalid (0123).a ok 8508 no-extra-parens invalid a[(function() {})] ok 8509 no-extra-parens invalid new (function(){}) ok 8510 no-extra-parens invalid new ( function(){} ) ok 8511 no-extra-parens invalid ((function foo() {return 1;}))() ok 8512 no-extra-parens invalid ((function(){ return bar(); })()) ok 8513 no-extra-parens invalid (foo()).bar ok 8514 no-extra-parens invalid (foo.bar()).baz ok 8515 no-extra-parens invalid (foo .bar()) .baz ok 8516 no-extra-parens invalid new (A) ok 8517 no-extra-parens invalid (new A())() ok 8518 no-extra-parens invalid (new A(1))() ok 8519 no-extra-parens invalid ((new A))() ok 8520 no-extra-parens invalid new (foo .baz .bar .foo.baz) ok 8521 no-extra-parens invalid new (foo.baz.bar.baz) ok 8522 no-extra-parens invalid 0, (_ => 0) ok 8523 no-extra-parens invalid (_ => 0), 0 ok 8524 no-extra-parens invalid a = (_ => 0) ok 8525 no-extra-parens invalid _ => (a = 0) ok 8526 no-extra-parens invalid x => (({})) ok 8527 no-extra-parens invalid new (function(){}) ok 8528 no-extra-parens invalid new ( function(){} ) ok 8529 no-extra-parens invalid ((function foo() {return 1;}))() ok 8530 no-extra-parens invalid a[(function() {})] ok 8531 no-extra-parens invalid 0, (_ => 0) ok 8532 no-extra-parens invalid (_ => 0), 0 ok 8533 no-extra-parens invalid a = (_ => 0) ok 8534 no-extra-parens invalid while ((foo = bar())) {} ok 8535 no-extra-parens invalid while ((foo = bar())) {} ok 8536 no-extra-parens invalid if ((foo = bar())) {} ok 8537 no-extra-parens invalid do; while ((foo = bar())) ok 8538 no-extra-parens invalid for (;(a = b);); ok 8539 no-extra-parens invalid ((function(){})).foo(); ok 8540 no-extra-parens invalid ((function(){}).foo()); ok 8541 no-extra-parens invalid ((function(){}).foo); ok 8542 no-extra-parens invalid 0, (function(){}).foo(); ok 8543 no-extra-parens invalid void (function(){}).foo(); ok 8544 no-extra-parens invalid ++(function(){}).foo; ok 8545 no-extra-parens invalid bar || (function(){}).foo(); ok 8546 no-extra-parens invalid 1 + (function(){}).foo(); ok 8547 no-extra-parens invalid bar ? (function(){}).foo() : baz; ok 8548 no-extra-parens invalid bar ? baz : (function(){}).foo(); ok 8549 no-extra-parens invalid bar((function(){}).foo(), 0); ok 8550 no-extra-parens invalid bar[(function(){}).foo()]; ok 8551 no-extra-parens invalid var bar = (function(){}).foo(); ok 8552 no-extra-parens invalid ((class{})).foo(); ok 8553 no-extra-parens invalid ((class{}).foo()); ok 8554 no-extra-parens invalid ((class{}).foo); ok 8555 no-extra-parens invalid 0, (class{}).foo(); ok 8556 no-extra-parens invalid void (class{}).foo(); ok 8557 no-extra-parens invalid ++(class{}).foo; ok 8558 no-extra-parens invalid bar || (class{}).foo(); ok 8559 no-extra-parens invalid 1 + (class{}).foo(); ok 8560 no-extra-parens invalid bar ? (class{}).foo() : baz; ok 8561 no-extra-parens invalid bar ? baz : (class{}).foo(); ok 8562 no-extra-parens invalid bar((class{}).foo(), 0); ok 8563 no-extra-parens invalid bar[(class{}).foo()]; ok 8564 no-extra-parens invalid var bar = (class{}).foo(); ok 8565 no-extra-parens invalid function *a() { yield (b); } ok 8566 no-extra-parens invalid function *a() { (yield b), c; } ok 8567 no-extra-parens invalid function *a() { yield ((b, c)); } ok 8568 no-extra-parens invalid function *a() { yield (b + c); } ok 8569 no-extra-parens invalid function a() { return (b); } ok 8570 no-extra-parens invalid function a() { return (b); } ok 8571 no-extra-parens invalid function a() { return (( b )); } ok 8572 no-extra-parens invalid function a() { return (<JSX />); } ok 8573 no-extra-parens invalid function a() { return (<JSX />); } ok 8574 no-extra-parens invalid function a() { return (( <JSX /> )); } ok 8575 no-extra-parens invalid function a() { return (( <></> )); } ok 8576 no-extra-parens invalid throw (a); ok 8577 no-extra-parens invalid throw (( a )); ok 8578 no-extra-parens invalid function *a() { yield (b); } ok 8579 no-extra-parens invalid function *a() { yield (b); } ok 8580 no-extra-parens invalid function *a() { yield (( b )); } ok 8581 no-extra-parens invalid function a(b) { return (b || c); } ok 8582 no-extra-parens invalid function a(b) { return ((b = c) || (d = e)); } ok 8583 no-extra-parens invalid function a(b) { return (b = 1); } ok 8584 no-extra-parens invalid function a(b) { return c ? (d = b) : (e = b); } ok 8585 no-extra-parens invalid b => (b || c); ok 8586 no-extra-parens invalid b => ((b = c) || (d = e)); ok 8587 no-extra-parens invalid b => (b = 1); ok 8588 no-extra-parens invalid b => c ? (d = b) : (e = b); ok 8589 no-extra-parens invalid b => { return (b || c); } ok 8590 no-extra-parens invalid b => { return ((b = c) || (d = e)) }; ok 8591 no-extra-parens invalid b => { return (b = 1) }; ok 8592 no-extra-parens invalid b => { return c ? (d = b) : (e = b); } ok 8593 no-extra-parens invalid async function a() { (await a) + (await b); } ok 8594 no-extra-parens invalid async function a() { await (a); } ok 8595 no-extra-parens invalid async function a() { await (a()); } ok 8596 no-extra-parens invalid async function a() { await (+a); } ok 8597 no-extra-parens invalid async function a() { +(await a); } ok 8598 no-extra-parens invalid (foo) instanceof bar ok 8599 no-extra-parens invalid (foo) in bar ok 8600 no-extra-parens invalid (foo) + bar ok 8601 no-extra-parens invalid (foo) && bar ok 8602 no-extra-parens invalid foo instanceof (bar) ok 8603 no-extra-parens invalid foo in (bar) ok 8604 no-extra-parens invalid foo + (bar) ok 8605 no-extra-parens invalid foo && (bar) ok 8606 no-extra-parens invalid const Component = (<div />); ok 8607 no-extra-parens invalid const Component = ( <div /> ); ok 8608 no-extra-parens invalid const Component = ( <></> ); ok 8609 no-extra-parens invalid const Component = ( <div> <p /> </div> ); ok 8610 no-extra-parens invalid const Component = (<div> <p /> </div>); ok 8611 no-extra-parens invalid const Component = (<div prop={true} />) ok 8612 no-extra-parens invalid const Component = (<div />); ok 8613 no-extra-parens invalid const Component = (<div> <p /> </div>) ok 8614 no-extra-parens invalid var a = (b) => (1 ? 2 : 3) ok 8615 no-extra-parens invalid var a = (b) => ((1 ? 2 : 3)) ok 8616 no-extra-parens invalid let a = [...(b)] ok 8617 no-extra-parens invalid let a = {...(b)} ok 8618 no-extra-parens invalid let a = {...(b)} ok 8619 no-extra-parens invalid let a = [...((b, c))] ok 8620 no-extra-parens invalid let a = {...((b, c))} ok 8621 no-extra-parens invalid let a = {...((b, c))} ok 8622 no-extra-parens invalid class A extends (B) {} ok 8623 no-extra-parens invalid const A = class extends (B) {} ok 8624 no-extra-parens invalid class A extends ((B=C)) {} ok 8625 no-extra-parens invalid const A = class extends ((B=C)) {} ok 8626 no-extra-parens invalid for (foo of(bar)); ok 8627 no-extra-parens invalid for ((foo) of bar); ok 8628 no-extra-parens invalid for ((foo)in bar); ok 8629 no-extra-parens invalid for ((foo['bar'])of baz); ok 8630 no-extra-parens invalid () => (({ foo: 1 }).foo) ok 8631 no-extra-parens invalid (let).foo ok 8632 no-extra-parens invalid for ((let.foo) in bar); ok 8633 no-extra-parens invalid for ((let).foo.bar in baz); ok 8634 no-extra-parens invalid for (a in (b, c)); ok 8635 no-extra-parens invalid (let) ok 8636 no-extra-parens invalid ((let)) ok 8637 no-extra-semi valid var x = 5; ok 8638 no-extra-semi valid function foo(){} ok 8639 no-extra-semi valid for(;;); ok 8640 no-extra-semi valid while(0); ok 8641 no-extra-semi valid do;while(0); ok 8642 no-extra-semi valid for(a in b); ok 8643 no-extra-semi valid for(a of b); ok 8644 no-extra-semi valid if(true); ok 8645 no-extra-semi valid if(true); else; ok 8646 no-extra-semi valid foo: ; ok 8647 no-extra-semi valid with(foo); ok 8648 no-extra-semi valid class A { } ok 8649 no-extra-semi valid var A = class { }; ok 8650 no-extra-semi valid class A { a() { this; } } ok 8651 no-extra-semi valid var A = class { a() { this; } }; ok 8652 no-extra-semi valid class A { } a; ok 8653 no-extra-semi valid export const x = 42; ok 8654 no-extra-semi valid export default 42; ok 8655 no-extra-semi invalid var x = 5;; ok 8656 no-extra-semi invalid function foo(){}; ok 8657 no-extra-semi invalid for(;;);; ok 8658 no-extra-semi invalid while(0);; ok 8659 no-extra-semi invalid do;while(0);; ok 8660 no-extra-semi invalid for(a in b);; ok 8661 no-extra-semi invalid for(a of b);; ok 8662 no-extra-semi invalid if(true);; ok 8663 no-extra-semi invalid if(true){} else;; ok 8664 no-extra-semi invalid if(true){;} else {;} ok 8665 no-extra-semi invalid foo:;; ok 8666 no-extra-semi invalid with(foo);; ok 8667 no-extra-semi invalid with(foo){;} ok 8668 no-extra-semi invalid class A { ; } ok 8669 no-extra-semi invalid class A { /*a*/; } ok 8670 no-extra-semi invalid class A { ; a() {} } ok 8671 no-extra-semi invalid class A { a() {}; } ok 8672 no-extra-semi invalid class A { a() {}; b() {} } ok 8673 no-extra-semi invalid class A {; a() {}; b() {}; } ok 8674 no-extra-semi invalid class A { a() {}; get b() {} } ok 8675 no-fallthrough valid switch(foo) { case 0: a(); /* falls through */ case 1: b(); } ok 8676 no-fallthrough valid switch(foo) { case 0: a() /* falls through */ case 1: b(); } ok 8677 no-fallthrough valid switch(foo) { case 0: a(); /* fall through */ case 1: b(); } ok 8678 no-fallthrough valid switch(foo) { case 0: a(); /* fallthrough */ case 1: b(); } ok 8679 no-fallthrough valid switch(foo) { case 0: a(); /* FALLS THROUGH */ case 1: b(); } ok 8680 no-fallthrough valid function foo() { switch(foo) { case 0: a(); return; case 1: b(); }; } ok 8681 no-fallthrough valid switch(foo) { case 0: a(); throw 'foo'; case 1: b(); } ok 8682 no-fallthrough valid while (a) { switch(foo) { case 0: a(); continue; case 1: b(); } } ok 8683 no-fallthrough valid switch(foo) { case 0: a(); break; case 1: b(); } ok 8684 no-fallthrough valid switch(foo) { case 0: case 1: a(); break; case 2: b(); } ok 8685 no-fallthrough valid switch(foo) { case 0: case 1: break; case 2: b(); } ok 8686 no-fallthrough valid switch(foo) { case 0: case 1: break; default: b(); } ok 8687 no-fallthrough valid switch(foo) { case 0: case 1: a(); } ok 8688 no-fallthrough valid switch(foo) { case 0: case 1: a(); break; } ok 8689 no-fallthrough valid switch(foo) { case 0: case 1: break; } ok 8690 no-fallthrough valid switch(foo) { case 0: case 1: break; } ok 8691 no-fallthrough valid switch(foo) { case 0: // comment case 1: break; } ok 8692 no-fallthrough valid function foo() { switch(foo) { case 0: case 1: return; } } ok 8693 no-fallthrough valid function foo() { switch(foo) { case 0: {return;} case 1: {return;} } } ok 8694 no-fallthrough valid switch(foo) { case 0: case 1: {break;} } ok 8695 no-fallthrough valid switch(foo) { } ok 8696 no-fallthrough valid switch(foo) { case 0: switch(bar) { case 2: break; } /* falls through */ case 1: break; } ok 8697 no-fallthrough valid function foo() { switch(foo) { case 1: return a; a++; }} ok 8698 no-fallthrough valid switch (foo) { case 0: a(); /* falls through */ default: b(); /* comment */ } ok 8699 no-fallthrough valid switch (foo) { case 0: a(); /* falls through */ default: /* comment */ b(); } ok 8700 no-fallthrough valid switch (foo) { case 0: if (a) { break; } else { throw 0; } default: b(); } ok 8701 no-fallthrough valid switch (foo) { case 0: try { break; } finally {} default: b(); } ok 8702 no-fallthrough valid switch (foo) { case 0: try {} finally { break; } default: b(); } ok 8703 no-fallthrough valid switch (foo) { case 0: try { throw 0; } catch (err) { break; } default: b(); } ok 8704 no-fallthrough valid switch (foo) { case 0: do { throw 0; } while(a); default: b(); } ok 8705 no-fallthrough valid switch(foo) { case 0: a(); /* no break */ case 1: b(); } ok 8706 no-fallthrough valid switch(foo) { case 0: a(); /* no break: need to execute b() */ case 1: b(); } ok 8707 no-fallthrough valid switch(foo) { case 0: a(); // need to execute b(), so // falling through case 1: b(); } ok 8708 no-fallthrough valid switch(foo) { case 0: a(); /* break omitted */ default: b(); /* comment */ } ok 8709 no-fallthrough valid switch(foo) { case 0: a(); /* caution: break is omitted intentionally */ case 1: b(); /* break omitted */ default: c(); } ok 8710 no-fallthrough invalid switch(foo) { case 0: a(); case 1: b() } ok 8711 no-fallthrough invalid switch(foo) { case 0: a(); default: b() } ok 8712 no-fallthrough invalid switch(foo) { case 0: a(); default: b() } ok 8713 no-fallthrough invalid switch(foo) { case 0: if (a) { break; } default: b() } ok 8714 no-fallthrough invalid switch(foo) { case 0: try { throw 0; } catch (err) {} default: b() } ok 8715 no-fallthrough invalid switch(foo) { case 0: while (a) { break; } default: b() } ok 8716 no-fallthrough invalid switch(foo) { case 0: do { break; } while (a); default: b() } ok 8717 no-fallthrough invalid switch(foo) { case 0: default: b() } ok 8718 no-fallthrough invalid switch(foo) { case 0: // comment default: b() } ok 8719 no-fallthrough invalid switch(foo) { case 0: a(); /* falling through */ default: b() } ok 8720 no-fallthrough invalid switch(foo) { case 0: a(); /* no break */ case 1: b(); } ok 8721 no-fallthrough invalid switch(foo) { case 0: a(); /* no break */ /* todo: fix readability */ default: b() } ok 8722 no-floating-decimal valid var x = 2.5; ok 8723 no-floating-decimal valid var x = "2.5"; ok 8724 no-floating-decimal invalid var x = .5; ok 8725 no-floating-decimal invalid var x = -.5; ok 8726 no-floating-decimal invalid var x = 2.; ok 8727 no-floating-decimal invalid var x = -2.; ok 8728 no-floating-decimal invalid typeof.2 ok 8729 no-floating-decimal invalid for(foo of.2); ok 8730 no-func-assign valid function foo() { var foo = bar; } ok 8731 no-func-assign valid function foo(foo) { foo = bar; } ok 8732 no-func-assign valid function foo() { var foo; foo = bar; } ok 8733 no-func-assign valid var foo = () => {}; foo = bar; ok 8734 no-func-assign valid var foo = function() {}; foo = bar; ok 8735 no-func-assign valid var foo = function() { foo = bar; }; ok 8736 no-func-assign valid import bar from 'bar'; function foo() { var foo = bar; } ok 8737 no-func-assign invalid function foo() {}; foo = bar; ok 8738 no-func-assign invalid function foo() { foo = bar; } ok 8739 no-func-assign invalid foo = bar; function foo() { }; ok 8740 no-func-assign invalid [foo] = bar; function foo() { }; ok 8741 no-func-assign invalid ({x: foo = 0} = bar); function foo() { }; ok 8742 no-func-assign invalid function foo() { [foo] = bar; } ok 8743 no-func-assign invalid (function() { ({x: foo = 0} = bar); function foo() { }; })(); ok 8744 no-global-assign valid string = 'hello world'; ok 8745 no-global-assign valid var string; ok 8746 no-global-assign valid Object = 0; ok 8747 no-global-assign valid top = 0; ok 8748 no-global-assign valid onload = 0; ok 8749 no-global-assign valid require = 0; ok 8750 no-global-assign valid a = 1 ok 8751 no-global-assign valid /*global a:true*/ a = 1 ok 8752 no-global-assign invalid String = 'hello world'; ok 8753 no-global-assign invalid String++; ok 8754 no-global-assign invalid ({Object = 0, String = 0} = {}); ok 8755 no-global-assign invalid top = 0; ok 8756 no-global-assign invalid require = 0; ok 8757 no-global-assign invalid /*global b:false*/ function f() { b = 1; } ok 8758 no-global-assign invalid function f() { b = 1; } ok 8759 no-global-assign invalid /*global b:false*/ function f() { b++; } ok 8760 no-global-assign invalid /*global b*/ b = 1; ok 8761 no-global-assign invalid Array = 1; ok 8762 no-implicit-coercion valid Boolean(foo) ok 8763 no-implicit-coercion valid foo.indexOf(1) !== -1 ok 8764 no-implicit-coercion valid Number(foo) ok 8765 no-implicit-coercion valid parseInt(foo) ok 8766 no-implicit-coercion valid parseFloat(foo) ok 8767 no-implicit-coercion valid String(foo) ok 8768 no-implicit-coercion valid !foo ok 8769 no-implicit-coercion valid ~foo ok 8770 no-implicit-coercion valid -foo ok 8771 no-implicit-coercion valid +1234 ok 8772 no-implicit-coercion valid -1234 ok 8773 no-implicit-coercion valid +Number(lol) ok 8774 no-implicit-coercion valid -parseFloat(lol) ok 8775 no-implicit-coercion valid 2 * foo ok 8776 no-implicit-coercion valid 1 * 1234 ok 8777 no-implicit-coercion valid 1 * Number(foo) ok 8778 no-implicit-coercion valid 1 * parseInt(foo) ok 8779 no-implicit-coercion valid 1 * parseFloat(foo) ok 8780 no-implicit-coercion valid Number(foo) * 1 ok 8781 no-implicit-coercion valid parseInt(foo) * 1 ok 8782 no-implicit-coercion valid parseFloat(foo) * 1 ok 8783 no-implicit-coercion valid 1 * 1234 * 678 * Number(foo) ok 8784 no-implicit-coercion valid 1 * 1234 * 678 * parseInt(foo) ok 8785 no-implicit-coercion valid 1234 * 1 * 678 * Number(foo) ok 8786 no-implicit-coercion valid 1234 * 1 * Number(foo) * Number(bar) ok 8787 no-implicit-coercion valid 1234 * 1 * Number(foo) * parseInt(bar) ok 8788 no-implicit-coercion valid 1234 * 1 * Number(foo) * parseFloat(bar) ok 8789 no-implicit-coercion valid 1234 * 1 * parseInt(foo) * parseFloat(bar) ok 8790 no-implicit-coercion valid 1234 * 1 * parseInt(foo) * Number(bar) ok 8791 no-implicit-coercion valid 1234 * 1 * parseFloat(foo) * Number(bar) ok 8792 no-implicit-coercion valid 1234 * Number(foo) * 1 * Number(bar) ok 8793 no-implicit-coercion valid 1234 * parseInt(foo) * 1 * Number(bar) ok 8794 no-implicit-coercion valid 1234 * parseFloat(foo) * 1 * parseInt(bar) ok 8795 no-implicit-coercion valid 1234 * parseFloat(foo) * 1 * Number(bar) ok 8796 no-implicit-coercion valid 1234*foo*1 ok 8797 no-implicit-coercion valid 1234*1*foo ok 8798 no-implicit-coercion valid 1234*bar*1*foo ok 8799 no-implicit-coercion valid 1234*1*foo*bar ok 8800 no-implicit-coercion valid 1234*1*foo*Number(bar) ok 8801 no-implicit-coercion valid 1234*1*Number(foo)*bar ok 8802 no-implicit-coercion valid 1234*1*parseInt(foo)*bar ok 8803 no-implicit-coercion valid 0 + foo ok 8804 no-implicit-coercion valid ~foo.bar() ok 8805 no-implicit-coercion valid foo + 'bar' ok 8806 no-implicit-coercion valid foo + `${bar}` ok 8807 no-implicit-coercion valid !!foo ok 8808 no-implicit-coercion valid ~foo.indexOf(1) ok 8809 no-implicit-coercion valid +foo ok 8810 no-implicit-coercion valid 1*foo ok 8811 no-implicit-coercion valid ""+foo ok 8812 no-implicit-coercion valid foo += "" ok 8813 no-implicit-coercion valid var a = !!foo ok 8814 no-implicit-coercion valid var a = ~foo.indexOf(1) ok 8815 no-implicit-coercion valid var a = ~foo ok 8816 no-implicit-coercion valid var a = 1 * foo ok 8817 no-implicit-coercion valid var a = +foo ok 8818 no-implicit-coercion valid var a = "" + foo ok 8819 no-implicit-coercion valid '' + 'foo' ok 8820 no-implicit-coercion valid `` + 'foo' ok 8821 no-implicit-coercion valid '' + `${foo}` ok 8822 no-implicit-coercion valid 'foo' + '' ok 8823 no-implicit-coercion valid 'foo' + `` ok 8824 no-implicit-coercion valid `${foo}` + '' ok 8825 no-implicit-coercion valid foo += 'bar' ok 8826 no-implicit-coercion valid foo += `${bar}` ok 8827 no-implicit-coercion valid +42 ok 8828 no-implicit-coercion invalid !!foo ok 8829 no-implicit-coercion invalid !!(foo + bar) ok 8830 no-implicit-coercion invalid ~foo.indexOf(1) ok 8831 no-implicit-coercion invalid ~foo.bar.indexOf(2) ok 8832 no-implicit-coercion invalid +foo ok 8833 no-implicit-coercion invalid +foo.bar ok 8834 no-implicit-coercion invalid 1*foo ok 8835 no-implicit-coercion invalid foo*1 ok 8836 no-implicit-coercion invalid 1*foo.bar ok 8837 no-implicit-coercion invalid ""+foo ok 8838 no-implicit-coercion invalid ``+foo ok 8839 no-implicit-coercion invalid foo+"" ok 8840 no-implicit-coercion invalid foo+`` ok 8841 no-implicit-coercion invalid ""+foo.bar ok 8842 no-implicit-coercion invalid ``+foo.bar ok 8843 no-implicit-coercion invalid foo.bar+"" ok 8844 no-implicit-coercion invalid foo.bar+`` ok 8845 no-implicit-coercion invalid foo += "" ok 8846 no-implicit-coercion invalid foo += `` ok 8847 no-implicit-coercion invalid var a = !!foo ok 8848 no-implicit-coercion invalid var a = ~foo.indexOf(1) ok 8849 no-implicit-coercion invalid var a = 1 * foo ok 8850 no-implicit-coercion invalid var a = +foo ok 8851 no-implicit-coercion invalid var a = "" + foo ok 8852 no-implicit-coercion invalid var a = `` + foo ok 8853 no-implicit-coercion invalid typeof+foo ok 8854 no-implicit-coercion invalid typeof +foo ok 8855 no-implicit-globals valid const foo = 1; ok 8856 no-implicit-globals valid let foo = 1; ok 8857 no-implicit-globals valid let foo = function() {}; ok 8858 no-implicit-globals valid const foo = function() {}; ok 8859 no-implicit-globals valid class Foo {} ok 8860 no-implicit-globals valid window.foo = 1; ok 8861 no-implicit-globals valid window.foo = function() {}; ok 8862 no-implicit-globals valid window.foo = function foo() {}; ok 8863 no-implicit-globals valid window.foo = function*() {}; ok 8864 no-implicit-globals valid self.foo = 1; ok 8865 no-implicit-globals valid self.foo = function() {}; ok 8866 no-implicit-globals valid this.foo = 1; ok 8867 no-implicit-globals valid this.foo = function() {}; ok 8868 no-implicit-globals valid Utils.foo = 1; ok 8869 no-implicit-globals valid Utils.foo = function() {}; ok 8870 no-implicit-globals valid (function() { var foo = 1; })(); ok 8871 no-implicit-globals valid (function() { let foo = 1; })(); ok 8872 no-implicit-globals valid (function() { const foo = 1; })(); ok 8873 no-implicit-globals valid (function() { function foo() {} })(); ok 8874 no-implicit-globals valid (function() { function *foo() {} })(); ok 8875 no-implicit-globals valid var foo = 1; ok 8876 no-implicit-globals valid let foo = 1; ok 8877 no-implicit-globals valid const foo = 1; ok 8878 no-implicit-globals valid function foo() {} ok 8879 no-implicit-globals valid function *foo() {} ok 8880 no-implicit-globals valid var foo = 1; ok 8881 no-implicit-globals valid let foo = 1; ok 8882 no-implicit-globals valid const foo = 1; ok 8883 no-implicit-globals valid function foo() {} ok 8884 no-implicit-globals valid /*global foo:true*/ var foo = 1; ok 8885 no-implicit-globals valid /*global foo:true*/ foo = 1; ok 8886 no-implicit-globals valid /*global foo:true*/ function foo() {} ok 8887 no-implicit-globals invalid foo = 1; ok 8888 no-implicit-globals invalid foo = 1, bar = 2; ok 8889 no-implicit-globals invalid var foo = 1; ok 8890 no-implicit-globals invalid var foo = 1, bar = 2; ok 8891 no-implicit-globals invalid function foo() {} ok 8892 no-implicit-globals invalid foo = function() {}; ok 8893 no-implicit-globals invalid var foo = function() {}; ok 8894 no-implicit-globals invalid var foo = function foo() {}; ok 8895 no-implicit-globals invalid function *foo() {} ok 8896 no-implicit-globals invalid foo = function*() {}; ok 8897 no-implicit-globals invalid var foo = function*() {}; ok 8898 no-implicit-globals invalid var foo = function *foo() {}; ok 8899 no-implicit-globals invalid foo = 1; ok 8900 no-implicit-globals invalid /*global foo:false*/ var foo = 1; ok 8901 no-implicit-globals invalid /*global foo:false*/ foo = 1; ok 8902 no-implicit-globals invalid /*global foo:false*/ function foo() {} ok 8903 no-implied-eval valid setInterval(function() { x = 1; }, 100); ok 8904 no-implied-eval valid foo.setTimeout('hi') ok 8905 no-implied-eval valid setTimeout(foo, 10) ok 8906 no-implied-eval valid setTimeout(function() {}, 10) ok 8907 no-implied-eval valid foo.setInterval('hi') ok 8908 no-implied-eval valid setInterval(foo, 10) ok 8909 no-implied-eval valid setInterval(function() {}, 10) ok 8910 no-implied-eval valid foo.execScript('hi') ok 8911 no-implied-eval valid execScript(foo) ok 8912 no-implied-eval valid execScript(function() {}) ok 8913 no-implied-eval valid setTimeout(foo + bar, 10) ok 8914 no-implied-eval valid setTimeout(foobar, 'buzz') ok 8915 no-implied-eval valid setTimeout(foobar, foo + 'bar') ok 8916 no-implied-eval valid setTimeout(function() { return 'foobar'; }, 10) ok 8917 no-implied-eval valid setTimeoutFooBar('Foo Bar') ok 8918 no-implied-eval invalid setTimeout("x = 1;"); ok 8919 no-implied-eval invalid setTimeout("x = 1;", 100); ok 8920 no-implied-eval invalid setInterval("x = 1;"); ok 8921 no-implied-eval invalid execScript("x = 1;"); ok 8922 no-implied-eval invalid window.setTimeout('foo') ok 8923 no-implied-eval invalid window.setInterval('foo') ok 8924 no-implied-eval invalid window['setTimeout']('foo') ok 8925 no-implied-eval invalid window['setInterval']('foo') ok 8926 no-implied-eval invalid setTimeout(`foo${bar}`) ok 8927 no-implied-eval invalid setTimeout('foo' + bar) ok 8928 no-implied-eval invalid setTimeout(foo + 'bar') ok 8929 no-implied-eval invalid setTimeout(`foo` + bar) ok 8930 no-implied-eval invalid setTimeout(1 + ';' + 1) ok 8931 no-implied-eval invalid setTimeout('foo' + (function() { setTimeout(helper); execScript('str'); return 'bar'; })()) ok 8932 no-inline-comments valid // A valid comment before code var a = 1; ok 8933 no-inline-comments valid var a = 2; // A valid comment after code ok 8934 no-inline-comments valid // A solitary comment ok 8935 no-inline-comments valid var a = 1; // eslint-disable-line some-rule ok 8936 no-inline-comments valid var a = 1; /* eslint-disable-line some-rule */ ok 8937 no-inline-comments invalid var a = 1; /*A block comment inline after code*/ ok 8938 no-inline-comments invalid /*A block comment inline before code*/ var a = 2; ok 8939 no-inline-comments invalid var a = 3; //A comment inline with code ok 8940 no-inline-comments invalid var a = 3; // someday use eslint-disable-line here ok 8941 no-inline-comments invalid var a = 4; /**A * block * comment * inline * between * code*/ var foo = a; ok 8942 no-inner-declarations valid function doSomething() { } ok 8943 no-inner-declarations valid function doSomething() { function somethingElse() { } } ok 8944 no-inner-declarations valid (function() { function doSomething() { } }()); ok 8945 no-inner-declarations valid if (test) { var fn = function() { }; } ok 8946 no-inner-declarations valid if (test) { var fn = function expr() { }; } ok 8947 no-inner-declarations valid function decl() { var fn = function expr() { }; } ok 8948 no-inner-declarations valid function decl(arg) { var fn; if (arg) { fn = function() { }; } } ok 8949 no-inner-declarations valid var x = {doSomething() {function doSomethingElse() {}}} ok 8950 no-inner-declarations valid function decl(arg) { var fn; if (arg) { fn = function expr() { }; } } ok 8951 no-inner-declarations valid function decl(arg) { var fn; if (arg) { fn = function expr() { }; } } ok 8952 no-inner-declarations valid if (test) { var foo; } ok 8953 no-inner-declarations valid if (test) { let x = 1; } ok 8954 no-inner-declarations valid if (test) { const x = 1; } ok 8955 no-inner-declarations valid function doSomething() { while (test) { var foo; } } ok 8956 no-inner-declarations valid var foo; ok 8957 no-inner-declarations valid var foo = 42; ok 8958 no-inner-declarations valid function doSomething() { var foo; } ok 8959 no-inner-declarations valid (function() { var foo; }()); ok 8960 no-inner-declarations valid foo(() => { function bar() { } }); ok 8961 no-inner-declarations valid var fn = () => {var foo;} ok 8962 no-inner-declarations valid var x = {doSomething() {var foo;}} ok 8963 no-inner-declarations invalid if (test) { function doSomething() { } } ok 8964 no-inner-declarations invalid function doSomething() { do { function somethingElse() { } } while (test); } ok 8965 no-inner-declarations invalid (function() { if (test) { function doSomething() { } } }()); ok 8966 no-inner-declarations invalid while (test) { var foo; } ok 8967 no-inner-declarations invalid function doSomething() { if (test) { var foo = 42; } } ok 8968 no-inner-declarations invalid (function() { if (test) { var foo; } }()); ok 8969 no-invalid-regexp valid RegExp('') ok 8970 no-invalid-regexp valid RegExp() ok 8971 no-invalid-regexp valid RegExp('.', 'g') ok 8972 no-invalid-regexp valid new RegExp('.') ok 8973 no-invalid-regexp valid new RegExp ok 8974 no-invalid-regexp valid new RegExp('.', 'im') ok 8975 no-invalid-regexp valid global.RegExp('\\') ok 8976 no-invalid-regexp valid new RegExp('.', y) ok 8977 no-invalid-regexp valid new RegExp('.', 'y') ok 8978 no-invalid-regexp valid new RegExp('.', 'u') ok 8979 no-invalid-regexp valid new RegExp('.', 'yu') ok 8980 no-invalid-regexp valid new RegExp('/', 'yu') ok 8981 no-invalid-regexp valid new RegExp('\/', 'yu') ok 8982 no-invalid-regexp valid new RegExp('.', 'y') ok 8983 no-invalid-regexp valid new RegExp('.', 'u') ok 8984 no-invalid-regexp valid new RegExp('.', 'yu') ok 8985 no-invalid-regexp valid new RegExp('/', 'yu') ok 8986 no-invalid-regexp valid new RegExp('\/', 'yu') ok 8987 no-invalid-regexp valid new RegExp('\\u{65}', 'u') ok 8988 no-invalid-regexp valid new RegExp('[\\u{0}-\\u{1F}]', 'u') ok 8989 no-invalid-regexp valid new RegExp('.', 's') ok 8990 no-invalid-regexp valid new RegExp('(?<=a)b') ok 8991 no-invalid-regexp valid new RegExp('(?<!a)b') ok 8992 no-invalid-regexp valid new RegExp('(?<a>b)\k<a>') ok 8993 no-invalid-regexp valid new RegExp('(?<a>b)\k<a>', 'u') ok 8994 no-invalid-regexp valid new RegExp('\\p{Letter}', 'u') ok 8995 no-invalid-regexp invalid RegExp('['); ok 8996 no-invalid-regexp invalid RegExp('.', 'z'); ok 8997 no-invalid-regexp invalid new RegExp(')'); ok 8998 no-invalid-regexp invalid new RegExp('\\'); ok 8999 no-invalid-this valid console.log(this); z(x => console.log(x, this)); ok 9000 no-invalid-this valid console.log(this); z(x => console.log(x, this)); ok 9001 no-invalid-this valid (function() { console.log(this); z(x => console.log(x, this)); })(); ok 9002 no-invalid-this valid function foo() { console.log(this); z(x => console.log(x, this)); } ok 9003 no-invalid-this valid return function() { console.log(this); z(x => console.log(x, this)); }; ok 9004 no-invalid-this valid var foo = (function() { console.log(this); z(x => console.log(x, this)); }).bar(obj); ok 9005 no-invalid-this valid var obj = {foo: function() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; ok 9006 no-invalid-this valid var obj = {foo() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; ok 9007 no-invalid-this valid var obj = {foo: function() { return function() { console.log(this); z(x => console.log(x, this)); }; }}; ok 9008 no-invalid-this valid obj.foo = function() { return function() { console.log(this); z(x => console.log(x, this)); }; }; ok 9009 no-invalid-this valid class A {static foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9010 no-invalid-this valid "use strict"; class A {static foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9011 no-invalid-this valid /* implied strict mode */ class A {static foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9012 no-invalid-this valid /* modules */ class A {static foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9013 no-invalid-this valid function Foo() { console.log(this); z(x => console.log(x, this)); } ok 9014 no-invalid-this valid "use strict"; function Foo() { console.log(this); z(x => console.log(x, this)); } ok 9015 no-invalid-this valid /* implied strict mode */ function Foo() { console.log(this); z(x => console.log(x, this)); } ok 9016 no-invalid-this valid /* modules */ function Foo() { console.log(this); z(x => console.log(x, this)); } ok 9017 no-invalid-this valid var Foo = function Foo() { console.log(this); z(x => console.log(x, this)); }; ok 9018 no-invalid-this valid "use strict"; var Foo = function Foo() { console.log(this); z(x => console.log(x, this)); }; ok 9019 no-invalid-this valid /* implied strict mode */ var Foo = function Foo() { console.log(this); z(x => console.log(x, this)); }; ok 9020 no-invalid-this valid /* modules */ var Foo = function Foo() { console.log(this); z(x => console.log(x, this)); }; ok 9021 no-invalid-this valid class A {constructor() { console.log(this); z(x => console.log(x, this)); }}; ok 9022 no-invalid-this valid "use strict"; class A {constructor() { console.log(this); z(x => console.log(x, this)); }}; ok 9023 no-invalid-this valid /* implied strict mode */ class A {constructor() { console.log(this); z(x => console.log(x, this)); }}; ok 9024 no-invalid-this valid /* modules */ class A {constructor() { console.log(this); z(x => console.log(x, this)); }}; ok 9025 no-invalid-this valid var obj = {foo: function() { console.log(this); z(x => console.log(x, this)); }}; ok 9026 no-invalid-this valid "use strict"; var obj = {foo: function() { console.log(this); z(x => console.log(x, this)); }}; ok 9027 no-invalid-this valid /* implied strict mode */ var obj = {foo: function() { console.log(this); z(x => console.log(x, this)); }}; ok 9028 no-invalid-this valid /* modules */ var obj = {foo: function() { console.log(this); z(x => console.log(x, this)); }}; ok 9029 no-invalid-this valid var obj = {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9030 no-invalid-this valid "use strict"; var obj = {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9031 no-invalid-this valid /* implied strict mode */ var obj = {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9032 no-invalid-this valid /* modules */ var obj = {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9033 no-invalid-this valid var obj = {foo: foo || function() { console.log(this); z(x => console.log(x, this)); }}; ok 9034 no-invalid-this valid "use strict"; var obj = {foo: foo || function() { console.log(this); z(x => console.log(x, this)); }}; ok 9035 no-invalid-this valid /* implied strict mode */ var obj = {foo: foo || function() { console.log(this); z(x => console.log(x, this)); }}; ok 9036 no-invalid-this valid /* modules */ var obj = {foo: foo || function() { console.log(this); z(x => console.log(x, this)); }}; ok 9037 no-invalid-this valid var obj = {foo: hasNative ? foo : function() { console.log(this); z(x => console.log(x, this)); }}; ok 9038 no-invalid-this valid "use strict"; var obj = {foo: hasNative ? foo : function() { console.log(this); z(x => console.log(x, this)); }}; ok 9039 no-invalid-this valid /* implied strict mode */ var obj = {foo: hasNative ? foo : function() { console.log(this); z(x => console.log(x, this)); }}; ok 9040 no-invalid-this valid /* modules */ var obj = {foo: hasNative ? foo : function() { console.log(this); z(x => console.log(x, this)); }}; ok 9041 no-invalid-this valid var obj = {foo: (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })()}; ok 9042 no-invalid-this valid "use strict"; var obj = {foo: (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })()}; ok 9043 no-invalid-this valid /* implied strict mode */ var obj = {foo: (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })()}; ok 9044 no-invalid-this valid /* modules */ var obj = {foo: (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })()}; ok 9045 no-invalid-this valid Object.defineProperty(obj, "foo", {value: function() { console.log(this); z(x => console.log(x, this)); }}) ok 9046 no-invalid-this valid "use strict"; Object.defineProperty(obj, "foo", {value: function() { console.log(this); z(x => console.log(x, this)); }}) ok 9047 no-invalid-this valid /* implied strict mode */ Object.defineProperty(obj, "foo", {value: function() { console.log(this); z(x => console.log(x, this)); }}) ok 9048 no-invalid-this valid /* modules */ Object.defineProperty(obj, "foo", {value: function() { console.log(this); z(x => console.log(x, this)); }}) ok 9049 no-invalid-this valid Object.defineProperties(obj, {foo: {value: function() { console.log(this); z(x => console.log(x, this)); }}}) ok 9050 no-invalid-this valid "use strict"; Object.defineProperties(obj, {foo: {value: function() { console.log(this); z(x => console.log(x, this)); }}}) ok 9051 no-invalid-this valid /* implied strict mode */ Object.defineProperties(obj, {foo: {value: function() { console.log(this); z(x => console.log(x, this)); }}}) ok 9052 no-invalid-this valid /* modules */ Object.defineProperties(obj, {foo: {value: function() { console.log(this); z(x => console.log(x, this)); }}}) ok 9053 no-invalid-this valid obj.foo = function() { console.log(this); z(x => console.log(x, this)); }; ok 9054 no-invalid-this valid "use strict"; obj.foo = function() { console.log(this); z(x => console.log(x, this)); }; ok 9055 no-invalid-this valid /* implied strict mode */ obj.foo = function() { console.log(this); z(x => console.log(x, this)); }; ok 9056 no-invalid-this valid /* modules */ obj.foo = function() { console.log(this); z(x => console.log(x, this)); }; ok 9057 no-invalid-this valid obj.foo = foo || function() { console.log(this); z(x => console.log(x, this)); }; ok 9058 no-invalid-this valid "use strict"; obj.foo = foo || function() { console.log(this); z(x => console.log(x, this)); }; ok 9059 no-invalid-this valid /* implied strict mode */ obj.foo = foo || function() { console.log(this); z(x => console.log(x, this)); }; ok 9060 no-invalid-this valid /* modules */ obj.foo = foo || function() { console.log(this); z(x => console.log(x, this)); }; ok 9061 no-invalid-this valid obj.foo = foo ? bar : function() { console.log(this); z(x => console.log(x, this)); }; ok 9062 no-invalid-this valid "use strict"; obj.foo = foo ? bar : function() { console.log(this); z(x => console.log(x, this)); }; ok 9063 no-invalid-this valid /* implied strict mode */ obj.foo = foo ? bar : function() { console.log(this); z(x => console.log(x, this)); }; ok 9064 no-invalid-this valid /* modules */ obj.foo = foo ? bar : function() { console.log(this); z(x => console.log(x, this)); }; ok 9065 no-invalid-this valid obj.foo = (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })(); ok 9066 no-invalid-this valid "use strict"; obj.foo = (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })(); ok 9067 no-invalid-this valid /* implied strict mode */ obj.foo = (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })(); ok 9068 no-invalid-this valid /* modules */ obj.foo = (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })(); ok 9069 no-invalid-this valid obj.foo = (() => function() { console.log(this); z(x => console.log(x, this)); })(); ok 9070 no-invalid-this valid "use strict"; obj.foo = (() => function() { console.log(this); z(x => console.log(x, this)); })(); ok 9071 no-invalid-this valid /* implied strict mode */ obj.foo = (() => function() { console.log(this); z(x => console.log(x, this)); })(); ok 9072 no-invalid-this valid /* modules */ obj.foo = (() => function() { console.log(this); z(x => console.log(x, this)); })(); ok 9073 no-invalid-this valid obj.foo = (function() { return () => { console.log(this); z(x => console.log(x, this)); }; })(); ok 9074 no-invalid-this valid obj.foo = (() => () => { console.log(this); z(x => console.log(x, this)); })(); ok 9075 no-invalid-this valid class A {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9076 no-invalid-this valid "use strict"; class A {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9077 no-invalid-this valid /* implied strict mode */ class A {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9078 no-invalid-this valid /* modules */ class A {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 9079 no-invalid-this valid var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(obj); ok 9080 no-invalid-this valid "use strict"; var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(obj); ok 9081 no-invalid-this valid /* implied strict mode */ var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(obj); ok 9082 no-invalid-this valid /* modules */ var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(obj); ok 9083 no-invalid-this valid var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(null); ok 9084 no-invalid-this valid (function() { console.log(this); z(x => console.log(x, this)); }).call(obj); ok 9085 no-invalid-this valid "use strict"; (function() { console.log(this); z(x => console.log(x, this)); }).call(obj); ok 9086 no-invalid-this valid /* implied strict mode */ (function() { console.log(this); z(x => console.log(x, this)); }).call(obj); ok 9087 no-invalid-this valid /* modules */ (function() { console.log(this); z(x => console.log(x, this)); }).call(obj); ok 9088 no-invalid-this valid (function() { console.log(this); z(x => console.log(x, this)); }).call(undefined); ok 9089 no-invalid-this valid (function() { console.log(this); z(x => console.log(x, this)); }).apply(obj); ok 9090 no-invalid-this valid "use strict"; (function() { console.log(this); z(x => console.log(x, this)); }).apply(obj); ok 9091 no-invalid-this valid /* implied strict mode */ (function() { console.log(this); z(x => console.log(x, this)); }).apply(obj); ok 9092 no-invalid-this valid /* modules */ (function() { console.log(this); z(x => console.log(x, this)); }).apply(obj); ok 9093 no-invalid-this valid (function() { console.log(this); z(x => console.log(x, this)); }).apply(void 0); ok 9094 no-invalid-this valid Reflect.apply(function() { console.log(this); z(x => console.log(x, this)); }, obj, []); ok 9095 no-invalid-this valid "use strict"; Reflect.apply(function() { console.log(this); z(x => console.log(x, this)); }, obj, []); ok 9096 no-invalid-this valid /* implied strict mode */ Reflect.apply(function() { console.log(this); z(x => console.log(x, this)); }, obj, []); ok 9097 no-invalid-this valid /* modules */ Reflect.apply(function() { console.log(this); z(x => console.log(x, this)); }, obj, []); ok 9098 no-invalid-this valid Array.from([], function() { console.log(this); z(x => console.log(x, this)); }); ok 9099 no-invalid-this valid foo.every(function() { console.log(this); z(x => console.log(x, this)); }); ok 9100 no-invalid-this valid foo.filter(function() { console.log(this); z(x => console.log(x, this)); }); ok 9101 no-invalid-this valid foo.find(function() { console.log(this); z(x => console.log(x, this)); }); ok 9102 no-invalid-this valid foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }); ok 9103 no-invalid-this valid foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }); ok 9104 no-invalid-this valid foo.map(function() { console.log(this); z(x => console.log(x, this)); }); ok 9105 no-invalid-this valid foo.some(function() { console.log(this); z(x => console.log(x, this)); }); ok 9106 no-invalid-this valid Array.from([], function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9107 no-invalid-this valid "use strict"; Array.from([], function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9108 no-invalid-this valid /* implied strict mode */ Array.from([], function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9109 no-invalid-this valid /* modules */ Array.from([], function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9110 no-invalid-this valid foo.every(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9111 no-invalid-this valid "use strict"; foo.every(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9112 no-invalid-this valid /* implied strict mode */ foo.every(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9113 no-invalid-this valid /* modules */ foo.every(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9114 no-invalid-this valid foo.filter(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9115 no-invalid-this valid "use strict"; foo.filter(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9116 no-invalid-this valid /* implied strict mode */ foo.filter(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9117 no-invalid-this valid /* modules */ foo.filter(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9118 no-invalid-this valid foo.find(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9119 no-invalid-this valid "use strict"; foo.find(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9120 no-invalid-this valid /* implied strict mode */ foo.find(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9121 no-invalid-this valid /* modules */ foo.find(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9122 no-invalid-this valid foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9123 no-invalid-this valid "use strict"; foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9124 no-invalid-this valid /* implied strict mode */ foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9125 no-invalid-this valid /* modules */ foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9126 no-invalid-this valid foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9127 no-invalid-this valid "use strict"; foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9128 no-invalid-this valid /* implied strict mode */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9129 no-invalid-this valid /* modules */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9130 no-invalid-this valid foo.map(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9131 no-invalid-this valid "use strict"; foo.map(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9132 no-invalid-this valid /* implied strict mode */ foo.map(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9133 no-invalid-this valid /* modules */ foo.map(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9134 no-invalid-this valid foo.some(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9135 no-invalid-this valid "use strict"; foo.some(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9136 no-invalid-this valid /* implied strict mode */ foo.some(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9137 no-invalid-this valid /* modules */ foo.some(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 9138 no-invalid-this valid foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, null); ok 9139 no-invalid-this valid /** @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 9140 no-invalid-this valid "use strict"; /** @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 9141 no-invalid-this valid /* implied strict mode */ /** @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 9142 no-invalid-this valid /* modules */ /** @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 9143 no-invalid-this valid /** * @returns {void} * @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 9144 no-invalid-this valid "use strict"; /** * @returns {void} * @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 9145 no-invalid-this valid /* implied strict mode */ /** * @returns {void} * @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 9146 no-invalid-this valid /* modules */ /** * @returns {void} * @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 9147 no-invalid-this valid /** @returns {void} */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 9148 no-invalid-this valid /** @this Obj */ foo(function() { console.log(this); z(x => console.log(x, this)); }); ok 9149 no-invalid-this valid foo(/* @this Obj */ function() { console.log(this); z(x => console.log(x, this)); }); ok 9150 no-invalid-this valid "use strict"; foo(/* @this Obj */ function() { console.log(this); z(x => console.log(x, this)); }); ok 9151 no-invalid-this valid /* implied strict mode */ foo(/* @this Obj */ function() { console.log(this); z(x => console.log(x, this)); }); ok 9152 no-invalid-this valid /* modules */ foo(/* @this Obj */ function() { console.log(this); z(x => console.log(x, this)); }); ok 9153 no-invalid-this valid function foo() { console.log(this); z(x => console.log(x, this)); } ok 9154 no-invalid-this valid function foo() { /** @this Obj*/ return function bar() { console.log(this); z(x => console.log(x, this)); }; } ok 9155 no-invalid-this valid "use strict"; function foo() { /** @this Obj*/ return function bar() { console.log(this); z(x => console.log(x, this)); }; } ok 9156 no-invalid-this valid /* implied strict mode */ function foo() { /** @this Obj*/ return function bar() { console.log(this); z(x => console.log(x, this)); }; } ok 9157 no-invalid-this valid /* modules */ function foo() { /** @this Obj*/ return function bar() { console.log(this); z(x => console.log(x, this)); }; } ok 9158 no-invalid-this valid var Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 9159 no-invalid-this valid "use strict"; var Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 9160 no-invalid-this valid /* implied strict mode */ var Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 9161 no-invalid-this valid /* modules */ var Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 9162 no-invalid-this valid var func = function() { console.log(this); z(x => console.log(x, this)); } ok 9163 no-invalid-this valid Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 9164 no-invalid-this valid "use strict"; Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 9165 no-invalid-this valid /* implied strict mode */ Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 9166 no-invalid-this valid /* modules */ Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 9167 no-invalid-this valid func = function() { console.log(this); z(x => console.log(x, this)); } ok 9168 no-invalid-this valid function foo(Ctor = function() { console.log(this); z(x => console.log(x, this)); }) {} ok 9169 no-invalid-this valid "use strict"; function foo(Ctor = function() { console.log(this); z(x => console.log(x, this)); }) {} ok 9170 no-invalid-this valid /* implied strict mode */ function foo(Ctor = function() { console.log(this); z(x => console.log(x, this)); }) {} ok 9171 no-invalid-this valid /* modules */ function foo(Ctor = function() { console.log(this); z(x => console.log(x, this)); }) {} ok 9172 no-invalid-this valid function foo(func = function() { console.log(this); z(x => console.log(x, this)); }) {} ok 9173 no-invalid-this valid [obj.method = function() { console.log(this); z(x => console.log(x, this)); }] = a ok 9174 no-invalid-this valid "use strict"; [obj.method = function() { console.log(this); z(x => console.log(x, this)); }] = a ok 9175 no-invalid-this valid /* implied strict mode */ [obj.method = function() { console.log(this); z(x => console.log(x, this)); }] = a ok 9176 no-invalid-this valid /* modules */ [obj.method = function() { console.log(this); z(x => console.log(x, this)); }] = a ok 9177 no-invalid-this valid [func = function() { console.log(this); z(x => console.log(x, this)); }] = a ok 9178 no-invalid-this invalid "use strict"; console.log(this); z(x => console.log(x, this)); /* should error */ ok 9179 no-invalid-this invalid /* implied strict mode */ console.log(this); z(x => console.log(x, this)); /* should error */ ok 9180 no-invalid-this invalid /* modules */ console.log(this); z(x => console.log(x, this)); /* should error */ ok 9181 no-invalid-this invalid "use strict"; console.log(this); z(x => console.log(x, this)); /* should error */ ok 9182 no-invalid-this invalid /* implied strict mode */ console.log(this); z(x => console.log(x, this)); /* should error */ ok 9183 no-invalid-this invalid /* modules */ console.log(this); z(x => console.log(x, this)); /* should error */ ok 9184 no-invalid-this invalid "use strict"; (function() { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 9185 no-invalid-this invalid /* implied strict mode */ (function() { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 9186 no-invalid-this invalid /* modules */ (function() { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 9187 no-invalid-this invalid "use strict"; function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9188 no-invalid-this invalid /* implied strict mode */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9189 no-invalid-this invalid /* modules */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9190 no-invalid-this invalid function foo() { "use strict"; console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9191 no-invalid-this invalid "use strict"; function foo() { "use strict"; console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9192 no-invalid-this invalid /* implied strict mode */ function foo() { "use strict"; console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9193 no-invalid-this invalid /* modules */ function foo() { "use strict"; console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9194 no-invalid-this invalid "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; /* should error */ ok 9195 no-invalid-this invalid /* implied strict mode */ return function() { console.log(this); z(x => console.log(x, this)); }; /* should error */ ok 9196 no-invalid-this invalid "use strict"; var foo = (function() { console.log(this); z(x => console.log(x, this)); }).bar(obj); /* should error */ ok 9197 no-invalid-this invalid /* implied strict mode */ var foo = (function() { console.log(this); z(x => console.log(x, this)); }).bar(obj); /* should error */ ok 9198 no-invalid-this invalid /* modules */ var foo = (function() { console.log(this); z(x => console.log(x, this)); }).bar(obj); /* should error */ ok 9199 no-invalid-this invalid "use strict"; var obj = {foo: function() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 9200 no-invalid-this invalid /* implied strict mode */ var obj = {foo: function() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 9201 no-invalid-this invalid /* modules */ var obj = {foo: function() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 9202 no-invalid-this invalid "use strict"; var obj = {foo() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 9203 no-invalid-this invalid /* implied strict mode */ var obj = {foo() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 9204 no-invalid-this invalid /* modules */ var obj = {foo() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 9205 no-invalid-this invalid "use strict"; var obj = {foo: function() { return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 9206 no-invalid-this invalid /* implied strict mode */ var obj = {foo: function() { return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 9207 no-invalid-this invalid /* modules */ var obj = {foo: function() { return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 9208 no-invalid-this invalid var obj = {foo: function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 9209 no-invalid-this invalid "use strict"; var obj = {foo: function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 9210 no-invalid-this invalid /* implied strict mode */ var obj = {foo: function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 9211 no-invalid-this invalid /* modules */ var obj = {foo: function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 9212 no-invalid-this invalid "use strict"; obj.foo = function() { return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 9213 no-invalid-this invalid /* implied strict mode */ obj.foo = function() { return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 9214 no-invalid-this invalid /* modules */ obj.foo = function() { return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 9215 no-invalid-this invalid obj.foo = function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 9216 no-invalid-this invalid "use strict"; obj.foo = function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 9217 no-invalid-this invalid /* implied strict mode */ obj.foo = function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 9218 no-invalid-this invalid /* modules */ obj.foo = function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 9219 no-invalid-this invalid class A { foo() { return function() { console.log(this); z(x => console.log(x, this)); }; } } /* should error */ ok 9220 no-invalid-this invalid "use strict"; class A { foo() { return function() { console.log(this); z(x => console.log(x, this)); }; } } /* should error */ ok 9221 no-invalid-this invalid /* implied strict mode */ class A { foo() { return function() { console.log(this); z(x => console.log(x, this)); }; } } /* should error */ ok 9222 no-invalid-this invalid /* modules */ class A { foo() { return function() { console.log(this); z(x => console.log(x, this)); }; } } /* should error */ ok 9223 no-invalid-this invalid "use strict"; obj.foo = (function() { return () => { console.log(this); z(x => console.log(x, this)); }; })(); /* should error */ ok 9224 no-invalid-this invalid /* implied strict mode */ obj.foo = (function() { return () => { console.log(this); z(x => console.log(x, this)); }; })(); /* should error */ ok 9225 no-invalid-this invalid /* modules */ obj.foo = (function() { return () => { console.log(this); z(x => console.log(x, this)); }; })(); /* should error */ ok 9226 no-invalid-this invalid "use strict"; obj.foo = (() => () => { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 9227 no-invalid-this invalid /* implied strict mode */ obj.foo = (() => () => { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 9228 no-invalid-this invalid /* modules */ obj.foo = (() => () => { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 9229 no-invalid-this invalid "use strict"; var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(null); /* should error */ ok 9230 no-invalid-this invalid /* implied strict mode */ var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(null); /* should error */ ok 9231 no-invalid-this invalid /* modules */ var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(null); /* should error */ ok 9232 no-invalid-this invalid "use strict"; (function() { console.log(this); z(x => console.log(x, this)); }).call(undefined); /* should error */ ok 9233 no-invalid-this invalid /* implied strict mode */ (function() { console.log(this); z(x => console.log(x, this)); }).call(undefined); /* should error */ ok 9234 no-invalid-this invalid /* modules */ (function() { console.log(this); z(x => console.log(x, this)); }).call(undefined); /* should error */ ok 9235 no-invalid-this invalid "use strict"; (function() { console.log(this); z(x => console.log(x, this)); }).apply(void 0); /* should error */ ok 9236 no-invalid-this invalid /* implied strict mode */ (function() { console.log(this); z(x => console.log(x, this)); }).apply(void 0); /* should error */ ok 9237 no-invalid-this invalid /* modules */ (function() { console.log(this); z(x => console.log(x, this)); }).apply(void 0); /* should error */ ok 9238 no-invalid-this invalid "use strict"; Array.from([], function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9239 no-invalid-this invalid /* implied strict mode */ Array.from([], function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9240 no-invalid-this invalid /* modules */ Array.from([], function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9241 no-invalid-this invalid "use strict"; foo.every(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9242 no-invalid-this invalid /* implied strict mode */ foo.every(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9243 no-invalid-this invalid /* modules */ foo.every(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9244 no-invalid-this invalid "use strict"; foo.filter(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9245 no-invalid-this invalid /* implied strict mode */ foo.filter(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9246 no-invalid-this invalid /* modules */ foo.filter(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9247 no-invalid-this invalid "use strict"; foo.find(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9248 no-invalid-this invalid /* implied strict mode */ foo.find(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9249 no-invalid-this invalid /* modules */ foo.find(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9250 no-invalid-this invalid "use strict"; foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9251 no-invalid-this invalid /* implied strict mode */ foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9252 no-invalid-this invalid /* modules */ foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9253 no-invalid-this invalid "use strict"; foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9254 no-invalid-this invalid /* implied strict mode */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9255 no-invalid-this invalid /* modules */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9256 no-invalid-this invalid "use strict"; foo.map(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9257 no-invalid-this invalid /* implied strict mode */ foo.map(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9258 no-invalid-this invalid /* modules */ foo.map(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9259 no-invalid-this invalid "use strict"; foo.some(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9260 no-invalid-this invalid /* implied strict mode */ foo.some(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9261 no-invalid-this invalid /* modules */ foo.some(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9262 no-invalid-this invalid "use strict"; foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, null); /* should error */ ok 9263 no-invalid-this invalid /* implied strict mode */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, null); /* should error */ ok 9264 no-invalid-this invalid /* modules */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, null); /* should error */ ok 9265 no-invalid-this invalid "use strict"; /** @returns {void} */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9266 no-invalid-this invalid /* implied strict mode */ /** @returns {void} */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9267 no-invalid-this invalid /* modules */ /** @returns {void} */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9268 no-invalid-this invalid "use strict"; /** @this Obj */ foo(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9269 no-invalid-this invalid /* implied strict mode */ /** @this Obj */ foo(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9270 no-invalid-this invalid /* modules */ /** @this Obj */ foo(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 9271 no-invalid-this invalid "use strict"; function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9272 no-invalid-this invalid /* implied strict mode */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9273 no-invalid-this invalid /* modules */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9274 no-invalid-this invalid "use strict"; var func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9275 no-invalid-this invalid /* implied strict mode */ var func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9276 no-invalid-this invalid /* modules */ var func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9277 no-invalid-this invalid "use strict"; func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9278 no-invalid-this invalid /* implied strict mode */ func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9279 no-invalid-this invalid /* modules */ func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 9280 no-invalid-this invalid "use strict"; function foo(func = function() { console.log(this); z(x => console.log(x, this)); }) {} /* should error */ ok 9281 no-invalid-this invalid /* implied strict mode */ function foo(func = function() { console.log(this); z(x => console.log(x, this)); }) {} /* should error */ ok 9282 no-invalid-this invalid /* modules */ function foo(func = function() { console.log(this); z(x => console.log(x, this)); }) {} /* should error */ ok 9283 no-invalid-this invalid "use strict"; [func = function() { console.log(this); z(x => console.log(x, this)); }] = a /* should error */ ok 9284 no-invalid-this invalid /* implied strict mode */ [func = function() { console.log(this); z(x => console.log(x, this)); }] = a /* should error */ ok 9285 no-invalid-this invalid /* modules */ [func = function() { console.log(this); z(x => console.log(x, this)); }] = a /* should error */ ok 9286 no-irregular-whitespace valid '\u000B'; ok 9287 no-irregular-whitespace valid '\u000C'; ok 9288 no-irregular-whitespace valid '\u0085'; ok 9289 no-irregular-whitespace valid '\u00A0'; ok 9290 no-irregular-whitespace valid '\u180E'; ok 9291 no-irregular-whitespace valid '\ufeff'; ok 9292 no-irregular-whitespace valid '\u2000'; ok 9293 no-irregular-whitespace valid '\u2001'; ok 9294 no-irregular-whitespace valid '\u2002'; ok 9295 no-irregular-whitespace valid '\u2003'; ok 9296 no-irregular-whitespace valid '\u2004'; ok 9297 no-irregular-whitespace valid '\u2005'; ok 9298 no-irregular-whitespace valid '\u2006'; ok 9299 no-irregular-whitespace valid '\u2007'; ok 9300 no-irregular-whitespace valid '\u2008'; ok 9301 no-irregular-whitespace valid '\u2009'; ok 9302 no-irregular-whitespace valid '\u200A'; ok 9303 no-irregular-whitespace valid '\u200B'; ok 9304 no-irregular-whitespace valid '\u2028'; ok 9305 no-irregular-whitespace valid '\u2029'; ok 9306 no-irregular-whitespace valid '\u202F'; ok 9307 no-irregular-whitespace valid '\u205f'; ok 9308 no-irregular-whitespace valid '\u3000'; ok 9309 no-irregular-whitespace valid ' '; ok 9310 no-irregular-whitespace valid ' '; ok 9311 no-irregular-whitespace valid '…'; ok 9312 no-irregular-whitespace valid ' '; ok 9313 no-irregular-whitespace valid '᠎'; ok 9314 no-irregular-whitespace valid ''; ok 9315 no-irregular-whitespace valid ' '; ok 9316 no-irregular-whitespace valid ' '; ok 9317 no-irregular-whitespace valid ' '; ok 9318 no-irregular-whitespace valid ' '; ok 9319 no-irregular-whitespace valid ' '; ok 9320 no-irregular-whitespace valid ' '; ok 9321 no-irregular-whitespace valid ' '; ok 9322 no-irregular-whitespace valid ' '; ok 9323 no-irregular-whitespace valid ' '; ok 9324 no-irregular-whitespace valid ' '; ok 9325 no-irregular-whitespace valid ' '; ok 9326 no-irregular-whitespace valid '​'; ok 9327 no-irregular-whitespace valid '\
'; ok 9328 no-irregular-whitespace valid '\
'; ok 9329 no-irregular-whitespace valid ' '; ok 9330 no-irregular-whitespace valid ' '; ok 9331 no-irregular-whitespace valid ' '; ok 9332 no-irregular-whitespace valid // ok 9333 no-irregular-whitespace valid // ok 9334 no-irregular-whitespace valid // … ok 9335 no-irregular-whitespace valid //   ok 9336 no-irregular-whitespace valid // ᠎ ok 9337 no-irregular-whitespace valid //  ok 9338 no-irregular-whitespace valid //   ok 9339 no-irregular-whitespace valid //   ok 9340 no-irregular-whitespace valid //   ok 9341 no-irregular-whitespace valid //   ok 9342 no-irregular-whitespace valid //   ok 9343 no-irregular-whitespace valid //   ok 9344 no-irregular-whitespace valid //   ok 9345 no-irregular-whitespace valid //   ok 9346 no-irregular-whitespace valid //   ok 9347 no-irregular-whitespace valid //   ok 9348 no-irregular-whitespace valid //   ok 9349 no-irregular-whitespace valid // ​ ok 9350 no-irregular-whitespace valid //   ok 9351 no-irregular-whitespace valid //   ok 9352 no-irregular-whitespace valid //   ok 9353 no-irregular-whitespace valid /* */ ok 9354 no-irregular-whitespace valid /* */ ok 9355 no-irregular-whitespace valid /* … */ ok 9356 no-irregular-whitespace valid /*   */ ok 9357 no-irregular-whitespace valid /* ᠎ */ ok 9358 no-irregular-whitespace valid /*  */ ok 9359 no-irregular-whitespace valid /*   */ ok 9360 no-irregular-whitespace valid /*   */ ok 9361 no-irregular-whitespace valid /*   */ ok 9362 no-irregular-whitespace valid /*   */ ok 9363 no-irregular-whitespace valid /*   */ ok 9364 no-irregular-whitespace valid /*   */ ok 9365 no-irregular-whitespace valid /*   */ ok 9366 no-irregular-whitespace valid /*   */ ok 9367 no-irregular-whitespace valid /*   */ ok 9368 no-irregular-whitespace valid /*   */ ok 9369 no-irregular-whitespace valid /*   */ ok 9370 no-irregular-whitespace valid /* ​ */ ok 9371 no-irregular-whitespace valid /* 
 */ ok 9372 no-irregular-whitespace valid /* 
 */ ok 9373 no-irregular-whitespace valid /*   */ ok 9374 no-irregular-whitespace valid /*   */ ok 9375 no-irregular-whitespace valid /*   */ ok 9376 no-irregular-whitespace valid / / ok 9377 no-irregular-whitespace valid / / ok 9378 no-irregular-whitespace valid /…/ ok 9379 no-irregular-whitespace valid / / ok 9380 no-irregular-whitespace valid /᠎/ ok 9381 no-irregular-whitespace valid // ok 9382 no-irregular-whitespace valid / / ok 9383 no-irregular-whitespace valid / / ok 9384 no-irregular-whitespace valid / / ok 9385 no-irregular-whitespace valid / / ok 9386 no-irregular-whitespace valid / / ok 9387 no-irregular-whitespace valid / / ok 9388 no-irregular-whitespace valid / / ok 9389 no-irregular-whitespace valid / / ok 9390 no-irregular-whitespace valid / / ok 9391 no-irregular-whitespace valid / / ok 9392 no-irregular-whitespace valid / / ok 9393 no-irregular-whitespace valid /​/ ok 9394 no-irregular-whitespace valid / / ok 9395 no-irregular-whitespace valid / / ok 9396 no-irregular-whitespace valid / / ok 9397 no-irregular-whitespace valid ` ` ok 9398 no-irregular-whitespace valid ` ` ok 9399 no-irregular-whitespace valid `…` ok 9400 no-irregular-whitespace valid ` ` ok 9401 no-irregular-whitespace valid `᠎` ok 9402 no-irregular-whitespace valid `` ok 9403 no-irregular-whitespace valid ` ` ok 9404 no-irregular-whitespace valid ` ` ok 9405 no-irregular-whitespace valid ` ` ok 9406 no-irregular-whitespace valid ` ` ok 9407 no-irregular-whitespace valid ` ` ok 9408 no-irregular-whitespace valid ` ` ok 9409 no-irregular-whitespace valid ` ` ok 9410 no-irregular-whitespace valid ` ` ok 9411 no-irregular-whitespace valid ` ` ok 9412 no-irregular-whitespace valid ` ` ok 9413 no-irregular-whitespace valid ` ` ok 9414 no-irregular-whitespace valid `​` ok 9415 no-irregular-whitespace valid ` ` ok 9416 no-irregular-whitespace valid ` ` ok 9417 no-irregular-whitespace valid ` ` ok 9418 no-irregular-whitespace valid console.log('hello BOM'); ok 9419 no-irregular-whitespace invalid var any = 'thing'; ok 9420 no-irregular-whitespace invalid var any = 'thing'; ok 9421 no-irregular-whitespace invalid var any   = 'thing'; ok 9422 no-irregular-whitespace invalid var any  = 'thing'; ok 9423 no-irregular-whitespace invalid var any   = 'thing'; ok 9424 no-irregular-whitespace invalid var any   = 'thing'; ok 9425 no-irregular-whitespace invalid var any   = 'thing'; ok 9426 no-irregular-whitespace invalid var any   = 'thing'; ok 9427 no-irregular-whitespace invalid var any   = 'thing'; ok 9428 no-irregular-whitespace invalid var any   = 'thing'; ok 9429 no-irregular-whitespace invalid var any   = 'thing'; ok 9430 no-irregular-whitespace invalid var any   = 'thing'; ok 9431 no-irregular-whitespace invalid var any   = 'thing'; ok 9432 no-irregular-whitespace invalid var any   = 'thing'; ok 9433 no-irregular-whitespace invalid var any   = 'thing'; ok 9434 no-irregular-whitespace invalid var any 
 = 'thing'; ok 9435 no-irregular-whitespace invalid var any 
 = 'thing'; ok 9436 no-irregular-whitespace invalid var any   = 'thing'; ok 9437 no-irregular-whitespace invalid var any   = 'thing'; ok 9438 no-irregular-whitespace invalid var any   = 'thing'; ok 9439 no-irregular-whitespace invalid var a = 'b',
c = 'd', e = 'f'
 ok 9440 no-irregular-whitespace invalid var any   = 'thing', other   = 'thing'; var third   = 'thing'; ok 9441 no-irregular-whitespace invalid // ok 9442 no-irregular-whitespace invalid // ok 9443 no-irregular-whitespace invalid // … ok 9444 no-irregular-whitespace invalid //   ok 9445 no-irregular-whitespace invalid // ᠎ ok 9446 no-irregular-whitespace invalid //  ok 9447 no-irregular-whitespace invalid //   ok 9448 no-irregular-whitespace invalid //   ok 9449 no-irregular-whitespace invalid //   ok 9450 no-irregular-whitespace invalid //   ok 9451 no-irregular-whitespace invalid //   ok 9452 no-irregular-whitespace invalid //   ok 9453 no-irregular-whitespace invalid //   ok 9454 no-irregular-whitespace invalid //   ok 9455 no-irregular-whitespace invalid //   ok 9456 no-irregular-whitespace invalid //   ok 9457 no-irregular-whitespace invalid //   ok 9458 no-irregular-whitespace invalid // ​ ok 9459 no-irregular-whitespace invalid //   ok 9460 no-irregular-whitespace invalid //   ok 9461 no-irregular-whitespace invalid //   ok 9462 no-irregular-whitespace invalid /* */ ok 9463 no-irregular-whitespace invalid /* */ ok 9464 no-irregular-whitespace invalid /* … */ ok 9465 no-irregular-whitespace invalid /*   */ ok 9466 no-irregular-whitespace invalid /* ᠎ */ ok 9467 no-irregular-whitespace invalid /*  */ ok 9468 no-irregular-whitespace invalid /*   */ ok 9469 no-irregular-whitespace invalid /*   */ ok 9470 no-irregular-whitespace invalid /*   */ ok 9471 no-irregular-whitespace invalid /*   */ ok 9472 no-irregular-whitespace invalid /*   */ ok 9473 no-irregular-whitespace invalid /*   */ ok 9474 no-irregular-whitespace invalid /*   */ ok 9475 no-irregular-whitespace invalid /*   */ ok 9476 no-irregular-whitespace invalid /*   */ ok 9477 no-irregular-whitespace invalid /*   */ ok 9478 no-irregular-whitespace invalid /*   */ ok 9479 no-irregular-whitespace invalid /* ​ */ ok 9480 no-irregular-whitespace invalid /* 
 */ ok 9481 no-irregular-whitespace invalid /* 
 */ ok 9482 no-irregular-whitespace invalid /*   */ ok 9483 no-irregular-whitespace invalid /*   */ ok 9484 no-irregular-whitespace invalid /*   */ ok 9485 no-irregular-whitespace invalid var any = / /, other = / /; ok 9486 no-irregular-whitespace invalid var any = ' ', other = ' '; ok 9487 no-irregular-whitespace invalid var any = ` `, other = ` `; ok 9488 no-irregular-whitespace invalid `something ${  10} another thing` ok 9489 no-iterator valid var a = test[__iterator__]; ok 9490 no-iterator valid var __iterator__ = null; ok 9491 no-iterator invalid var a = test.__iterator__; ok 9492 no-iterator invalid Foo.prototype.__iterator__ = function() {}; ok 9493 no-iterator invalid var a = test['__iterator__']; ok 9494 no-label-var valid function bar() { q: for(;;) { break q; } } function foo () { var q = t; } ok 9495 no-label-var valid function bar() { var x = foo; q: for(;;) { break q; } } ok 9496 no-label-var invalid var x = foo; function bar() { x: for(;;) { break x; } } ok 9497 no-label-var invalid function bar() { var x = foo; x: for(;;) { break x; } } ok 9498 no-label-var invalid function bar(x) { x: for(;;) { break x; } } ok 9499 no-labels valid var f = { label: foo ()} ok 9500 no-labels valid while (true) {} ok 9501 no-labels valid while (true) { break; } ok 9502 no-labels valid while (true) { continue; } ok 9503 no-labels valid A: while (a) { break A; } ok 9504 no-labels valid A: do { if (b) { break A; } } while (a); ok 9505 no-labels valid A: for (var a in obj) { for (;;) { switch (a) { case 0: continue A; } } } ok 9506 no-labels valid A: switch (a) { case 0: break A; } ok 9507 no-labels invalid label: while(true) {} ok 9508 no-labels invalid label: while (true) { break label; } ok 9509 no-labels invalid label: while (true) { continue label; } ok 9510 no-labels invalid A: var foo = 0; ok 9511 no-labels invalid A: break A; ok 9512 no-labels invalid A: { if (foo()) { break A; } bar(); }; ok 9513 no-labels invalid A: if (a) { if (foo()) { break A; } bar(); }; ok 9514 no-labels invalid A: switch (a) { case 0: break A; default: break; }; ok 9515 no-labels invalid A: switch (a) { case 0: B: { break A; } default: break; }; ok 9516 no-labels invalid A: var foo = 0; ok 9517 no-labels invalid A: break A; ok 9518 no-labels invalid A: { if (foo()) { break A; } bar(); }; ok 9519 no-labels invalid A: if (a) { if (foo()) { break A; } bar(); }; ok 9520 no-labels invalid A: switch (a) { case 0: break A; default: break; }; ok 9521 no-labels invalid A: var foo = 0; ok 9522 no-labels invalid A: break A; ok 9523 no-labels invalid A: { if (foo()) { break A; } bar(); }; ok 9524 no-labels invalid A: if (a) { if (foo()) { break A; } bar(); }; ok 9525 no-labels invalid A: while (a) { break A; } ok 9526 no-labels invalid A: do { if (b) { break A; } } while (a); ok 9527 no-labels invalid A: for (var a in obj) { for (;;) { switch (a) { case 0: break A; } } } ok 9528 no-lone-blocks valid if (foo) { if (bar) { baz(); } } ok 9529 no-lone-blocks valid do { bar(); } while (foo) ok 9530 no-lone-blocks valid function foo() { while (bar) { baz() } } ok 9531 no-lone-blocks valid { let x = 1; } ok 9532 no-lone-blocks valid { const x = 1; } ok 9533 no-lone-blocks valid 'use strict'; { function bar() {} } ok 9534 no-lone-blocks valid { function bar() {} } ok 9535 no-lone-blocks valid { class Bar {} } ok 9536 no-lone-blocks valid { {let y = 1;} let x = 1; } ok 9537 no-lone-blocks valid switch (foo) { case bar: { baz; } } ok 9538 no-lone-blocks valid switch (foo) { case bar: { baz; } case qux: { boop; } } ok 9539 no-lone-blocks valid switch (foo) { case bar: { baz; } } ok 9540 no-lone-blocks invalid {} ok 9541 no-lone-blocks invalid {var x = 1;} ok 9542 no-lone-blocks invalid foo(); {} bar(); ok 9543 no-lone-blocks invalid if (foo) { bar(); {} baz(); } ok 9544 no-lone-blocks invalid { { } } ok 9545 no-lone-blocks invalid function foo() { bar(); {} baz(); } ok 9546 no-lone-blocks invalid while (foo) { {} } ok 9547 no-lone-blocks invalid { function bar() {} } ok 9548 no-lone-blocks invalid {var x = 1;} ok 9549 no-lone-blocks invalid { {var x = 1;} let y = 2; } {let z = 1;} ok 9550 no-lone-blocks invalid { {let x = 1;} var y = 2; } {let z = 1;} ok 9551 no-lone-blocks invalid { {var x = 1;} var y = 2; } {var z = 1;} ok 9552 no-lone-blocks invalid switch (foo) { case 1: foo(); { bar; } } ok 9553 no-lone-blocks invalid switch (foo) { case 1: { bar; } foo(); } ok 9554 no-lonely-if valid if (a) {;} else if (b) {;} ok 9555 no-lonely-if valid if (a) {;} else { if (b) {;} ; } ok 9556 no-lonely-if invalid if (a) {;} else { if (b) {;} } ok 9557 no-lonely-if invalid if (a) { foo(); } else { if (b) { bar(); } } ok 9558 no-lonely-if invalid if (a) { foo(); } else /* comment */ { if (b) { bar(); } } ok 9559 no-lonely-if invalid if (a) { foo(); } else { /* otherwise, do the other thing */ if (b) { bar(); } } ok 9560 no-lonely-if invalid if (a) { foo(); } else { if /* this comment is ok */ (b) { bar(); } } ok 9561 no-lonely-if invalid if (a) { foo(); } else { if (b) { bar(); } /* this comment will prevent this test case from being autofixed. */ } ok 9562 no-lonely-if invalid if (foo) {} else { if (bar) baz(); } ok 9563 no-lonely-if invalid if (foo) {} else { if (bar) baz() } qux(); ok 9564 no-lonely-if invalid if (foo) {} else { if (bar) baz(); } qux(); ok 9565 no-lonely-if invalid if (foo) { } else { if (bar) baz() } [1, 2, 3].forEach(foo); ok 9566 no-lonely-if invalid if (foo) { } else { if (bar) baz++ } foo; ok 9567 no-lonely-if invalid if (foo) { } else { if (bar) baz++; } foo; ok 9568 no-lonely-if invalid if (a) { foo(); } else { if (b) bar() } `template literal`; ok 9569 no-lonely-if invalid if (a) { foo(); } else { if (b) { bar(); } else if (c) { baz(); } else { qux(); } } ok 9570 no-loop-func valid string = 'function a() {}'; ok 9571 no-loop-func valid for (var i=0; i<l; i++) { } var a = function() { i; }; ok 9572 no-loop-func valid for (var i=0, a=function() { i; }; i<l; i++) { } ok 9573 no-loop-func valid for (var x in xs.filter(function(x) { return x != upper; })) { } ok 9574 no-loop-func valid for (var x of xs.filter(function(x) { return x != upper; })) { } ok 9575 no-loop-func valid for (var i=0; i<l; i++) { (function() {}) } ok 9576 no-loop-func valid for (var i in {}) { (function() {}) } ok 9577 no-loop-func valid for (var i of {}) { (function() {}) } ok 9578 no-loop-func valid for (let i=0; i<l; i++) { (function() { i; }) } ok 9579 no-loop-func valid for (let i in {}) { i = 7; (function() { i; }) } ok 9580 no-loop-func valid for (const i of {}) { (function() { i; }) } ok 9581 no-loop-func valid for (let i = 0; i < 10; ++i) { for (let x in xs.filter(x => x != i)) { } } ok 9582 no-loop-func valid let a = 0; for (let i=0; i<l; i++) { (function() { a; }); } ok 9583 no-loop-func valid let a = 0; for (let i in {}) { (function() { a; }); } ok 9584 no-loop-func valid let a = 0; for (let i of {}) { (function() { a; }); } ok 9585 no-loop-func valid let a = 0; for (let i=0; i<l; i++) { (function() { (function() { a; }); }); } ok 9586 no-loop-func valid let a = 0; for (let i in {}) { function foo() { (function() { a; }); } } ok 9587 no-loop-func valid let a = 0; for (let i of {}) { (() => { (function() { a; }); }); } ok 9588 no-loop-func valid var a = 0; for (let i=0; i<l; i++) { (function() { a; }); } ok 9589 no-loop-func valid var a = 0; for (let i in {}) { (function() { a; }); } ok 9590 no-loop-func valid var a = 0; for (let i of {}) { (function() { a; }); } ok 9591 no-loop-func valid let result = {}; for (const score in scores) { const letters = scores[score]; letters.split('').forEach(letter => { result[letter] = score; }); } result.__default = 6; ok 9592 no-loop-func valid while (true) { (function() { a; }); } let a; ok 9593 no-loop-func invalid for (var i=0; i<l; i++) { (function() { i; }) } ok 9594 no-loop-func invalid for (var i in {}) { (function() { i; }) } ok 9595 no-loop-func invalid for (var i of {}) { (function() { i; }) } ok 9596 no-loop-func invalid for (var i=0; i < l; i++) { (() => { i; }) } ok 9597 no-loop-func invalid for (var i=0; i < l; i++) { var a = function() { i; } } ok 9598 no-loop-func invalid for (var i=0; i < l; i++) { function a() { i; }; a(); } ok 9599 no-loop-func invalid for (var i=0; (function() { i; })(), i<l; i++) { } ok 9600 no-loop-func invalid for (var i=0; i<l; (function() { i; })(), i++) { } ok 9601 no-loop-func invalid while(i) { (function() { i; }) } ok 9602 no-loop-func invalid do { (function() { i; }) } while (i) ok 9603 no-loop-func invalid let a; for (let i=0; i<l; i++) { a = 1; (function() { a; });} ok 9604 no-loop-func invalid let a; for (let i in {}) { (function() { a; }); a = 1; } ok 9605 no-loop-func invalid let a; for (let i of {}) { (function() { a; }); } a = 1; ok 9606 no-loop-func invalid let a; for (let i=0; i<l; i++) { (function() { (function() { a; }); }); a = 1; } ok 9607 no-loop-func invalid let a; for (let i in {}) { a = 1; function foo() { (function() { a; }); } } ok 9608 no-loop-func invalid let a; for (let i of {}) { (() => { (function() { a; }); }); } a = 1; ok 9609 no-loop-func invalid for (var i = 0; i < 10; ++i) { for (let x in xs.filter(x => x != i)) { } } ok 9610 no-loop-func invalid for (let x of xs) { let a; for (let y of ys) { a = 1; (function() { a; }); } } ok 9611 no-loop-func invalid for (var x of xs) { for (let y of ys) { (function() { x; }); } } ok 9612 no-loop-func invalid for (var x of xs) { (function() { x; }); } ok 9613 no-loop-func invalid var a; for (let x of xs) { a = 1; (function() { a; }); } ok 9614 no-loop-func invalid var a; for (let x of xs) { (function() { a; }); a = 1; } ok 9615 no-loop-func invalid let a; function foo() { a = 10; } for (let x of xs) { (function() { a; }); } foo(); ok 9616 no-loop-func invalid let a; function foo() { a = 10; for (let x of xs) { (function() { a; }); } } foo(); ok 9617 no-magic-numbers valid var x = parseInt(y, 10); ok 9618 no-magic-numbers valid var x = parseInt(y, -10); ok 9619 no-magic-numbers valid var x = Number.parseInt(y, 10); ok 9620 no-magic-numbers valid const foo = 42; ok 9621 no-magic-numbers valid var foo = 42; ok 9622 no-magic-numbers valid var foo = -42; ok 9623 no-magic-numbers valid var foo = 0 + 1 - 2 + -2; ok 9624 no-magic-numbers valid var foo = 0 + 1 + 2 + 3 + 4; ok 9625 no-magic-numbers valid var foo = { bar:10 } ok 9626 no-magic-numbers valid setTimeout(function() {return 1;}, 0); ok 9627 no-magic-numbers valid var data = ['foo', 'bar', 'baz']; var third = data[3]; ok 9628 no-magic-numbers valid var a = <input maxLength={10} />; ok 9629 no-magic-numbers valid var a = <div objectProp={{ test: 1}}></div>; ok 9630 no-magic-numbers invalid var foo = 42 ok 9631 no-magic-numbers invalid var foo = 0 + 1; ok 9632 no-magic-numbers invalid a = a + 5; ok 9633 no-magic-numbers invalid a += 5; ok 9634 no-magic-numbers invalid var foo = 0 + 1 + -2 + 2; ok 9635 no-magic-numbers invalid var foo = 0 + 1 + 2; ok 9636 no-magic-numbers invalid var foo = { bar:10 } ok 9637 no-magic-numbers invalid console.log(0x1A + 0x02); console.log(071); ok 9638 no-magic-numbers invalid var stats = {avg: 42}; ok 9639 no-magic-numbers invalid var colors = {}; colors.RED = 2; colors.YELLOW = 3; colors.BLUE = 4 + 5; ok 9640 no-magic-numbers invalid function getSecondsInMinute() {return 60;} ok 9641 no-magic-numbers invalid function getNegativeSecondsInMinute() {return -60;} ok 9642 no-magic-numbers invalid var Promise = require('bluebird'); var MINUTE = 60; var HOUR = 3600; const DAY = 86400; var configObject = { key: 90, another: 10 * 10, 10: 'an "integer" key' }; function getSecondsInDay() { return 24 * HOUR; } function getMillisecondsInDay() { return (getSecondsInDay() * (1000) ); } function callSetTimeoutZero(func) { setTimeout(func, 0); } function invokeInTen(func) { setTimeout(func, 10); } ok 9643 no-magic-numbers invalid var data = ['foo', 'bar', 'baz']; var third = data[3]; ok 9644 no-magic-numbers invalid var a = <div arrayProp={[1,2,3]}></div>; ok 9645 no-magic-numbers invalid var min, max, mean; min = 1; max = 10; mean = 4; ok 9646 no-misleading-character-class valid var r = /[👍]/u ok 9647 no-misleading-character-class valid var r = /[\uD83D\uDC4D]/u ok 9648 no-misleading-character-class valid var r = /[\u{1F44D}]/u ok 9649 no-misleading-character-class valid var r = /❇️/ ok 9650 no-misleading-character-class valid var r = /Á/ ok 9651 no-misleading-character-class valid var r = /[❇]/ ok 9652 no-misleading-character-class valid var r = /👶🏻/ ok 9653 no-misleading-character-class valid var r = /[👶]/u ok 9654 no-misleading-character-class valid var r = /🇯🇵/ ok 9655 no-misleading-character-class valid var r = /[JP]/ ok 9656 no-misleading-character-class valid var r = /👨‍👩‍👦/ ok 9657 no-misleading-character-class valid var r = /[\uD83D]/ ok 9658 no-misleading-character-class valid var r = /[\uDC4D]/ ok 9659 no-misleading-character-class valid var r = /[\uD83D]/u ok 9660 no-misleading-character-class valid var r = /[\uDC4D]/u ok 9661 no-misleading-character-class valid var r = /[\u0301]/ ok 9662 no-misleading-character-class valid var r = /[\uFE0F]/ ok 9663 no-misleading-character-class valid var r = /[\u0301]/u ok 9664 no-misleading-character-class valid var r = /[\uFE0F]/u ok 9665 no-misleading-character-class valid var r = /[\u{1F3FB}]/u ok 9666 no-misleading-character-class valid var r = /[🏻]/u ok 9667 no-misleading-character-class valid var r = /[🇯]/u ok 9668 no-misleading-character-class valid var r = /[🇵]/u ok 9669 no-misleading-character-class valid var r = /[\u200D]/ ok 9670 no-misleading-character-class valid var r = /[\u200D]/u ok 9671 no-misleading-character-class invalid var r = /[👍]/ ok 9672 no-misleading-character-class invalid var r = /[\uD83D\uDC4D]/ ok 9673 no-misleading-character-class invalid var r = /[Á]/ ok 9674 no-misleading-character-class invalid var r = /[Á]/u ok 9675 no-misleading-character-class invalid var r = /[\u0041\u0301]/ ok 9676 no-misleading-character-class invalid var r = /[\u0041\u0301]/u ok 9677 no-misleading-character-class invalid var r = /[\u{41}\u{301}]/u ok 9678 no-misleading-character-class invalid var r = /[❇️]/ ok 9679 no-misleading-character-class invalid var r = /[❇️]/u ok 9680 no-misleading-character-class invalid var r = /[\u2747\uFE0F]/ ok 9681 no-misleading-character-class invalid var r = /[\u2747\uFE0F]/u ok 9682 no-misleading-character-class invalid var r = /[\u{2747}\u{FE0F}]/u ok 9683 no-misleading-character-class invalid var r = /[👶🏻]/ ok 9684 no-misleading-character-class invalid var r = /[👶🏻]/u ok 9685 no-misleading-character-class invalid var r = /[\uD83D\uDC76\uD83C\uDFFB]/u ok 9686 no-misleading-character-class invalid var r = /[\u{1F476}\u{1F3FB}]/u ok 9687 no-misleading-character-class invalid var r = /[🇯🇵]/ ok 9688 no-misleading-character-class invalid var r = /[🇯🇵]/u ok 9689 no-misleading-character-class invalid var r = /[\uD83C\uDDEF\uD83C\uDDF5]/u ok 9690 no-misleading-character-class invalid var r = /[\u{1F1EF}\u{1F1F5}]/u ok 9691 no-misleading-character-class invalid var r = /[👨‍👩‍👦]/ ok 9692 no-misleading-character-class invalid var r = /[👨‍👩‍👦]/u ok 9693 no-misleading-character-class invalid var r = /[\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC66]/u ok 9694 no-misleading-character-class invalid var r = /[\u{1F468}\u{200D}\u{1F469}\u{200D}\u{1F466}]/u ok 9695 no-misleading-character-class invalid var r = new RegExp("[👍]", "") ok 9696 no-misleading-character-class invalid var r = new RegExp("[\\uD83D\\uDC4D]", "") ok 9697 no-misleading-character-class invalid var r = new RegExp("[Á]", "") ok 9698 no-misleading-character-class invalid var r = new RegExp("[Á]", "u") ok 9699 no-misleading-character-class invalid var r = new RegExp("[\\u0041\\u0301]", "") ok 9700 no-misleading-character-class invalid var r = new RegExp("[\\u0041\\u0301]", "u") ok 9701 no-misleading-character-class invalid var r = new RegExp("[\\u{41}\\u{301}]", "u") ok 9702 no-misleading-character-class invalid var r = new RegExp("[❇️]", "") ok 9703 no-misleading-character-class invalid var r = new RegExp("[❇️]", "u") ok 9704 no-misleading-character-class invalid var r = new RegExp("[\\u2747\\uFE0F]", "") ok 9705 no-misleading-character-class invalid var r = new RegExp("[\\u2747\\uFE0F]", "u") ok 9706 no-misleading-character-class invalid var r = new RegExp("[\\u{2747}\\u{FE0F}]", "u") ok 9707 no-misleading-character-class invalid var r = new RegExp("[👶🏻]", "") ok 9708 no-misleading-character-class invalid var r = new RegExp("[👶🏻]", "u") ok 9709 no-misleading-character-class invalid var r = new RegExp("[\\uD83D\\uDC76\\uD83C\\uDFFB]", "u") ok 9710 no-misleading-character-class invalid var r = new RegExp("[\\u{1F476}\\u{1F3FB}]", "u") ok 9711 no-misleading-character-class invalid var r = new RegExp("[🇯🇵]", "") ok 9712 no-misleading-character-class invalid var r = new RegExp("[🇯🇵]", "u") ok 9713 no-misleading-character-class invalid var r = new RegExp("[\\uD83C\\uDDEF\\uD83C\\uDDF5]", "u") ok 9714 no-misleading-character-class invalid var r = new RegExp("[\\u{1F1EF}\\u{1F1F5}]", "u") ok 9715 no-misleading-character-class invalid var r = new RegExp("[👨‍👩‍👦]", "") ok 9716 no-misleading-character-class invalid var r = new RegExp("[👨‍👩‍👦]", "u") ok 9717 no-misleading-character-class invalid var r = new RegExp("[\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66]", "u") ok 9718 no-misleading-character-class invalid var r = new RegExp("[\\u{1F468}\\u{200D}\\u{1F469}\\u{200D}\\u{1F466}]", "u") ok 9719 no-mixed-operators valid a && b && c && d ok 9720 no-mixed-operators valid a || b || c || d ok 9721 no-mixed-operators valid (a || b) && c && d ok 9722 no-mixed-operators valid a || (b && c && d) ok 9723 no-mixed-operators valid (a || b || c) && d ok 9724 no-mixed-operators valid a || b || (c && d) ok 9725 no-mixed-operators valid a + b + c + d ok 9726 no-mixed-operators valid a * b * c * d ok 9727 no-mixed-operators valid a == 0 && b == 1 ok 9728 no-mixed-operators valid a == 0 || b == 1 ok 9729 no-mixed-operators valid (a == 0) && (b == 1) ok 9730 no-mixed-operators valid a + b - c * d / e ok 9731 no-mixed-operators valid a + b - c ok 9732 no-mixed-operators valid a * b / c ok 9733 no-mixed-operators valid a + b - c ok 9734 no-mixed-operators valid a * b / c ok 9735 no-mixed-operators invalid a && b || c ok 9736 no-mixed-operators invalid a && b > 0 || c ok 9737 no-mixed-operators invalid a && b > 0 || c ok 9738 no-mixed-operators invalid a && b + c - d / e || f ok 9739 no-mixed-operators invalid a && b + c - d / e || f ok 9740 no-mixed-operators invalid a + b - c ok 9741 no-mixed-operators invalid a * b / c ok 9742 no-mixed-requires valid var a, b = 42, c = doStuff() ok 9743 no-mixed-requires valid var a = require(42), b = require(), c = require('y'), d = require(doStuff()) ok 9744 no-mixed-requires valid var fs = require('fs'), foo = require('foo') ok 9745 no-mixed-requires valid var exec = require('child_process').exec, foo = require('foo') ok 9746 no-mixed-requires valid var fs = require('fs'), foo = require('./foo') ok 9747 no-mixed-requires valid var foo = require('foo'), foo2 = require('./foo') ok 9748 no-mixed-requires valid var emitter = require('events').EventEmitter, fs = require('fs') ok 9749 no-mixed-requires valid var foo = require(42), bar = require(getName()) ok 9750 no-mixed-requires valid var foo = require(42), bar = require(getName()) ok 9751 no-mixed-requires valid var fs = require('fs'), foo = require('./foo') ok 9752 no-mixed-requires valid var foo = require('foo'), bar = require(getName()) ok 9753 no-mixed-requires valid var a; ok 9754 no-mixed-requires valid var async = require('async'), debug = require('diagnostics')('my-module') ok 9755 no-mixed-requires invalid var fs = require('fs'), foo = 42 ok 9756 no-mixed-requires invalid var fs = require('fs'), foo ok 9757 no-mixed-requires invalid var a = require(42), b = require(), c = require('y'), d = require(doStuff()) ok 9758 no-mixed-requires invalid var fs = require('fs'), foo = require('foo') ok 9759 no-mixed-requires invalid var fs = require('fs'), foo = require('foo') ok 9760 no-mixed-requires invalid var exec = require('child_process').exec, foo = require('foo') ok 9761 no-mixed-requires invalid var fs = require('fs'), foo = require('./foo') ok 9762 no-mixed-requires invalid var foo = require('foo'), foo2 = require('./foo') ok 9763 no-mixed-requires invalid var foo = require('foo'), bar = require(getName()) ok 9764 no-mixed-requires invalid var async = require('async'), debug = require('diagnostics').someFun('my-module') ok 9765 no-mixed-spaces-and-tabs valid var x = 5; ok 9766 no-mixed-spaces-and-tabs valid var x = 5; ok 9767 no-mixed-spaces-and-tabs valid /* * Hello */ ok 9768 no-mixed-spaces-and-tabs valid // foo /** * Hello */ ok 9769 no-mixed-spaces-and-tabs valid /* */ ok 9770 no-mixed-spaces-and-tabs valid var x = 5, y = 2; ok 9771 no-mixed-spaces-and-tabs valid /* */` `; ok 9772 no-mixed-spaces-and-tabs valid /* */var a = ` `, b = ` `/* */; ok 9773 no-mixed-spaces-and-tabs valid /* `template inside comment` */ ok 9774 no-mixed-spaces-and-tabs valid var foo = ` /* comment inside template */`; ok 9775 no-mixed-spaces-and-tabs valid ` `; ok 9776 no-mixed-spaces-and-tabs valid ` `; ok 9777 no-mixed-spaces-and-tabs valid ` `; ok 9778 no-mixed-spaces-and-tabs valid const foo = `${console} foo`; ok 9779 no-mixed-spaces-and-tabs valid ` `;` ` ok 9780 no-mixed-spaces-and-tabs valid `foo${ 5 } `; ok 9781 no-mixed-spaces-and-tabs valid var x = 5, y = 2; ok 9782 no-mixed-spaces-and-tabs invalid function add(x, y) { return x + y; } ok 9783 no-mixed-spaces-and-tabs invalid ; /* * Hello */ ok 9784 no-mixed-spaces-and-tabs invalid var x = 5, y = 2, z = 5; var j = x + y; z *= j; ok 9785 no-mixed-spaces-and-tabs invalid var x = 5, y = 2; ok 9786 no-mixed-spaces-and-tabs invalid var x = 5, y = 2; ok 9787 no-mixed-spaces-and-tabs invalid `foo${ 5 }bar`; ok 9788 no-mixed-spaces-and-tabs invalid `foo${ 5 }bar`; ok 9789 no-mutli-assign valid var a, b, c, d = 0; ok 9790 no-mutli-assign valid var a = 1; var b = 2; var c = 3; var d = 0; ok 9791 no-mutli-assign valid var a = 1 + (b === 10 ? 5 : 4); ok 9792 no-mutli-assign valid const a = 1, b = 2, c = 3; ok 9793 no-mutli-assign valid const a = 1; const b = 2; const c = 3; ok 9794 no-mutli-assign valid for(var a = 0, b = 0;;){} ok 9795 no-mutli-assign valid for(let a = 0, b = 0;;){} ok 9796 no-mutli-assign valid for(const a = 0, b = 0;;){} ok 9797 no-mutli-assign valid export let a, b; ok 9798 no-mutli-assign valid export let a, b = 0; ok 9799 no-mutli-assign invalid var a = b = c; ok 9800 no-mutli-assign invalid var a = b = c = d; ok 9801 no-mutli-assign invalid let foo = bar = cee = 100; ok 9802 no-mutli-assign invalid a=b=c=d=e ok 9803 no-mutli-assign invalid a=b=c ok 9804 no-mutli-assign invalid a =b =c ok 9805 no-mutli-assign invalid var a = (b) = (((c))) ok 9806 no-mutli-assign invalid var a = ((b)) = (c) ok 9807 no-mutli-assign invalid var a = b = ( (c * 12) + 2) ok 9808 no-mutli-assign invalid var a = ((b)) = (c) ok 9809 no-mutli-assign invalid a = b = '=' + c + 'foo'; ok 9810 no-mutli-assign invalid a = b = 7 * 12 + 5; ok 9811 no-multi-spaces valid var a = 1; ok 9812 no-multi-spaces valid var a=1; ok 9813 no-multi-spaces valid var a = 1, b = 2; ok 9814 no-multi-spaces valid var arr = [1, 2]; ok 9815 no-multi-spaces valid var arr = [ (1), (2) ]; ok 9816 no-multi-spaces valid var obj = {'a': 1, 'b': (2)}; ok 9817 no-multi-spaces valid var x = 5, y = 2; ok 9818 no-multi-spaces valid a, b ok 9819 no-multi-spaces valid a >>> b ok 9820 no-multi-spaces valid a ^ b ok 9821 no-multi-spaces valid (a) | (b) ok 9822 no-multi-spaces valid a & b ok 9823 no-multi-spaces valid a << b ok 9824 no-multi-spaces valid a !== b ok 9825 no-multi-spaces valid a >>>= b ok 9826 no-multi-spaces valid if (a & b) { } ok 9827 no-multi-spaces valid function foo(a,b) {} ok 9828 no-multi-spaces valid function foo(a, b) {} ok 9829 no-multi-spaces valid if ( a === 3 && b === 4) {} ok 9830 no-multi-spaces valid if ( a === 3||b === 4 ) {} ok 9831 no-multi-spaces valid if ( a <= 4) {} ok 9832 no-multi-spaces valid var foo = bar === 1 ? 2: 3 ok 9833 no-multi-spaces valid [1, , 3] ok 9834 no-multi-spaces valid [1, ] ok 9835 no-multi-spaces valid [ ( 1 ) , ( 2 ) ] ok 9836 no-multi-spaces valid a = 1, b = 2; ok 9837 no-multi-spaces valid (function(a, b){}) ok 9838 no-multi-spaces valid x.in = 0; ok 9839 no-multi-spaces valid (function(a,/* b, */c){}) ok 9840 no-multi-spaces valid (function(a,/*b,*/c){}) ok 9841 no-multi-spaces valid (function(a, /*b,*/c){}) ok 9842 no-multi-spaces valid (function(a,/*b,*/ c){}) ok 9843 no-multi-spaces valid (function(a, /*b,*/ c){}) ok 9844 no-multi-spaces valid (function(/*a, b, */c){}) ok 9845 no-multi-spaces valid (function(/*a, */b, c){}) ok 9846 no-multi-spaces valid (function(a, b/*, c*/){}) ok 9847 no-multi-spaces valid (function(a, b/*,c*/){}) ok 9848 no-multi-spaces valid (function(a, b /*,c*/){}) ok 9849 no-multi-spaces valid (function(a/*, b ,c*/){}) ok 9850 no-multi-spaces valid (function(a /*, b ,c*/){}) ok 9851 no-multi-spaces valid (function(a /*, b ,c*/){}) ok 9852 no-multi-spaces valid /** * hello * @param {foo} int hi * set. * @private */ ok 9853 no-multi-spaces valid /** * hello * @param {foo} int hi * set. * set. * @private */ ok 9854 no-multi-spaces valid var a,/* b,*/c; ok 9855 no-multi-spaces valid var foo = [1,/* 2,*/3]; ok 9856 no-multi-spaces valid var bar = {a: 1,/* b: 2*/c: 3}; ok 9857 no-multi-spaces valid var foo = "hello world"; ok 9858 no-multi-spaces valid function foo() { return; } ok 9859 no-multi-spaces valid function foo() { if (foo) { return; } } ok 9860 no-multi-spaces valid var foo = `hello world`; ok 9861 no-multi-spaces valid ({ a: b }) ok 9862 no-multi-spaces valid var answer = 6 * 7; ok 9863 no-multi-spaces valid var x = 5; // comment ok 9864 no-multi-spaces valid var x = 5; /* multiline * comment */ ok 9865 no-multi-spaces valid var x = 5; // comment ok 9866 no-multi-spaces valid var x = 5; // comment ok 9867 no-multi-spaces valid var x = 5; /* multiline * comment */ ok 9868 no-multi-spaces valid var x = 5; /* multiline * comment */ ok 9869 no-multi-spaces valid var x = 5; // comment ok 9870 no-multi-spaces valid var x = 5; /* multiline * comment */ ok 9871 no-multi-spaces valid var x = 5; // comment ok 9872 no-multi-spaces valid var x = 5; // comment ok 9873 no-multi-spaces valid var x = 5; /* multiline * comment */ ok 9874 no-multi-spaces valid var x = 5; /* multiline * comment */ ok 9875 no-multi-spaces valid var x = 5; // comment ok 9876 no-multi-spaces valid var x = 5; /* multiline * comment */ ok 9877 no-multi-spaces valid var x = 5; // comment ok 9878 no-multi-spaces valid var x = 5; // comment ok 9879 no-multi-spaces valid var x = 5; /* multiline * comment */ ok 9880 no-multi-spaces valid var x = 5; /* multiline * comment */ ok 9881 no-multi-spaces valid foo bar ok 9882 no-multi-spaces valid foo   bar ok 9883 no-multi-spaces valid foo bar ok 9884 no-multi-spaces valid aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ok 9885 no-multi-spaces valid foo +bar ok 9886 no-multi-spaces invalid function foo(a, b) {} ok 9887 no-multi-spaces invalid var foo = (a, b) => {} ok 9888 no-multi-spaces invalid var a = 1 ok 9889 no-multi-spaces invalid var a = 1, b = 2; ok 9890 no-multi-spaces invalid a << b ok 9891 no-multi-spaces invalid var arr = {'a': 1, 'b': 2}; ok 9892 no-multi-spaces invalid if (a & b) { } ok 9893 no-multi-spaces invalid if ( a === 3 && b === 4) {} ok 9894 no-multi-spaces invalid var foo = bar === 1 ? 2: 3 ok 9895 no-multi-spaces invalid var a = [1, 2, 3, 4] ok 9896 no-multi-spaces invalid var arr = [1, 2]; ok 9897 no-multi-spaces invalid [ , 1, , 3, , ] ok 9898 no-multi-spaces invalid a >>> b ok 9899 no-multi-spaces invalid a = 1, b = 2; ok 9900 no-multi-spaces invalid (function(a, b){}) ok 9901 no-multi-spaces invalid function foo(a, b){} ok 9902 no-multi-spaces invalid var o = { fetch: function () {} }; ok 9903 no-multi-spaces invalid function foo () {} ok 9904 no-multi-spaces invalid if (foo) {} ok 9905 no-multi-spaces invalid function foo(){} ok 9906 no-multi-spaces invalid if (foo) {} ok 9907 no-multi-spaces invalid try {} catch(ex) {} ok 9908 no-multi-spaces invalid try {} catch (ex) {} ok 9909 no-multi-spaces invalid throw error; ok 9910 no-multi-spaces invalid function foo() { return bar; } ok 9911 no-multi-spaces invalid switch (a) {default: foo(); break;} ok 9912 no-multi-spaces invalid var answer = 6 * 7; ok 9913 no-multi-spaces invalid ({ a: 6 * 7 }) ok 9914 no-multi-spaces invalid ({ a: b }) ok 9915 no-multi-spaces invalid var foo = { bar: function() { return 1 + 2; } }; ok 9916 no-multi-spaces invalid var x = 5, y = 2; ok 9917 no-multi-spaces invalid var x = 5; ok 9918 no-multi-spaces invalid var x = /* comment */ 5; ok 9919 no-multi-spaces invalid var x = /* comment */ 5; ok 9920 no-multi-spaces invalid var x = 5; // comment ok 9921 no-multi-spaces invalid var x = 5; // comment var y = 6; ok 9922 no-multi-spaces invalid var x = 5; /* multiline * comment */ ok 9923 no-multi-spaces invalid var x = 5; /* multiline * comment */ var y = 6; ok 9924 no-multi-spaces invalid var x = 5; // this is a long comment ok 9925 no-multi-spaces invalid var x = /* comment */ 5; ok 9926 no-multi-spaces invalid var x = /* comment */ 5; ok 9927 no-multi-spaces invalid var x = 5; // comment ok 9928 no-multi-spaces invalid var x = 5; // comment var y = 6; ok 9929 no-multi-spaces invalid var x = 5; /* multiline * comment */ ok 9930 no-multi-spaces invalid var x = 5; /* multiline * comment */ var y = 6; ok 9931 no-multi-spaces invalid var x = 5; // this is a long comment ok 9932 no-multi-spaces invalid var x = /* comment */ 5; // EOL comment ok 9933 no-multi-spaces invalid var x = /* comment */ 5; // EOL comment var y = 6; ok 9934 no-multi-spaces invalid var x = /* comment */ 5; /* EOL comment */ ok 9935 no-multi-spaces invalid var x = /* comment */ 5; /* EOL comment */ var y = 6; ok 9936 no-multi-spaces invalid var x = /*comment without spaces*/ 5; ok 9937 no-multi-spaces invalid var x = 5; //comment without spaces ok 9938 no-multi-spaces invalid var x = 5; /*comment without spaces*/ ok 9939 no-multi-spaces invalid var x = 5; /*comment without spaces*/ ok 9940 no-multi-spaces invalid foo bar + baz ok 9941 no-multi-str valid var a = 'Line 1 Line 2'; ok 9942 no-multi-str valid var a = <div> <h1>Wat</h1> </div>; ok 9943 no-multi-str invalid var x = 'Line 1 \ Line 2' ok 9944 no-multi-str invalid test('Line 1 \ Line 2'); ok 9945 no-multi-str invalid 'foo\ bar'; ok 9946 no-multi-str invalid 'foo\
bar'; ok 9947 no-multi-str invalid 'foo\
ar'; ok 9948 no-multiple-empty-lines valid // valid 1 var a = 5; var b = 3; ok 9949 no-multiple-empty-lines valid // valid 2 var a = 5; var b = 3; ok 9950 no-multiple-empty-lines valid // valid 3 var a = 5; var b = 3; ok 9951 no-multiple-empty-lines valid // valid 4 var a = 5, b = 3; ok 9952 no-multiple-empty-lines valid // valid 5 var a = 5; var b = 3; ok 9953 no-multiple-empty-lines valid // valid 6 var a = 5; /* comment */ var b = 5; ok 9954 no-multiple-empty-lines valid // valid 7 var a = 5; ok 9955 no-multiple-empty-lines valid // valid 8 var a = 5; ok 9956 no-multiple-empty-lines valid // valid 9 var a = 1; ok 9957 no-multiple-empty-lines valid // valid 10 var a = 5; ok 9958 no-multiple-empty-lines valid // valid 11 var a = 1; ok 9959 no-multiple-empty-lines valid // valid 12 // windows line endings var a = 5; var b = 3; ok 9960 no-multiple-empty-lines valid // valid 12 x = ` hi ` ok 9961 no-multiple-empty-lines valid // valid 13 ` ` ok 9962 no-multiple-empty-lines valid // valid 14 var a = 5;` ` ok 9963 no-multiple-empty-lines valid ` ` // valid 15 var a = 5; ok 9964 no-multiple-empty-lines valid // valid 16 var a = 5; ok 9965 no-multiple-empty-lines valid // valid 17 var a = 5; ok 9966 no-multiple-empty-lines valid var a = 5; ok 9967 no-multiple-empty-lines invalid // invalid 1 var a = 5; var b = 3; ok 9968 no-multiple-empty-lines invalid // invalid 2 var a = 5; ok 9969 no-multiple-empty-lines invalid // invalid 3 var a = 5; ok 9970 no-multiple-empty-lines invalid // invalid 4 var a = 5; ok 9971 no-multiple-empty-lines invalid // invalid 5 var a=5; var b = 3; ok 9972 no-multiple-empty-lines invalid // invalid 6 var a=5; var b = 3; ok 9973 no-multiple-empty-lines invalid // invalid 7 var a = 5; b = 3; var c = 5; var d = 3; ok 9974 no-multiple-empty-lines invalid // invalid 8 var a = 5; b = 3; ok 9975 no-multiple-empty-lines invalid // invalid 9 var a=5; ok 9976 no-multiple-empty-lines invalid // invalid 10 var a = 5; var b = 3; ok 9977 no-multiple-empty-lines invalid // invalid 11 var a = 5; ok 9978 no-multiple-empty-lines invalid // invalid 12 var a = 5; ok 9979 no-multiple-empty-lines invalid // invalid 13 var a = 5; ok 9980 no-multiple-empty-lines invalid // invalid 14 var a = 5; ok 9981 no-multiple-empty-lines invalid // invalid 15 var a = 5; ok 9982 no-multiple-empty-lines invalid // invalid 16 var a = 5; ok 9983 no-multiple-empty-lines invalid // invalid 17 var a = 5; ok 9984 no-multiple-empty-lines invalid // invalid 18 var a = 5; ok 9985 no-multiple-empty-lines invalid // invalid 19 var a = 5; ok 9986 no-multiple-empty-lines invalid // invalid 20 // windows line endings var a = 5; var b = 3; ok 9987 no-multiple-empty-lines invalid // invalid 21 // unix line endings var a = 5; var b = 3; ok 9988 no-multiple-empty-lines invalid 'foo'; `bar`; `baz`; ok 9989 no-multiple-empty-lines invalid `template ${foo } literal`; ok 9990 no-multiple-empty-lines invalid a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ok 9991 no-multiple-empty-lines invalid foo ok 9992 no-native-reassign valid string = 'hello world'; ok 9993 no-native-reassign valid var string; ok 9994 no-native-reassign valid Object = 0; ok 9995 no-native-reassign valid top = 0; ok 9996 no-native-reassign valid onload = 0; ok 9997 no-native-reassign valid require = 0; ok 9998 no-native-reassign valid a = 1 ok 9999 no-native-reassign valid /*global a:true*/ a = 1 ok 10000 no-native-reassign invalid String = 'hello world'; ok 10001 no-native-reassign invalid String++; ok 10002 no-native-reassign invalid ({Object = 0, String = 0} = {}); ok 10003 no-native-reassign invalid top = 0; ok 10004 no-native-reassign invalid require = 0; ok 10005 no-native-reassign invalid /*global b:false*/ function f() { b = 1; } ok 10006 no-native-reassign invalid function f() { b = 1; } ok 10007 no-native-reassign invalid /*global b:false*/ function f() { b++; } ok 10008 no-native-reassign invalid /*global b*/ b = 1; ok 10009 no-native-reassign invalid Array = 1; ok 10010 no-negated-condition valid if (a) {} ok 10011 no-negated-condition valid if (a) {} else {} ok 10012 no-negated-condition valid if (!a) {} ok 10013 no-negated-condition valid if (!a) {} else if (b) {} ok 10014 no-negated-condition valid if (!a) {} else if (b) {} else {} ok 10015 no-negated-condition valid if (a == b) {} ok 10016 no-negated-condition valid if (a == b) {} else {} ok 10017 no-negated-condition valid if (a != b) {} ok 10018 no-negated-condition valid if (a != b) {} else if (b) {} ok 10019 no-negated-condition valid if (a != b) {} else if (b) {} else {} ok 10020 no-negated-condition valid if (a !== b) {} ok 10021 no-negated-condition valid if (a === b) {} else {} ok 10022 no-negated-condition valid a ? b : c ok 10023 no-negated-condition invalid if (!a) {;} else {;} ok 10024 no-negated-condition invalid if (a != b) {;} else {;} ok 10025 no-negated-condition invalid if (a !== b) {;} else {;} ok 10026 no-negated-condition invalid !a ? b : c ok 10027 no-negated-condition invalid a != b ? c : d ok 10028 no-negated-condition invalid a !== b ? c : d ok 10029 no-negated-in-lhs valid a in b ok 10030 no-negated-in-lhs valid !(a in b) ok 10031 no-negated-in-lhs invalid !a in b ok 10032 no-nested-ternary valid foo ? doBar() : doBaz(); ok 10033 no-nested-ternary valid var foo = bar === baz ? qux : quxx; ok 10034 no-nested-ternary invalid foo ? bar : baz === qux ? quxx : foobar; ok 10035 no-nested-ternary invalid foo ? baz === qux ? quxx : foobar : bar; ok 10036 no-new-func valid var a = new _function("b", "c", "return b+c"); ok 10037 no-new-func valid var a = _function("b", "c", "return b+c"); ok 10038 no-new-func invalid var a = new Function("b", "c", "return b+c"); ok 10039 no-new-func invalid var a = Function("b", "c", "return b+c"); ok 10040 no-new-object valid var foo = new foo.Object() ok 10041 no-new-object invalid var foo = new Object() ok 10042 no-new-require valid var appHeader = require('app-header') ok 10043 no-new-require valid var AppHeader = new (require('app-header')) ok 10044 no-new-require valid var AppHeader = new (require('headers').appHeader) ok 10045 no-new-require invalid var appHeader = new require('app-header') ok 10046 no-new-require invalid var appHeader = new require('headers').appHeader ok 10047 no-new-symbol valid var foo = Symbol('foo'); ok 10048 no-new-symbol valid function bar(Symbol) { var baz = new Symbol('baz');} ok 10049 no-new-symbol valid function Symbol() {} new Symbol(); ok 10050 no-new-symbol invalid var foo = new Symbol('foo'); ok 10051 no-new-symbol invalid function bar() { return function Symbol() {}; } var baz = new Symbol('baz'); ok 10052 no-new-wrappers valid var a = new Object(); ok 10053 no-new-wrappers valid var a = String('test'), b = String.fromCharCode(32); ok 10054 no-new-wrappers invalid var a = new String('hello'); ok 10055 no-new-wrappers invalid var a = new Number(10); ok 10056 no-new-wrappers invalid var a = new Boolean(false); ok 10057 no-new-wrappers invalid var a = new Math(); ok 10058 no-new-wrappers invalid var a = new JSON({ myProp: 10 }); ok 10059 no-new valid var a = new Date() ok 10060 no-new valid var a; if (a === new Date()) { a = false; } ok 10061 no-new invalid new Date() ok 10062 no-obj-calls valid var x = Math.random(); ok 10063 no-obj-calls invalid var x = Math(); ok 10064 no-obj-calls invalid var x = JSON(); ok 10065 no-obj-calls invalid var x = Reflect(); ok 10066 no-octal-escape valid var foo = "\x51"; ok 10067 no-octal-escape valid var foo = "foo \\251 bar"; ok 10068 no-octal-escape valid var foo = /([abc]) \1/g; ok 10069 no-octal-escape valid var foo = '\0'; ok 10070 no-octal-escape invalid var foo = "foo \01 bar"; ok 10071 no-octal-escape invalid var foo = "foo \251 bar"; ok 10072 no-octal-escape invalid var foo = "\751"; ok 10073 no-octal-escape invalid var foo = "\3s51"; ok 10074 no-octal-escape invalid var foo = "\\\751"; ok 10075 no-octal valid var a = 'hello world'; ok 10076 no-octal valid 0x1234 ok 10077 no-octal valid 0X5; ok 10078 no-octal valid a = 0; ok 10079 no-octal valid 0.1 ok 10080 no-octal valid 0.5e1 ok 10081 no-octal invalid var a = 01234; ok 10082 no-octal invalid a = 1 + 01234; ok 10083 no-octal invalid 00 ok 10084 no-param-reassign valid function foo(a) { var b = a; } ok 10085 no-param-reassign valid function foo(a) { a.prop = 'value'; } ok 10086 no-param-reassign valid function foo(a) { (function() { var a = 12; a++; })(); } ok 10087 no-param-reassign valid function foo() { someGlobal = 13; } ok 10088 no-param-reassign valid function foo() { someGlobal = 13; } ok 10089 no-param-reassign valid function foo(a) { a.b = 0; } ok 10090 no-param-reassign valid function foo(a) { delete a.b; } ok 10091 no-param-reassign valid function foo(a) { ++a.b; } ok 10092 no-param-reassign valid function foo(a) { [a.b] = []; } ok 10093 no-param-reassign valid function foo(a) { bar(a.b).c = 0; } ok 10094 no-param-reassign valid function foo(a) { data[a.b] = 0; } ok 10095 no-param-reassign valid function foo(a) { +a.b; } ok 10096 no-param-reassign valid function foo(a) { (a ? [] : [])[0] = 1; } ok 10097 no-param-reassign valid function foo(a) { (a.b ? [] : [])[0] = 1; } ok 10098 no-param-reassign valid function foo(a) { a.b = 0; } ok 10099 no-param-reassign valid function foo(a) { ++a.b; } ok 10100 no-param-reassign valid function foo(a) { delete a.b; } ok 10101 no-param-reassign valid function foo(a, z) { a.b = 0; x.y = 0; } ok 10102 no-param-reassign valid function foo(a) { a.b.c = 0;} ok 10103 no-param-reassign valid function foo(a) { ({ [a]: variable } = value) } ok 10104 no-param-reassign valid function foo(a) { ([...a.b] = obj); } ok 10105 no-param-reassign valid function foo(a) { ({...a.b} = obj); } ok 10106 no-param-reassign invalid function foo(bar) { bar = 13; } ok 10107 no-param-reassign invalid function foo(bar) { bar += 13; } ok 10108 no-param-reassign invalid function foo(bar) { (function() { bar = 13; })(); } ok 10109 no-param-reassign invalid function foo(bar) { ++bar; } ok 10110 no-param-reassign invalid function foo(bar) { bar++; } ok 10111 no-param-reassign invalid function foo(bar) { --bar; } ok 10112 no-param-reassign invalid function foo(bar) { bar--; } ok 10113 no-param-reassign invalid function foo({bar}) { bar = 13; } ok 10114 no-param-reassign invalid function foo([, {bar}]) { bar = 13; } ok 10115 no-param-reassign invalid function foo(bar) { ({bar} = {}); } ok 10116 no-param-reassign invalid function foo(bar) { ({x: [, bar = 0]} = {}); } ok 10117 no-param-reassign invalid function foo(bar) { bar.a = 0; } ok 10118 no-param-reassign invalid function foo(bar) { bar.get(0).a = 0; } ok 10119 no-param-reassign invalid function foo(bar) { delete bar.a; } ok 10120 no-param-reassign invalid function foo(bar) { ++bar.a; } ok 10121 no-param-reassign invalid function foo(bar) { (bar ? bar : [])[0] = 1; } ok 10122 no-param-reassign invalid function foo(bar) { [bar.a] = []; } ok 10123 no-param-reassign invalid function foo(bar) { [bar.a] = []; } ok 10124 no-param-reassign invalid function foo(bar) { ({foo: bar.a} = {}); } ok 10125 no-param-reassign invalid function foo(a) { ({a} = obj); } ok 10126 no-param-reassign invalid function foo(a) { ([...a] = obj); } ok 10127 no-param-reassign invalid function foo(a) { ({...a} = obj); } ok 10128 no-param-reassign invalid function foo(a) { ([...a.b] = obj); } ok 10129 no-param-reassign invalid function foo(a) { ({...a.b} = obj); } ok 10130 no-path-concat valid var fullPath = dirname + "foo.js"; ok 10131 no-path-concat valid var fullPath = __dirname == "foo.js"; ok 10132 no-path-concat valid if (fullPath === __dirname) {} ok 10133 no-path-concat valid if (__dirname === fullPath) {} ok 10134 no-path-concat invalid var fullPath = __dirname + "/foo.js"; ok 10135 no-path-concat invalid var fullPath = __filename + "/foo.js"; ok 10136 no-path-concat invalid var fullPath = "/foo.js" + __filename; ok 10137 no-path-concat invalid var fullPath = "/foo.js" + __dirname; ok 10138 no-plusplus valid var foo = 0; foo=+1; ok 10139 no-plusplus valid var foo = 0; foo=+1; ok 10140 no-plusplus valid for (i = 0; i < l; i++) { console.log(i); } ok 10141 no-plusplus invalid var foo = 0; foo++; ok 10142 no-plusplus invalid var foo = 0; foo--; ok 10143 no-plusplus invalid for (i = 0; i < l; i++) { console.log(i); } ok 10144 no-plusplus invalid var foo = 0; foo++; ok 10145 no-plusplus invalid for (i = 0; i < l; i++) { v++; } ok 10146 no-process-env valid Process.env ok 10147 no-process-env valid process[env] ok 10148 no-process-env valid process.nextTick ok 10149 no-process-env valid process.execArgv ok 10150 no-process-env invalid process.env ok 10151 no-process-env invalid process.env.ENV ok 10152 no-process-env invalid f(process.env) ok 10153 no-process-exit valid Process.exit() ok 10154 no-process-exit valid var exit = process.exit; ok 10155 no-process-exit valid f(process.exit) ok 10156 no-process-exit invalid process.exit(0); ok 10157 no-process-exit invalid process.exit(1); ok 10158 no-process-exit invalid f(process.exit(1)); ok 10159 no-proto valid var a = test[__proto__]; ok 10160 no-proto valid var __proto__ = null; ok 10161 no-proto invalid var a = test.__proto__; ok 10162 no-proto invalid var a = test['__proto__']; ok 10163 no-prototype-builtins valid Object.prototype.hasOwnProperty.call(foo, 'bar') ok 10164 no-prototype-builtins valid Object.prototype.isPrototypeOf.call(foo, 'bar') ok 10165 no-prototype-builtins valid Object.prototype.propertyIsEnumerable.call(foo, 'bar') ok 10166 no-prototype-builtins valid Object.prototype.hasOwnProperty.apply(foo, ['bar']) ok 10167 no-prototype-builtins valid Object.prototype.isPrototypeOf.apply(foo, ['bar']) ok 10168 no-prototype-builtins valid Object.prototype.propertyIsEnumerable.apply(foo, ['bar']) ok 10169 no-prototype-builtins valid hasOwnProperty(foo, 'bar') ok 10170 no-prototype-builtins valid isPrototypeOf(foo, 'bar') ok 10171 no-prototype-builtins valid propertyIsEnumerable(foo, 'bar') ok 10172 no-prototype-builtins valid ({}.hasOwnProperty.call(foo, 'bar')) ok 10173 no-prototype-builtins valid ({}.isPrototypeOf.call(foo, 'bar')) ok 10174 no-prototype-builtins valid ({}.propertyIsEnumerable.call(foo, 'bar')) ok 10175 no-prototype-builtins valid ({}.hasOwnProperty.apply(foo, ['bar'])) ok 10176 no-prototype-builtins valid ({}.isPrototypeOf.apply(foo, ['bar'])) ok 10177 no-prototype-builtins valid ({}.propertyIsEnumerable.apply(foo, ['bar'])) ok 10178 no-prototype-builtins invalid foo.hasOwnProperty('bar') ok 10179 no-prototype-builtins invalid foo.isPrototypeOf('bar') ok 10180 no-prototype-builtins invalid foo.propertyIsEnumerable('bar') ok 10181 no-prototype-builtins invalid foo.bar.hasOwnProperty('bar') ok 10182 no-prototype-builtins invalid foo.bar.baz.isPrototypeOf('bar') ok 10183 no-redeclare valid var a = 3; var b = function() { var a = 10; }; ok 10184 no-redeclare valid var a = 3; a = 10; ok 10185 no-redeclare valid if (true) { let b = 2; } else { let b = 3; } ok 10186 no-redeclare valid var Object = 0; ok 10187 no-redeclare valid var Object = 0; ok 10188 no-redeclare valid var Object = 0; ok 10189 no-redeclare valid var Object = 0; ok 10190 no-redeclare valid var top = 0; ok 10191 no-redeclare valid var top = 0; ok 10192 no-redeclare valid var top = 0; ok 10193 no-redeclare valid var top = 0; ok 10194 no-redeclare valid var self = 1 ok 10195 no-redeclare invalid var a = 3; var a = 10; ok 10196 no-redeclare invalid switch(foo) { case a: var b = 3; case b: var b = 4} ok 10197 no-redeclare invalid var a = 3; var a = 10; ok 10198 no-redeclare invalid var a = {}; var a = []; ok 10199 no-redeclare invalid var a; function a() {} ok 10200 no-redeclare invalid function a() {} function a() {} ok 10201 no-redeclare invalid var a = function() { }; var a = function() { } ok 10202 no-redeclare invalid var a = function() { }; var a = new Date(); ok 10203 no-redeclare invalid var a = 3; var a = 10; var a = 15; ok 10204 no-redeclare invalid var a; var a; ok 10205 no-redeclare invalid export var a; var a; ok 10206 no-redeclare invalid var Object = 0; ok 10207 no-redeclare invalid var top = 0; ok 10208 no-redeclare invalid var a; var {a = 0, b: Object = 0} = {}; ok 10209 no-redeclare invalid var a; var {a = 0, b: Object = 0} = {}; ok 10210 no-redeclare invalid var a; var {a = 0, b: Object = 0} = {}; ok 10211 no-redeclare invalid var a; var {a = 0, b: Object = 0} = {}; ok 10212 no-redeclare invalid /*global b:false*/ var b = 1; ok 10213 no-regex-spaces valid var foo = /bar {3}baz/; ok 10214 no-regex-spaces valid var foo = RegExp('bar {3}baz') ok 10215 no-regex-spaces valid var foo = new RegExp('bar {3}baz') ok 10216 no-regex-spaces valid var foo = /bar baz/; ok 10217 no-regex-spaces valid var foo = RegExp('bar baz'); ok 10218 no-regex-spaces valid var foo = new RegExp('bar baz'); ok 10219 no-regex-spaces valid var RegExp = function() {}; var foo = new RegExp('bar baz'); ok 10220 no-regex-spaces valid var RegExp = function() {}; var foo = RegExp('bar baz'); ok 10221 no-regex-spaces valid var foo = / +/; ok 10222 no-regex-spaces invalid var foo = /bar baz/; ok 10223 no-regex-spaces invalid var foo = RegExp('bar baz'); ok 10224 no-regex-spaces invalid var foo = new RegExp('bar baz'); ok 10225 no-regex-spaces invalid { let RegExp = function() {}; } var foo = RegExp('bar baz'); ok 10226 no-regex-spaces invalid var foo = /bar ?baz/; ok 10227 no-regex-spaces invalid var foo = new RegExp('bar '); ok 10228 no-restricted-globals valid foo ok 10229 no-restricted-globals valid foo ok 10230 no-restricted-globals valid var foo = 1; ok 10231 no-restricted-globals valid event ok 10232 no-restricted-globals valid import foo from 'bar'; ok 10233 no-restricted-globals valid function foo() {} ok 10234 no-restricted-globals valid function fn() { var foo; } ok 10235 no-restricted-globals valid foo.bar ok 10236 no-restricted-globals valid foo ok 10237 no-restricted-globals invalid foo ok 10238 no-restricted-globals invalid function fn() { foo; } ok 10239 no-restricted-globals invalid function fn() { foo; } ok 10240 no-restricted-globals invalid event ok 10241 no-restricted-globals invalid foo ok 10242 no-restricted-globals invalid foo() ok 10243 no-restricted-globals invalid foo.bar() ok 10244 no-restricted-globals invalid foo ok 10245 no-restricted-globals invalid function fn() { foo; } ok 10246 no-restricted-globals invalid function fn() { foo; } ok 10247 no-restricted-globals invalid event ok 10248 no-restricted-globals invalid foo ok 10249 no-restricted-globals invalid foo() ok 10250 no-restricted-globals invalid foo.bar() ok 10251 no-restricted-globals invalid foo ok 10252 no-restricted-globals invalid function fn() { foo; } ok 10253 no-restricted-globals invalid function fn() { foo; } ok 10254 no-restricted-globals invalid event ok 10255 no-restricted-globals invalid foo ok 10256 no-restricted-globals invalid foo() ok 10257 no-restricted-globals invalid foo.bar() ok 10258 no-restricted-globals invalid var foo = obj => hasOwnProperty(obj, 'name'); ok 10259 no-restricted-imports valid import os from "os"; ok 10260 no-restricted-imports valid import fs from "fs"; ok 10261 no-restricted-imports valid import path from "path"; ok 10262 no-restricted-imports valid import async from "async"; ok 10263 no-restricted-imports valid import "foo" ok 10264 no-restricted-imports valid import "foo/bar"; ok 10265 no-restricted-imports valid import withPaths from "foo/bar"; ok 10266 no-restricted-imports valid import withPatterns from "foo/bar"; ok 10267 no-restricted-imports valid import withPatternsAndPaths from "foo/bar"; ok 10268 no-restricted-imports valid import withGitignores from "foo/bar"; ok 10269 no-restricted-imports valid import AllowedObject from "foo"; ok 10270 no-restricted-imports valid import DisallowedObject from "foo"; ok 10271 no-restricted-imports valid import * as DisallowedObject from "foo"; ok 10272 no-restricted-imports valid import { AllowedObject } from "foo"; ok 10273 no-restricted-imports valid import { DisallowedObject } from "foo"; ok 10274 no-restricted-imports valid import { AllowedObject as DisallowedObject } from "foo"; ok 10275 no-restricted-imports valid import { AllowedObject, AllowedObjectTwo } from "foo"; ok 10276 no-restricted-imports valid import { AllowedObject, AllowedObjectTwo as DisallowedObject } from "foo"; ok 10277 no-restricted-imports valid import AllowedObjectThree, { AllowedObject as AllowedObjectTwo } from "foo"; ok 10278 no-restricted-imports valid import AllowedObject, { AllowedObjectTwo as DisallowedObject } from "foo"; ok 10279 no-restricted-imports valid import AllowedObject, { AllowedObjectTwo as DisallowedObject } from "foo"; ok 10280 no-restricted-imports valid import AllowedObject, * as DisallowedObject from "foo"; ok 10281 no-restricted-imports valid import "foo"; ok 10282 no-restricted-imports invalid import "fs" ok 10283 no-restricted-imports invalid import os from "os "; ok 10284 no-restricted-imports invalid import "foo/bar"; ok 10285 no-restricted-imports invalid import withPaths from "foo/bar"; ok 10286 no-restricted-imports invalid import withPatterns from "foo/bar"; ok 10287 no-restricted-imports invalid import withPatterns from "foo/bar"; ok 10288 no-restricted-imports invalid import withGitignores from "foo/bar"; ok 10289 no-restricted-imports invalid export * from "fs"; ok 10290 no-restricted-imports invalid export {a} from "fs"; ok 10291 no-restricted-imports invalid export {foo as b} from "fs"; ok 10292 no-restricted-imports invalid import withGitignores from "foo"; ok 10293 no-restricted-imports invalid import withGitignores from "bar"; ok 10294 no-restricted-imports invalid import withGitignores from "foo"; ok 10295 no-restricted-imports invalid import DisallowedObject from "foo"; ok 10296 no-restricted-imports invalid import * as All from "foo"; ok 10297 no-restricted-imports invalid import { DisallowedObject } from "foo"; ok 10298 no-restricted-imports invalid import { DisallowedObject as AllowedObject } from "foo"; ok 10299 no-restricted-imports invalid import { AllowedObject, DisallowedObject } from "foo"; ok 10300 no-restricted-imports invalid import { AllowedObject, DisallowedObject as AllowedObjectTwo } from "foo"; ok 10301 no-restricted-imports invalid import { AllowedObject, DisallowedObject as AllowedObjectTwo } from "foo"; ok 10302 no-restricted-imports invalid import { AllowedObject, DisallowedObject as AllowedObjectTwo } from "foo"; ok 10303 no-restricted-imports invalid import DisallowedObject, { AllowedObject as AllowedObjectTwo } from "foo"; ok 10304 no-restricted-imports invalid import AllowedObject, { DisallowedObject as AllowedObjectTwo } from "foo"; ok 10305 no-restricted-imports invalid import AllowedObject, * as AllowedObjectTwo from "foo"; ok 10306 no-restricted-imports invalid import AllowedObject, * as AllowedObjectTwo from "foo"; ok 10307 no-restricted-modules valid require("fs") ok 10308 no-restricted-modules valid require("path") ok 10309 no-restricted-modules valid require("fs ") ok 10310 no-restricted-modules valid require(2) ok 10311 no-restricted-modules valid require(foo) ok 10312 no-restricted-modules valid var foo = bar('crypto'); ok 10313 no-restricted-modules valid require("foo/bar"); ok 10314 no-restricted-modules valid var withPaths = require("foo/bar"); ok 10315 no-restricted-modules valid var withPatterns = require("foo/bar"); ok 10316 no-restricted-modules valid var withPatternsAndPaths = require("foo/bar"); ok 10317 no-restricted-modules valid var withGitignores = require("foo/bar"); ok 10318 no-restricted-modules invalid require("fs") ok 10319 no-restricted-modules invalid require("os ") ok 10320 no-restricted-modules invalid require("foo/bar"); ok 10321 no-restricted-modules invalid var withPaths = require("foo/bar"); ok 10322 no-restricted-modules invalid var withPatterns = require("foo/bar"); ok 10323 no-restricted-modules invalid var withPatternsAndPaths = require("foo/bar"); ok 10324 no-restricted-modules invalid var withGitignores = require("foo/bar"); ok 10325 no-restricted-modules invalid var withGitignores = require("foo"); ok 10326 no-restricted-modules invalid var withGitignores = require("bar"); ok 10327 no-restricted-modules invalid var withGitignores = require("foo"); ok 10328 no-restricted-properties valid someObject.someProperty ok 10329 no-restricted-properties valid anotherObject.disallowedProperty ok 10330 no-restricted-properties valid someObject.someProperty() ok 10331 no-restricted-properties valid anotherObject.disallowedProperty() ok 10332 no-restricted-properties valid anotherObject.disallowedProperty() ok 10333 no-restricted-properties valid anotherObject['disallowedProperty']() ok 10334 no-restricted-properties valid obj.toString ok 10335 no-restricted-properties valid toString.toString ok 10336 no-restricted-properties valid obj.toString ok 10337 no-restricted-properties valid foo.bar ok 10338 no-restricted-properties valid foo.bar ok 10339 no-restricted-properties valid foo() ok 10340 no-restricted-properties valid foo; ok 10341 no-restricted-properties valid let bar = foo; ok 10342 no-restricted-properties valid let {baz: bar} = foo; ok 10343 no-restricted-properties valid let {unrelated} = foo; ok 10344 no-restricted-properties valid let {baz: {bar: qux}} = foo; ok 10345 no-restricted-properties valid let {bar} = foo.baz; ok 10346 no-restricted-properties valid let {baz: bar} = foo; ok 10347 no-restricted-properties valid let baz; ({baz: bar} = foo) ok 10348 no-restricted-properties valid let bar; ok 10349 no-restricted-properties valid let bar; ([bar = 5] = foo); ok 10350 no-restricted-properties valid function qux({baz: bar} = foo) {} ok 10351 no-restricted-properties valid let [bar, baz] = foo; ok 10352 no-restricted-properties valid let [, bar] = foo; ok 10353 no-restricted-properties valid let [, bar = 5] = foo; ok 10354 no-restricted-properties valid let bar; ([bar = 5] = foo); ok 10355 no-restricted-properties valid function qux([bar] = foo) {} ok 10356 no-restricted-properties valid function qux([, bar] = foo) {} ok 10357 no-restricted-properties valid function qux([, bar] = foo) {} ok 10358 no-restricted-properties invalid someObject.disallowedProperty ok 10359 no-restricted-properties invalid someObject.disallowedProperty ok 10360 no-restricted-properties invalid someObject.disallowedProperty; anotherObject.anotherDisallowedProperty() ok 10361 no-restricted-properties invalid foo.__proto__ ok 10362 no-restricted-properties invalid foo['__proto__'] ok 10363 no-restricted-properties invalid foo.bar.baz; ok 10364 no-restricted-properties invalid foo.bar(); ok 10365 no-restricted-properties invalid foo.bar.baz(); ok 10366 no-restricted-properties invalid foo.bar.baz; ok 10367 no-restricted-properties invalid foo.bar(); ok 10368 no-restricted-properties invalid foo.bar.baz(); ok 10369 no-restricted-properties invalid require.call({}, 'foo') ok 10370 no-restricted-properties invalid require['resolve'] ok 10371 no-restricted-properties invalid let {bar} = foo; ok 10372 no-restricted-properties invalid let {bar: baz} = foo; ok 10373 no-restricted-properties invalid let {'bar': baz} = foo; ok 10374 no-restricted-properties invalid let {bar: {baz: qux}} = foo; ok 10375 no-restricted-properties invalid let {bar} = foo; ok 10376 no-restricted-properties invalid let {bar: baz} = foo; ok 10377 no-restricted-properties invalid let {bar} = foo; ok 10378 no-restricted-properties invalid let bar; ({bar} = foo); ok 10379 no-restricted-properties invalid let bar; ({bar: baz = 1} = foo); ok 10380 no-restricted-properties invalid function qux({bar} = foo) {} ok 10381 no-restricted-properties invalid function qux({bar: baz} = foo) {} ok 10382 no-restricted-properties invalid var {['foo']: qux, bar} = baz ok 10383 no-restricted-syntax valid doSomething(); ok 10384 no-restricted-syntax valid var foo = 42; ok 10385 no-restricted-syntax valid foo += 42; ok 10386 no-restricted-syntax valid foo; ok 10387 no-restricted-syntax valid () => 5 ok 10388 no-restricted-syntax valid ({ foo: 1, bar: 2 }) ok 10389 no-restricted-syntax valid A: for (;;) break; ok 10390 no-restricted-syntax valid function foo(bar, baz) {} ok 10391 no-restricted-syntax valid var foo = 42; ok 10392 no-restricted-syntax valid ({ foo: 1, bar: 2 }) ok 10393 no-restricted-syntax valid ({ foo: 1, bar: 2 }) ok 10394 no-restricted-syntax valid console.log(/a/); ok 10395 no-restricted-syntax invalid var foo = 41; ok 10396 no-restricted-syntax invalid ;function lol(a) { return 42; } ok 10397 no-restricted-syntax invalid try { voila(); } catch (e) { oops(); } ok 10398 no-restricted-syntax invalid bar; ok 10399 no-restricted-syntax invalid bar; ok 10400 no-restricted-syntax invalid () => {} ok 10401 no-restricted-syntax invalid ({ foo: 1, 'bar': 2 }) ok 10402 no-restricted-syntax invalid A: for (;;) break A; ok 10403 no-restricted-syntax invalid function foo(bar, baz, qux) {} ok 10404 no-restricted-syntax invalid var foo = 41; ok 10405 no-restricted-syntax invalid function foo(bar, baz, qux) {} ok 10406 no-restricted-syntax invalid function foo(bar, baz, qux) {} ok 10407 no-restricted-syntax invalid function foo(bar, baz, qux) {} ok 10408 no-restricted-syntax invalid console.log(/a/i); ok 10409 no-return-assign valid module.exports = {'a': 1}; ok 10410 no-return-assign valid var result = a * b; ok 10411 no-return-assign valid function x() { var result = a * b; return result; } ok 10412 no-return-assign valid function x() { return (result = a * b); } ok 10413 no-return-assign valid function x() { var result = a * b; return result; } ok 10414 no-return-assign valid function x() { return (result = a * b); } ok 10415 no-return-assign valid function x() { var result = a * b; return result; } ok 10416 no-return-assign valid function x() { return function y() { result = a * b }; } ok 10417 no-return-assign valid () => { return (result = a * b); } ok 10418 no-return-assign valid () => (result = a * b) ok 10419 no-return-assign invalid function x() { return result = a * b; }; ok 10420 no-return-assign invalid function x() { return (result) = (a * b); }; ok 10421 no-return-assign invalid function x() { return result = a * b; }; ok 10422 no-return-assign invalid function x() { return (result) = (a * b); }; ok 10423 no-return-assign invalid () => { return result = a * b; } ok 10424 no-return-assign invalid () => result = a * b ok 10425 no-return-assign invalid function x() { return result = a * b; }; ok 10426 no-return-assign invalid function x() { return (result = a * b); }; ok 10427 no-return-assign invalid function x() { return result || (result = a * b); }; ok 10428 no-return-await valid async function foo() { await bar(); return; } ok 10429 no-return-await valid async function foo() { const x = await bar(); return x; } ok 10430 no-return-await valid async () => { return bar(); } ok 10431 no-return-await valid async () => bar() ok 10432 no-return-await valid async function foo() { if (a) { if (b) { return bar(); } } } ok 10433 no-return-await valid async () => { if (a) { if (b) { return bar(); } } } ok 10434 no-return-await valid async function foo() { return (await bar() && a); } ok 10435 no-return-await valid async function foo() { return (await bar() || a); } ok 10436 no-return-await valid async function foo() { return (a && await baz() && b); } ok 10437 no-return-await valid async function foo() { return (await bar(), a); } ok 10438 no-return-await valid async function foo() { return (await baz(), await bar(), a); } ok 10439 no-return-await valid async function foo() { return (a, b, (await bar(), c)); } ok 10440 no-return-await valid async function foo() { return (await bar() ? a : b); } ok 10441 no-return-await valid async function foo() { return ((a && await bar()) ? b : c); } ok 10442 no-return-await valid async function foo() { return (baz() ? (await bar(), a) : b); } ok 10443 no-return-await valid async function foo() { return (baz() ? (await bar() && a) : b); } ok 10444 no-return-await valid async function foo() { return (baz() ? a : (await bar(), b)); } ok 10445 no-return-await valid async function foo() { return (baz() ? a : (await bar() && b)); } ok 10446 no-return-await valid async () => (await bar(), a) ok 10447 no-return-await valid async () => (await bar() && a) ok 10448 no-return-await valid async () => (await bar() || a) ok 10449 no-return-await valid async () => (a && await bar() && b) ok 10450 no-return-await valid async () => (await baz(), await bar(), a) ok 10451 no-return-await valid async () => (a, b, (await bar(), c)) ok 10452 no-return-await valid async () => (await bar() ? a : b) ok 10453 no-return-await valid async () => ((a && await bar()) ? b : c) ok 10454 no-return-await valid async () => (baz() ? (await bar(), a) : b) ok 10455 no-return-await valid async () => (baz() ? (await bar() && a) : b) ok 10456 no-return-await valid async () => (baz() ? a : (await bar(), b)) ok 10457 no-return-await valid async () => (baz() ? a : (await bar() && b)) ok 10458 no-return-await valid async function foo() { try { return await bar(); } catch (e) { baz(); } } ok 10459 no-return-await valid async function foo() { try { return await bar(); } finally { baz(); } } ok 10460 no-return-await valid async function foo() { try {} catch (e) { return await bar(); } finally { baz(); } } ok 10461 no-return-await valid async function foo() { try { try {} finally { return await bar(); } } finally { baz(); } } ok 10462 no-return-await valid async function foo() { try { try {} catch (e) { return await bar(); } } finally { baz(); } } ok 10463 no-return-await valid async function foo() { try { return (a, await bar()); } catch (e) { baz(); } } ok 10464 no-return-await valid async function foo() { try { return (qux() ? await bar() : b); } catch (e) { baz(); } } ok 10465 no-return-await valid async function foo() { try { return (a && await bar()); } catch (e) { baz(); } } ok 10466 no-return-await invalid async function foo() { return await bar(); } ok 10467 no-return-await invalid async function foo() { return (a, await bar()); } ok 10468 no-return-await invalid async function foo() { return (a, b, await bar()); } ok 10469 no-return-await invalid async function foo() { return (a && await bar()); } ok 10470 no-return-await invalid async function foo() { return (a && b && await bar()); } ok 10471 no-return-await invalid async function foo() { return (a || await bar()); } ok 10472 no-return-await invalid async function foo() { return (a, b, (c, d, await bar())); } ok 10473 no-return-await invalid async function foo() { return (a, b, (c && await bar())); } ok 10474 no-return-await invalid async function foo() { return (await baz(), b, await bar()); } ok 10475 no-return-await invalid async function foo() { return (baz() ? await bar() : b); } ok 10476 no-return-await invalid async function foo() { return (baz() ? a : await bar()); } ok 10477 no-return-await invalid async function foo() { return (baz() ? (a, await bar()) : b); } ok 10478 no-return-await invalid async function foo() { return (baz() ? a : (b, await bar())); } ok 10479 no-return-await invalid async function foo() { return (baz() ? (a && await bar()) : b); } ok 10480 no-return-await invalid async function foo() { return (baz() ? a : (b && await bar())); } ok 10481 no-return-await invalid async () => { return await bar(); } ok 10482 no-return-await invalid async () => await bar() ok 10483 no-return-await invalid async () => (a, b, await bar()) ok 10484 no-return-await invalid async () => (a && await bar()) ok 10485 no-return-await invalid async () => (baz() ? await bar() : b) ok 10486 no-return-await invalid async () => (baz() ? a : (b, await bar())) ok 10487 no-return-await invalid async () => (baz() ? a : (b && await bar())) ok 10488 no-return-await invalid async function foo() { if (a) { if (b) { return await bar(); } } } ok 10489 no-return-await invalid async () => { if (a) { if (b) { return await bar(); } } } ok 10490 no-return-await invalid async function foo() { try {} finally { return await bar(); } } ok 10491 no-return-await invalid async function foo() { try {} catch (e) { return await bar(); } } ok 10492 no-return-await invalid try { async function foo() { return await bar(); } } catch (e) {} ok 10493 no-return-await invalid try { async () => await bar(); } catch (e) {} ok 10494 no-return-await invalid async function foo() { try {} catch (e) { try {} catch (e) { return await bar(); } } } ok 10495 no-script-url valid var a = 'Hello World!'; ok 10496 no-script-url valid var a = 10; ok 10497 no-script-url valid var url = 'xjavascript:' ok 10498 no-script-url invalid var a = 'javascript:void(0);'; ok 10499 no-script-url invalid var a = 'javascript:'; ok 10500 no-self-assign valid var a = a ok 10501 no-self-assign valid a = b ok 10502 no-self-assign valid a += a ok 10503 no-self-assign valid a = +a ok 10504 no-self-assign valid a = [a] ok 10505 no-self-assign valid let a = a ok 10506 no-self-assign valid const a = a ok 10507 no-self-assign valid [a] = a ok 10508 no-self-assign valid [a = 1] = [a] ok 10509 no-self-assign valid [a, b] = [b, a] ok 10510 no-self-assign valid [a,, b] = [, b, a] ok 10511 no-self-assign valid [x, a] = [...x, a] ok 10512 no-self-assign valid [a, b] = {a, b} ok 10513 no-self-assign valid ({a} = a) ok 10514 no-self-assign valid ({a = 1} = {a}) ok 10515 no-self-assign valid ({a: b} = {a}) ok 10516 no-self-assign valid ({a} = {a: b}) ok 10517 no-self-assign valid ({a} = {a() {}}) ok 10518 no-self-assign valid ({a} = {[a]: a}) ok 10519 no-self-assign valid ({a, ...b} = {a, ...b}) ok 10520 no-self-assign valid a.b = a.c ok 10521 no-self-assign valid a.b = c.b ok 10522 no-self-assign valid a.b = a[b] ok 10523 no-self-assign valid a[b] = a.b ok 10524 no-self-assign valid a.b().c = a.b().c ok 10525 no-self-assign valid b().c = b().c ok 10526 no-self-assign valid a[b + 1] = a[b + 1] ok 10527 no-self-assign valid a.b = a.b ok 10528 no-self-assign valid a.b.c = a.b.c ok 10529 no-self-assign valid a[b] = a[b] ok 10530 no-self-assign valid a['b'] = a['b'] ok 10531 no-self-assign valid a[ 'b' ] = a[ 'b' ] ok 10532 no-self-assign invalid a = a ok 10533 no-self-assign invalid [a] = [a] ok 10534 no-self-assign invalid [a, b] = [a, b] ok 10535 no-self-assign invalid [a, b] = [a, c] ok 10536 no-self-assign invalid [a, b] = [, b] ok 10537 no-self-assign invalid [a, ...b] = [a, ...b] ok 10538 no-self-assign invalid [[a], {b}] = [[a], {b}] ok 10539 no-self-assign invalid ({a} = {a}) ok 10540 no-self-assign invalid ({a: b} = {a: b}) ok 10541 no-self-assign invalid ({a, b} = {a, b}) ok 10542 no-self-assign invalid ({a, b} = {b, a}) ok 10543 no-self-assign invalid ({a, b} = {c, a}) ok 10544 no-self-assign invalid ({a: {b}, c: [d]} = {a: {b}, c: [d]}) ok 10545 no-self-assign invalid ({a, b} = {a, ...x, b}) ok 10546 no-self-assign invalid a.b = a.b ok 10547 no-self-assign invalid a.b.c = a.b.c ok 10548 no-self-assign invalid a[b] = a[b] ok 10549 no-self-assign invalid a['b'] = a['b'] ok 10550 no-self-assign invalid a[ 'b' ] = a[ 'b' ] ok 10551 no-self-assign invalid a.b = a.b ok 10552 no-self-assign invalid a.b.c = a.b.c ok 10553 no-self-assign invalid a[b] = a[b] ok 10554 no-self-assign invalid a['b'] = a['b'] ok 10555 no-self-assign invalid a[ 'b' ] = a[ 'b' ] ok 10556 no-self-compare valid if (x === y) { } ok 10557 no-self-compare valid if (1 === 2) { } ok 10558 no-self-compare valid y=x*x ok 10559 no-self-compare valid foo.bar.baz === foo.bar.qux ok 10560 no-self-compare invalid if (x === x) { } ok 10561 no-self-compare invalid if (x !== x) { } ok 10562 no-self-compare invalid if (x > x) { } ok 10563 no-self-compare invalid if ('x' > 'x') { } ok 10564 no-self-compare invalid do {} while (x === x) ok 10565 no-self-compare invalid x === x ok 10566 no-self-compare invalid x !== x ok 10567 no-self-compare invalid x == x ok 10568 no-self-compare invalid x != x ok 10569 no-self-compare invalid x > x ok 10570 no-self-compare invalid x < x ok 10571 no-self-compare invalid x >= x ok 10572 no-self-compare invalid x <= x ok 10573 no-self-compare invalid foo.bar().baz.qux >= foo.bar ().baz .qux ok 10574 no-sequences valid var arr = [1, 2]; ok 10575 no-sequences valid var obj = {a: 1, b: 2}; ok 10576 no-sequences valid var a = 1, b = 2; ok 10577 no-sequences valid var foo = (1, 2); ok 10578 no-sequences valid (0,eval)("foo()"); ok 10579 no-sequences valid for (i = 1, j = 2;; i++, j++); ok 10580 no-sequences valid foo(a, (b, c), d); ok 10581 no-sequences valid do {} while ((doSomething(), !!test)); ok 10582 no-sequences valid for ((doSomething(), somethingElse()); (doSomething(), !!test); ); ok 10583 no-sequences valid if ((doSomething(), !!test)); ok 10584 no-sequences valid switch ((doSomething(), !!test)) {} ok 10585 no-sequences valid while ((doSomething(), !!test)); ok 10586 no-sequences valid with ((doSomething(), val)) {} ok 10587 no-sequences valid a => ((doSomething(), a)) ok 10588 no-sequences invalid a = 1, 2 ok 10589 no-sequences invalid do {} while (doSomething(), !!test); ok 10590 no-sequences invalid for (; doSomething(), !!test; ); ok 10591 no-sequences invalid if (doSomething(), !!test); ok 10592 no-sequences invalid switch (doSomething(), val) {} ok 10593 no-sequences invalid while (doSomething(), !!test); ok 10594 no-sequences invalid with (doSomething(), val) {} ok 10595 no-sequences invalid a => (doSomething(), a) ok 10596 no-shadow-restricted-names valid function foo(bar){ var baz; } ok 10597 no-shadow-restricted-names valid !function foo(bar){ var baz; } ok 10598 no-shadow-restricted-names valid !function(bar){ var baz; } ok 10599 no-shadow-restricted-names valid try {} catch(e) {} ok 10600 no-shadow-restricted-names valid export default function() {} ok 10601 no-shadow-restricted-names valid try {} catch {} ok 10602 no-shadow-restricted-names valid var undefined; ok 10603 no-shadow-restricted-names valid var undefined; doSomething(undefined); ok 10604 no-shadow-restricted-names valid var undefined; var undefined; ok 10605 no-shadow-restricted-names valid let undefined ok 10606 no-shadow-restricted-names invalid function NaN(NaN) { var NaN; !function NaN(NaN) { try {} catch(NaN) {} }; } ok 10607 no-shadow-restricted-names invalid function undefined(undefined) { !function undefined(undefined) { try {} catch(undefined) {} }; } ok 10608 no-shadow-restricted-names invalid function Infinity(Infinity) { var Infinity; !function Infinity(Infinity) { try {} catch(Infinity) {} }; } ok 10609 no-shadow-restricted-names invalid function arguments(arguments) { var arguments; !function arguments(arguments) { try {} catch(arguments) {} }; } ok 10610 no-shadow-restricted-names invalid function eval(eval) { var eval; !function eval(eval) { try {} catch(eval) {} }; } ok 10611 no-shadow-restricted-names invalid var eval = (eval) => { var eval; !function eval(eval) { try {} catch(eval) {} }; } ok 10612 no-shadow-restricted-names invalid var [undefined] = [1] ok 10613 no-shadow-restricted-names invalid var {undefined} = obj; var {a: undefined} = obj; var {a: {b: {undefined}}} = obj; var {a, ...undefined} = obj; ok 10614 no-shadow-restricted-names invalid var undefined; undefined = 5; ok 10615 no-shadow valid var a=3; function b(x) { a++; return x + a; }; setTimeout(function() { b(a); }, 0); ok 10616 no-shadow valid (function() { var doSomething = function doSomething() {}; doSomething() }()) ok 10617 no-shadow valid var arguments; function bar() { } ok 10618 no-shadow valid var a=3; var b = (x) => { a++; return x + a; }; setTimeout(() => { b(a); }, 0); ok 10619 no-shadow valid class A {} ok 10620 no-shadow valid class A { constructor() { var a; } } ok 10621 no-shadow valid (function() { var A = class A {}; })() ok 10622 no-shadow valid { var a; } var a; ok 10623 no-shadow valid { let a; } let a; ok 10624 no-shadow valid { let a; } var a; ok 10625 no-shadow valid { let a; } function a() {} ok 10626 no-shadow valid { const a = 0; } const a = 1; ok 10627 no-shadow valid { const a = 0; } var a; ok 10628 no-shadow valid { const a = 0; } function a() {} ok 10629 no-shadow valid function foo() { let a; } let a; ok 10630 no-shadow valid function foo() { let a; } var a; ok 10631 no-shadow valid function foo() { let a; } function a() {} ok 10632 no-shadow valid function foo() { var a; } let a; ok 10633 no-shadow valid function foo() { var a; } var a; ok 10634 no-shadow valid function foo() { var a; } function a() {} ok 10635 no-shadow valid function foo(a) { } let a; ok 10636 no-shadow valid function foo(a) { } var a; ok 10637 no-shadow valid function foo(a) { } function a() {} ok 10638 no-shadow valid { let a; } let a; ok 10639 no-shadow valid { let a; } var a; ok 10640 no-shadow valid { const a = 0; } const a = 1; ok 10641 no-shadow valid { const a = 0; } var a; ok 10642 no-shadow valid function foo() { let a; } let a; ok 10643 no-shadow valid function foo() { let a; } var a; ok 10644 no-shadow valid function foo() { var a; } let a; ok 10645 no-shadow valid function foo() { var a; } var a; ok 10646 no-shadow valid function foo(a) { } let a; ok 10647 no-shadow valid function foo(a) { } var a; ok 10648 no-shadow valid function foo() { var Object = 0; } ok 10649 no-shadow valid function foo() { var top = 0; } ok 10650 no-shadow valid var Object = 0; ok 10651 no-shadow valid var top = 0; ok 10652 no-shadow valid function foo(cb) { (function (cb) { cb(42); })(cb); } ok 10653 no-shadow invalid function a(x) { var b = function c() { var x = 'foo'; }; } ok 10654 no-shadow invalid var a = (x) => { var b = () => { var x = 'foo'; }; } ok 10655 no-shadow invalid function a(x) { var b = function () { var x = 'foo'; }; } ok 10656 no-shadow invalid var x = 1; function a(x) { return ++x; } ok 10657 no-shadow invalid var a=3; function b() { var a=10; } ok 10658 no-shadow invalid var a=3; function b() { var a=10; }; setTimeout(function() { b(); }, 0); ok 10659 no-shadow invalid var a=3; function b() { var a=10; var b=0; }; setTimeout(function() { b(); }, 0); ok 10660 no-shadow invalid var x = 1; { let x = 2; } ok 10661 no-shadow invalid let x = 1; { const x = 2; } ok 10662 no-shadow invalid { let a; } function a() {} ok 10663 no-shadow invalid { const a = 0; } function a() {} ok 10664 no-shadow invalid function foo() { let a; } function a() {} ok 10665 no-shadow invalid function foo() { var a; } function a() {} ok 10666 no-shadow invalid function foo(a) { } function a() {} ok 10667 no-shadow invalid { let a; } let a; ok 10668 no-shadow invalid { let a; } var a; ok 10669 no-shadow invalid { let a; } function a() {} ok 10670 no-shadow invalid { const a = 0; } const a = 1; ok 10671 no-shadow invalid { const a = 0; } var a; ok 10672 no-shadow invalid { const a = 0; } function a() {} ok 10673 no-shadow invalid function foo() { let a; } let a; ok 10674 no-shadow invalid function foo() { let a; } var a; ok 10675 no-shadow invalid function foo() { let a; } function a() {} ok 10676 no-shadow invalid function foo() { var a; } let a; ok 10677 no-shadow invalid function foo() { var a; } var a; ok 10678 no-shadow invalid function foo() { var a; } function a() {} ok 10679 no-shadow invalid function foo(a) { } let a; ok 10680 no-shadow invalid function foo(a) { } var a; ok 10681 no-shadow invalid function foo(a) { } function a() {} ok 10682 no-shadow invalid (function a() { function a(){} })() ok 10683 no-shadow invalid (function a() { class a{} })() ok 10684 no-shadow invalid (function a() { (function a(){}); })() ok 10685 no-shadow invalid (function a() { (class a{}); })() ok 10686 no-shadow invalid (function() { var a = function(a) {}; })() ok 10687 no-shadow invalid (function() { var a = function() { function a() {} }; })() ok 10688 no-shadow invalid (function() { var a = function() { class a{} }; })() ok 10689 no-shadow invalid (function() { var a = function() { (function a() {}); }; })() ok 10690 no-shadow invalid (function() { var a = function() { (class a{}); }; })() ok 10691 no-shadow invalid (function() { var a = class { constructor() { class a {} } }; })() ok 10692 no-shadow invalid class A { constructor() { var A; } } ok 10693 no-shadow invalid (function a() { function a(){ function a(){} } })() ok 10694 no-shadow invalid function foo() { var Object = 0; } ok 10695 no-shadow invalid function foo() { var top = 0; } ok 10696 no-shadow invalid var Object = 0; ok 10697 no-shadow invalid var top = 0; ok 10698 no-shadow invalid var Object = 0; ok 10699 no-shadow invalid var top = 0; ok 10700 no-shadow invalid function foo(cb) { (function (cb) { cb(42); })(cb); } ok 10701 no-spaced-func valid f(); ok 10702 no-spaced-func valid f(a, b); ok 10703 no-spaced-func valid f.b(); ok 10704 no-spaced-func valid f.b().c(); ok 10705 no-spaced-func valid f()() ok 10706 no-spaced-func valid (function() {}()) ok 10707 no-spaced-func valid var f = new Foo() ok 10708 no-spaced-func valid var f = new Foo ok 10709 no-spaced-func valid f( (0) ) ok 10710 no-spaced-func valid ( f )( 0 ) ok 10711 no-spaced-func valid ( (f) )( (0) ) ok 10712 no-spaced-func valid ( f()() )(0) ok 10713 no-spaced-func valid (function(){ if (foo) { bar(); } }()); ok 10714 no-spaced-func valid f(0, (1)) ok 10715 no-spaced-func valid describe/**/('foo', function () {}); ok 10716 no-spaced-func valid new (foo()) ok 10717 no-spaced-func invalid f (); ok 10718 no-spaced-func invalid f (a, b); ok 10719 no-spaced-func invalid f (); ok 10720 no-spaced-func invalid f.b (); ok 10721 no-spaced-func invalid f.b().c (); ok 10722 no-spaced-func invalid f() () ok 10723 no-spaced-func invalid (function() {} ()) ok 10724 no-spaced-func invalid var f = new Foo () ok 10725 no-spaced-func invalid f ( (0) ) ok 10726 no-spaced-func invalid f(0) (1) ok 10727 no-spaced-func invalid (f) (0) ok 10728 no-spaced-func invalid f (); t (); ok 10729 no-sparse-arrays valid var a = [ 1, 2, ] ok 10730 no-sparse-arrays invalid var a = [,]; ok 10731 no-sparse-arrays invalid var a = [ 1,, 2]; ok 10732 no-sync valid var foo = fs.foo.foo(); ok 10733 no-sync valid var foo = fs.fooSync; ok 10734 no-sync valid if (true) {fs.fooSync();} ok 10735 no-sync invalid var foo = fs.fooSync(); ok 10736 no-sync invalid var foo = fs.fooSync(); ok 10737 no-sync invalid if (true) {fs.fooSync();} ok 10738 no-sync invalid var foo = fs.fooSync; ok 10739 no-sync invalid function someFunction() {fs.fooSync();} ok 10740 no-sync invalid function someFunction() {fs.fooSync();} ok 10741 no-sync invalid var a = function someFunction() {fs.fooSync();} ok 10742 no-tabs valid function test(){ } ok 10743 no-tabs valid function test(){ // sdfdsf } ok 10744 no-tabs valid doSomething(); ok 10745 no-tabs valid // comment ok 10746 no-tabs invalid function test(){ } ok 10747 no-tabs invalid /** comment test */ ok 10748 no-tabs invalid function test(){ // sdfdsf } ok 10749 no-tabs invalid function test(){ //sdfdsf } ok 10750 no-tabs invalid function test(){ // sdfdsf } ok 10751 no-tabs invalid // Comment with leading tab and inline tab ok 10752 no-template-curly-in-string valid `Hello, ${name}`; ok 10753 no-template-curly-in-string valid templateFunction`Hello, ${name}`; ok 10754 no-template-curly-in-string valid `Hello, name`; ok 10755 no-template-curly-in-string valid 'Hello, name'; ok 10756 no-template-curly-in-string valid 'Hello, ' + name; ok 10757 no-template-curly-in-string valid `Hello, ${index + 1}` ok 10758 no-template-curly-in-string valid `Hello, ${name + " foo"}` ok 10759 no-template-curly-in-string valid `Hello, ${name || "foo"}` ok 10760 no-template-curly-in-string valid `Hello, ${{foo: "bar"}.foo}` ok 10761 no-template-curly-in-string valid '$2' ok 10762 no-template-curly-in-string valid '${' ok 10763 no-template-curly-in-string valid '$}' ok 10764 no-template-curly-in-string valid '{foo}' ok 10765 no-template-curly-in-string valid '{foo: "bar"}' ok 10766 no-template-curly-in-string valid const number = 3 ok 10767 no-template-curly-in-string invalid 'Hello, ${name}' ok 10768 no-template-curly-in-string invalid "Hello, ${name}" ok 10769 no-template-curly-in-string invalid '${greeting}, ${name}' ok 10770 no-template-curly-in-string invalid 'Hello, ${index + 1}' ok 10771 no-template-curly-in-string invalid 'Hello, ${name + " foo"}' ok 10772 no-template-curly-in-string invalid 'Hello, ${name || "foo"}' ok 10773 no-template-curly-in-string invalid 'Hello, ${{foo: "bar"}.foo}' ok 10774 no-ternary valid "x ? y"; ok 10775 no-ternary invalid var foo = true ? thing : stuff; ok 10776 no-ternary invalid true ? thing() : stuff(); ok 10777 no-ternary invalid function foo(bar) { return bar ? baz : qux; } ok 10778 no-this-before-super valid class A { } ok 10779 no-this-before-super valid class A { constructor() { } } ok 10780 no-this-before-super valid class A { constructor() { this.b = 0; } } ok 10781 no-this-before-super valid class A { constructor() { this.b(); } } ok 10782 no-this-before-super valid class A extends null { } ok 10783 no-this-before-super valid class A extends null { constructor() { } } ok 10784 no-this-before-super valid class A extends B { } ok 10785 no-this-before-super valid class A extends B { constructor() { super(); } } ok 10786 no-this-before-super valid class A extends B { constructor() { super(); this.c = this.d; } } ok 10787 no-this-before-super valid class A extends B { constructor() { super(); this.c(); } } ok 10788 no-this-before-super valid class A extends B { constructor() { super(); super.c(); } } ok 10789 no-this-before-super valid class A extends B { constructor() { if (true) { super(); } else { super(); } this.c(); } } ok 10790 no-this-before-super valid class A extends B { constructor() { class B extends C { constructor() { super(); this.d = 0; } } super(); } } ok 10791 no-this-before-super valid class A extends B { constructor() { var B = class extends C { constructor() { super(); this.d = 0; } }; super(); } } ok 10792 no-this-before-super valid class A extends B { constructor() { function c() { this.d(); } super(); } } ok 10793 no-this-before-super valid class A extends B { constructor() { var c = function c() { this.d(); }; super(); } } ok 10794 no-this-before-super valid class A extends B { constructor() { var c = () => this.d(); super(); } } ok 10795 no-this-before-super valid class A { b() { this.c = 0; } } ok 10796 no-this-before-super valid class A extends B { c() { this.d = 0; } } ok 10797 no-this-before-super valid function a() { this.b = 0; } ok 10798 no-this-before-super valid class A extends B { constructor() { if (a) { super(); this.a(); } else { super(); this.b(); } } } ok 10799 no-this-before-super valid class A extends B { constructor() { if (a) super(); else super(); this.a(); } } ok 10800 no-this-before-super valid class A extends B { constructor() { try { super(); } finally {} this.a(); } } ok 10801 no-this-before-super valid class A extends B { constructor(a) { super(); for (const b of a) { this.a(); } } } ok 10802 no-this-before-super valid class A extends B { constructor(a) { for (const b of a) { foo(b); } super(); } } ok 10803 no-this-before-super valid class A extends B { constructor(a) { super(); this.a = a && function(){} && this.foo; } } ok 10804 no-this-before-super valid class A extends Object { constructor() { super(); for (let i = 0; i < 0; i++); this; } } ok 10805 no-this-before-super valid class A { constructor() { return; this; } } ok 10806 no-this-before-super valid class A extends B { constructor() { return; this; } } ok 10807 no-this-before-super valid class A extends B { constructor(props) { super(props); try { let arr = []; for (let a of arr) { } } catch (err) { } } } ok 10808 no-this-before-super invalid class A extends B { constructor() { this.c = 0; } } ok 10809 no-this-before-super invalid class A extends B { constructor() { this.c(); } } ok 10810 no-this-before-super invalid class A extends B { constructor() { super.c(); } } ok 10811 no-this-before-super invalid class A extends B { constructor() { this.c = 0; super(); } } ok 10812 no-this-before-super invalid class A extends B { constructor() { this.c(); super(); } } ok 10813 no-this-before-super invalid class A extends B { constructor() { super.c(); super(); } } ok 10814 no-this-before-super invalid class A extends B { constructor() { super(this.c); } } ok 10815 no-this-before-super invalid class A extends B { constructor() { super(this.c()); } } ok 10816 no-this-before-super invalid class A extends B { constructor() { super(super.c()); } } ok 10817 no-this-before-super invalid class A extends B { constructor() { class C extends D { constructor() { super(); this.e(); } } this.f(); super(); } } ok 10818 no-this-before-super invalid class A extends B { constructor() { class C extends D { constructor() { this.e(); super(); } } super(); this.f(); } } ok 10819 no-this-before-super invalid class A extends B { constructor() { if (a) super(); this.a(); } } ok 10820 no-this-before-super invalid class A extends B { constructor() { try { super(); } finally { this.a; } } } ok 10821 no-this-before-super invalid class A extends B { constructor() { try { super(); } catch (err) { } this.a; } } ok 10822 no-throw-literal valid throw new Error(); ok 10823 no-throw-literal valid throw new Error('error'); ok 10824 no-throw-literal valid throw Error('error'); ok 10825 no-throw-literal valid var e = new Error(); throw e; ok 10826 no-throw-literal valid try {throw new Error();} catch (e) {throw e;}; ok 10827 no-throw-literal valid throw a; ok 10828 no-throw-literal valid throw foo(); ok 10829 no-throw-literal valid throw new foo(); ok 10830 no-throw-literal valid throw foo.bar; ok 10831 no-throw-literal valid throw foo[bar]; ok 10832 no-throw-literal valid throw foo = new Error(); ok 10833 no-throw-literal valid throw 1, 2, new Error(); ok 10834 no-throw-literal valid throw 'literal' && new Error(); ok 10835 no-throw-literal valid throw new Error() || 'literal'; ok 10836 no-throw-literal valid throw foo ? new Error() : 'literal'; ok 10837 no-throw-literal valid throw foo ? 'literal' : new Error(); ok 10838 no-throw-literal valid throw tag `${foo}`; ok 10839 no-throw-literal valid function* foo() { var index = 0; throw yield index++; } ok 10840 no-throw-literal valid async function foo() { throw await bar; } ok 10841 no-throw-literal invalid throw 'error'; ok 10842 no-throw-literal invalid throw 0; ok 10843 no-throw-literal invalid throw false; ok 10844 no-throw-literal invalid throw null; ok 10845 no-throw-literal invalid throw undefined; ok 10846 no-throw-literal invalid throw 'a' + 'b'; ok 10847 no-throw-literal invalid var b = new Error(); throw 'a' + b; ok 10848 no-throw-literal invalid throw foo = 'error'; ok 10849 no-throw-literal invalid throw new Error(), 1, 2, 3; ok 10850 no-throw-literal invalid throw 'literal' && 'not an Error'; ok 10851 no-throw-literal invalid throw foo ? 'not an Error' : 'literal'; ok 10852 no-throw-literal invalid throw `${err}`; ok 10853 no-trailing-spaces valid var a = 5; ok 10854 no-trailing-spaces valid var a = 5, b = 3; ok 10855 no-trailing-spaces valid var a = 5; ok 10856 no-trailing-spaces valid var a = 5, b = 3; ok 10857 no-trailing-spaces valid var a = 5, b = 3; ok 10858 no-trailing-spaces valid ok 10859 no-trailing-spaces valid ok 10860 no-trailing-spaces valid var c = 1; ok 10861 no-trailing-spaces valid var c = 2; ok 10862 no-trailing-spaces valid var c = 3; ok 10863 no-trailing-spaces valid var c = 4; ok 10864 no-trailing-spaces valid let str = `${a} ${b}`; ok 10865 no-trailing-spaces valid let str = `${a} ${b}`; ok 10866 no-trailing-spaces valid // Trailing comment test. ok 10867 no-trailing-spaces valid // Trailing comment test. ok 10868 no-trailing-spaces valid // Trailing comment test. ok 10869 no-trailing-spaces valid /* Trailing comments test. */ ok 10870 no-trailing-spaces valid !/usr/bin/env node ok 10871 no-trailing-spaces invalid var short2 = true; module.exports = { short: short, short2: short } ok 10872 no-trailing-spaces invalid var short2 = true; module.exports = { short: short, short2: short } ok 10873 no-trailing-spaces invalid var short2 = true; module.exports = { short: short, short2: short } ok 10874 no-trailing-spaces invalid var short2 = true; module.exports = { short, short2 } ok 10875 no-trailing-spaces invalid measAr.push("<dl></dl>", " </dt><dd class ='pta-res'>"); ok 10876 no-trailing-spaces invalid measAr.push("<dl></dl>", " </dt><dd class ='pta-res'>"); ok 10877 no-trailing-spaces invalid var a = 5; ok 10878 no-trailing-spaces invalid var a = 5; b = 3; ok 10879 no-trailing-spaces invalid var a = 5; b = 3; ok 10880 no-trailing-spaces invalid var a = 5; b = 3; ok 10881 no-trailing-spaces invalid var c = 1; ok 10882 no-trailing-spaces invalid var c = 2; ok 10883 no-trailing-spaces invalid var a = 5; ok 10884 no-trailing-spaces invalid var a = 5; b = 3; ok 10885 no-trailing-spaces invalid var a = 5; b = 3; ok 10886 no-trailing-spaces invalid var c = 1; ok 10887 no-trailing-spaces invalid var c = 2; ok 10888 no-trailing-spaces invalid var a = 'bar'; ok 10889 no-trailing-spaces invalid var a = 'foo'; var b = 'bar'; ok 10890 no-trailing-spaces invalid let str = `${a} ${b}`; ok 10891 no-trailing-spaces invalid let str = ` ${a} ${b}`; ok 10892 no-trailing-spaces invalid let str = ` ${a} ${b}`; ok 10893 no-trailing-spaces invalid let str = `${a} ${b}`; ok 10894 no-trailing-spaces invalid abcdefg ok 10895 no-trailing-spaces invalid abcdefg ok 10896 no-trailing-spaces invalid var foo = 'bar'; ok 10897 no-trailing-spaces invalid // Trailing comment test. ok 10898 no-trailing-spaces invalid /* Trailing comments test. */ ok 10899 no-trailing-spaces invalid !/usr/bin/env node ok 10900 no-trailing-spaces invalid // Trailing comment default test. ok 10901 no-undef-init valid var a; ok 10902 no-undef-init valid const foo = undefined ok 10903 no-undef-init valid var undefined = 5; var foo = undefined; ok 10904 no-undef-init invalid var a = undefined; ok 10905 no-undef-init invalid var a = undefined, b = 1; ok 10906 no-undef-init invalid var a = 1, b = undefined, c = 5; ok 10907 no-undef-init invalid var [a] = undefined; ok 10908 no-undef-init invalid var {a} = undefined; ok 10909 no-undef-init invalid for(var i in [1,2,3]){var a = undefined; for(var j in [1,2,3]){}} ok 10910 no-undef-init invalid let a = undefined; ok 10911 no-undef-init invalid let a = undefined, b = 1; ok 10912 no-undef-init invalid let a = 1, b = undefined, c = 5; ok 10913 no-undef-init invalid let [a] = undefined; ok 10914 no-undef-init invalid let {a} = undefined; ok 10915 no-undef-init invalid for(var i in [1,2,3]){let a = undefined; for(var j in [1,2,3]){}} ok 10916 no-undef valid var a = 1, b = 2; a; ok 10917 no-undef valid /*global b*/ function f() { b; } ok 10918 no-undef valid function f() { b; } ok 10919 no-undef valid /*global b a:false*/ a; function f() { b; a; } ok 10920 no-undef valid function a(){} a(); ok 10921 no-undef valid function f(b) { b; } ok 10922 no-undef valid var a; a = 1; a++; ok 10923 no-undef valid var a; function f() { a = 1; } ok 10924 no-undef valid /*global b:true*/ b++; ok 10925 no-undef valid /*eslint-env browser*/ window; ok 10926 no-undef valid /*eslint-env node*/ require("a"); ok 10927 no-undef valid Object; isNaN(); ok 10928 no-undef valid toString() ok 10929 no-undef valid hasOwnProperty() ok 10930 no-undef valid function evilEval(stuffToEval) { var ultimateAnswer; ultimateAnswer = 42; eval(stuffToEval); } ok 10931 no-undef valid typeof a ok 10932 no-undef valid typeof (a) ok 10933 no-undef valid var b = typeof a ok 10934 no-undef valid typeof a === 'undefined' ok 10935 no-undef valid if (typeof a === 'undefined') {} ok 10936 no-undef valid function foo() { var [a, b=4] = [1, 2]; return {a, b}; } ok 10937 no-undef valid var toString = 1; ok 10938 no-undef valid function myFunc(...foo) { return foo;} ok 10939 no-undef valid var React, App, a=1; React.render(<App attr={a} />); ok 10940 no-undef valid var console; [1,2,3].forEach(obj => { console.log(obj); }); ok 10941 no-undef valid var Foo; class Bar extends Foo { constructor() { super(); }} ok 10942 no-undef valid import Warning from '../lib/warning'; var warn = new Warning('text'); ok 10943 no-undef valid import * as Warning from '../lib/warning'; var warn = new Warning('text'); ok 10944 no-undef valid var a; [a] = [0]; ok 10945 no-undef valid var a; ({a} = {}); ok 10946 no-undef valid var a; ({b: a} = {}); ok 10947 no-undef valid var obj; [obj.a, obj.b] = [0, 1]; ok 10948 no-undef valid URLSearchParams; ok 10949 no-undef valid Intl; ok 10950 no-undef valid IntersectionObserver; ok 10951 no-undef valid Credential; ok 10952 no-undef valid requestIdleCallback; ok 10953 no-undef valid customElements; ok 10954 no-undef valid PromiseRejectionEvent; ok 10955 no-undef valid /*global b:false*/ function f() { b = 1; } ok 10956 no-undef valid function f() { b = 1; } ok 10957 no-undef valid /*global b:false*/ function f() { b++; } ok 10958 no-undef valid /*global b*/ b = 1; ok 10959 no-undef valid /*global b:false*/ var b = 1; ok 10960 no-undef valid Array = 1; ok 10961 no-undef valid class A { constructor() { new.target; } } ok 10962 no-undef valid var {bacon, ...others} = stuff; foo(others) ok 10963 no-undef invalid a = 1; ok 10964 no-undef invalid if (typeof anUndefinedVar === 'string') {} ok 10965 no-undef invalid var a = b; ok 10966 no-undef invalid function f() { b; } ok 10967 no-undef invalid window; ok 10968 no-undef invalid require("a"); ok 10969 no-undef invalid var React; React.render(<img attr={a} />); ok 10970 no-undef invalid var React, App; React.render(<App attr={a} />); ok 10971 no-undef invalid [a] = [0]; ok 10972 no-undef invalid ({a} = {}); ok 10973 no-undef invalid ({b: a} = {}); ok 10974 no-undef invalid [obj.a, obj.b] = [0, 1]; ok 10975 no-undef invalid const c = 0; const a = {...b, c}; ok 10976 no-undefined valid void 0 ok 10977 no-undefined valid void!0 ok 10978 no-undefined valid void-0 ok 10979 no-undefined valid void+0 ok 10980 no-undefined valid null ok 10981 no-undefined valid undefine ok 10982 no-undefined valid ndefined ok 10983 no-undefined valid a.undefined ok 10984 no-undefined valid this.undefined ok 10985 no-undefined valid global['undefined'] ok 10986 no-undefined valid ({ undefined: bar }) ok 10987 no-undefined valid ({ undefined: bar } = foo) ok 10988 no-undefined valid ({ undefined() {} }) ok 10989 no-undefined valid class Foo { undefined() {} } ok 10990 no-undefined valid (class { undefined() {} }) ok 10991 no-undefined valid import { undefined as a } from 'foo' ok 10992 no-undefined valid export { undefined } from 'foo' ok 10993 no-undefined valid export { undefined as a } from 'foo' ok 10994 no-undefined valid export { a as undefined } from 'foo' ok 10995 no-undefined invalid undefined ok 10996 no-undefined invalid undefined.a ok 10997 no-undefined invalid a[undefined] ok 10998 no-undefined invalid undefined[0] ok 10999 no-undefined invalid f(undefined) ok 11000 no-undefined invalid function f(undefined) {} ok 11001 no-undefined invalid function f() { var undefined; } ok 11002 no-undefined invalid function f() { undefined = true; } ok 11003 no-undefined invalid var undefined; ok 11004 no-undefined invalid try {} catch(undefined) {} ok 11005 no-undefined invalid function undefined() {} ok 11006 no-undefined invalid (function undefined(){}()) ok 11007 no-undefined invalid var foo = function undefined() {} ok 11008 no-undefined invalid foo = function undefined() {} ok 11009 no-undefined invalid undefined = true ok 11010 no-undefined invalid var undefined = true ok 11011 no-undefined invalid ({ undefined }) ok 11012 no-undefined invalid ({ [undefined]: foo }) ok 11013 no-undefined invalid ({ bar: undefined }) ok 11014 no-undefined invalid ({ bar: undefined } = foo) ok 11015 no-undefined invalid var { undefined } = foo ok 11016 no-undefined invalid var { bar: undefined } = foo ok 11017 no-undefined invalid ({ undefined: function undefined() {} }) ok 11018 no-undefined invalid ({ foo: function undefined() {} }) ok 11019 no-undefined invalid class Foo { [undefined]() {} } ok 11020 no-undefined invalid (class { [undefined]() {} }) ok 11021 no-undefined invalid var undefined = true; undefined = false; ok 11022 no-undefined invalid import undefined from 'foo' ok 11023 no-undefined invalid import * as undefined from 'foo' ok 11024 no-undefined invalid import { undefined } from 'foo' ok 11025 no-undefined invalid import { a as undefined } from 'foo' ok 11026 no-undefined invalid let a = [b, ...undefined] ok 11027 no-undefined invalid [a, ...undefined] = b ok 11028 no-undefined invalid [a = undefined] = b ok 11029 no-underscore-dangle valid var foo_bar = 1; ok 11030 no-underscore-dangle valid function foo_bar() {} ok 11031 no-underscore-dangle valid foo.bar.__proto__; ok 11032 no-underscore-dangle valid console.log(__filename); console.log(__dirname); ok 11033 no-underscore-dangle valid var _ = require('underscore'); ok 11034 no-underscore-dangle valid var a = b._; ok 11035 no-underscore-dangle valid export default function() {} ok 11036 no-underscore-dangle valid var _foo = 1 ok 11037 no-underscore-dangle valid var __proto__ = 1; ok 11038 no-underscore-dangle valid foo._bar; ok 11039 no-underscore-dangle valid function _foo() {} ok 11040 no-underscore-dangle valid this._bar; ok 11041 no-underscore-dangle valid class foo { constructor() { super._bar; } } ok 11042 no-underscore-dangle valid class foo { _onClick() { } } ok 11043 no-underscore-dangle valid class foo { onClick_() { } } ok 11044 no-underscore-dangle valid const o = { _onClick() { } } ok 11045 no-underscore-dangle valid const o = { onClick_() { } } ok 11046 no-underscore-dangle valid const o = { _foo: 'bar' } ok 11047 no-underscore-dangle valid const o = { foo_: 'bar' } ok 11048 no-underscore-dangle invalid var _foo = 1 ok 11049 no-underscore-dangle invalid var foo_ = 1 ok 11050 no-underscore-dangle invalid function _foo() {} ok 11051 no-underscore-dangle invalid function foo_() {} ok 11052 no-underscore-dangle invalid var __proto__ = 1; ok 11053 no-underscore-dangle invalid foo._bar; ok 11054 no-underscore-dangle invalid this._prop; ok 11055 no-underscore-dangle invalid class foo { constructor() { super._prop; } } ok 11056 no-underscore-dangle invalid class foo { constructor() { this._prop; } } ok 11057 no-underscore-dangle invalid class foo { _onClick() { } } ok 11058 no-underscore-dangle invalid class foo { onClick_() { } } ok 11059 no-underscore-dangle invalid const o = { _onClick() { } } ok 11060 no-underscore-dangle invalid const o = { onClick_() { } } ok 11061 no-unexpected-multiline valid (x || y).aFunction() ok 11062 no-unexpected-multiline valid [a, b, c].forEach(doSomething) ok 11063 no-unexpected-multiline valid var a = b; (x || y).doSomething() ok 11064 no-unexpected-multiline valid var a = b ;(x || y).doSomething() ok 11065 no-unexpected-multiline valid var a = b void (x || y).doSomething() ok 11066 no-unexpected-multiline valid var a = b; [1, 2, 3].forEach(console.log) ok 11067 no-unexpected-multiline valid var a = b void [1, 2, 3].forEach(console.log) ok 11068 no-unexpected-multiline valid "abc\ (123)" ok 11069 no-unexpected-multiline valid var a = ( (123) ) ok 11070 no-unexpected-multiline valid f( (x) ) ok 11071 no-unexpected-multiline valid ( function () {} )[1] ok 11072 no-unexpected-multiline valid let x = function() {}; `hello` ok 11073 no-unexpected-multiline valid let x = function() {} x `hello` ok 11074 no-unexpected-multiline valid String.raw `Hi ${2+3}!`; ok 11075 no-unexpected-multiline valid x .y z `Valid Test Case` ok 11076 no-unexpected-multiline valid foo / bar /2 ok 11077 no-unexpected-multiline valid foo / bar / mgy ok 11078 no-unexpected-multiline valid foo / bar / gym ok 11079 no-unexpected-multiline valid foo / bar / ygm ok 11080 no-unexpected-multiline valid foo / bar /GYM ok 11081 no-unexpected-multiline valid foo / bar / baz ok 11082 no-unexpected-multiline valid foo /bar/g ok 11083 no-unexpected-multiline valid foo /denominator/ 2 ok 11084 no-unexpected-multiline valid foo / /abc/ ok 11085 no-unexpected-multiline valid 5 / (5 / 5) ok 11086 no-unexpected-multiline invalid var a = b (x || y).doSomething() ok 11087 no-unexpected-multiline invalid var a = (a || b) (x || y).doSomething() ok 11088 no-unexpected-multiline invalid var a = (a || b) (x).doSomething() ok 11089 no-unexpected-multiline invalid var a = b [a, b, c].forEach(doSomething) ok 11090 no-unexpected-multiline invalid var a = b (x || y).doSomething() ok 11091 no-unexpected-multiline invalid var a = b [a, b, c].forEach(doSomething) ok 11092 no-unexpected-multiline invalid let x = function() {} `hello` ok 11093 no-unexpected-multiline invalid let x = function() {} x `hello` ok 11094 no-unexpected-multiline invalid x .y z `Invalid Test Case` ok 11095 no-unexpected-multiline invalid foo / bar /gym ok 11096 no-unexpected-multiline invalid foo / bar /g ok 11097 no-unexpected-multiline invalid foo / bar /g.test(baz) ok 11098 no-unexpected-multiline invalid foo /bar/gimuygimuygimuy.test(baz) ok 11099 no-unexpected-multiline invalid foo /bar/s.test(baz) ok 11100 no-unmodified-loop-condition valid var foo = 0; while (foo) { ++foo; } ok 11101 no-unmodified-loop-condition valid let foo = 0; while (foo) { ++foo; } ok 11102 no-unmodified-loop-condition valid var foo = 0; while (foo) { foo += 1; } ok 11103 no-unmodified-loop-condition valid var foo = 0; while (foo++) { } ok 11104 no-unmodified-loop-condition valid var foo = 0; while (foo = next()) { } ok 11105 no-unmodified-loop-condition valid var foo = 0; while (ok(foo)) { } ok 11106 no-unmodified-loop-condition valid var foo = 0, bar = 0; while (++foo < bar) { } ok 11107 no-unmodified-loop-condition valid var foo = 0, obj = {}; while (foo === obj.bar) { } ok 11108 no-unmodified-loop-condition valid var foo = 0, f = {}, bar = {}; while (foo === f(bar)) { } ok 11109 no-unmodified-loop-condition valid var foo = 0, f = {}; while (foo === f()) { } ok 11110 no-unmodified-loop-condition valid var foo = 0, tag = 0; while (foo === tag`abc`) { } ok 11111 no-unmodified-loop-condition valid function* foo() { var foo = 0; while (yield foo) { } } ok 11112 no-unmodified-loop-condition valid function* foo() { var foo = 0; while (foo === (yield)) { } } ok 11113 no-unmodified-loop-condition valid var foo = 0; while (foo.ok) { } ok 11114 no-unmodified-loop-condition valid var foo = 0; while (foo) { update(); } function update() { ++foo; } ok 11115 no-unmodified-loop-condition valid var foo = 0, bar = 9; while (foo < bar) { foo += 1; } ok 11116 no-unmodified-loop-condition valid var foo = 0, bar = 1, baz = 2; while (foo ? bar : baz) { foo += 1; } ok 11117 no-unmodified-loop-condition valid var foo = 0, bar = 0; while (foo && bar) { ++foo; ++bar; } ok 11118 no-unmodified-loop-condition valid var foo = 0, bar = 0; while (foo || bar) { ++foo; ++bar; } ok 11119 no-unmodified-loop-condition valid var foo = 0; do { ++foo; } while (foo); ok 11120 no-unmodified-loop-condition valid var foo = 0; do { } while (foo++); ok 11121 no-unmodified-loop-condition valid for (var foo = 0; foo; ++foo) { } ok 11122 no-unmodified-loop-condition valid for (var foo = 0; foo;) { ++foo } ok 11123 no-unmodified-loop-condition valid var foo = 0, bar = 0; for (bar; foo;) { ++foo } ok 11124 no-unmodified-loop-condition valid var foo; if (foo) { } ok 11125 no-unmodified-loop-condition valid var a = [1, 2, 3]; var len = a.length; for (var i = 0; i < len - 1; i++) {} ok 11126 no-unmodified-loop-condition invalid var foo = 0; while (foo) { } foo = 1; ok 11127 no-unmodified-loop-condition invalid var foo = 0; while (!foo) { } foo = 1; ok 11128 no-unmodified-loop-condition invalid var foo = 0; while (foo != null) { } foo = 1; ok 11129 no-unmodified-loop-condition invalid var foo = 0, bar = 9; while (foo < bar) { } foo = 1; ok 11130 no-unmodified-loop-condition invalid var foo = 0, bar = 0; while (foo && bar) { ++bar; } foo = 1; ok 11131 no-unmodified-loop-condition invalid var foo = 0, bar = 0; while (foo && bar) { ++foo; } foo = 1; ok 11132 no-unmodified-loop-condition invalid var a, b, c; while (a < c && b < c) { ++a; } foo = 1; ok 11133 no-unmodified-loop-condition invalid var foo = 0; while (foo ? 1 : 0) { } foo = 1; ok 11134 no-unmodified-loop-condition invalid var foo = 0; while (foo) { update(); } function update(foo) { ++foo; } ok 11135 no-unmodified-loop-condition invalid var foo; do { } while (foo); ok 11136 no-unmodified-loop-condition invalid for (var foo = 0; foo < 10; ) { } foo = 1; ok 11137 no-unneeded-ternary valid config.newIsCap = config.newIsCap !== false ok 11138 no-unneeded-ternary valid var a = x === 2 ? 'Yes' : 'No'; ok 11139 no-unneeded-ternary valid var a = x === 2 ? true : 'No'; ok 11140 no-unneeded-ternary valid var a = x === 2 ? 'Yes' : false; ok 11141 no-unneeded-ternary valid var a = x === 2 ? 'true' : 'false'; ok 11142 no-unneeded-ternary valid var a = foo ? foo : bar; ok 11143 no-unneeded-ternary valid var value = 'a';var canSet = true;var result = value || (canSet ? 'unset' : 'can not set') ok 11144 no-unneeded-ternary valid var a = foo ? 'Yes' : foo; ok 11145 no-unneeded-ternary valid var a = foo ? bar : foo; ok 11146 no-unneeded-ternary invalid var a = x === 2 ? true : false; ok 11147 no-unneeded-ternary invalid var a = x >= 2 ? true : false; ok 11148 no-unneeded-ternary invalid var a = x ? true : false; ok 11149 no-unneeded-ternary invalid var a = x === 1 ? false : true; ok 11150 no-unneeded-ternary invalid var a = x != 1 ? false : true; ok 11151 no-unneeded-ternary invalid var a = foo() ? false : true; ok 11152 no-unneeded-ternary invalid var a = !foo() ? false : true; ok 11153 no-unneeded-ternary invalid var a = foo + bar ? false : true; ok 11154 no-unneeded-ternary invalid var a = x instanceof foo ? false : true; ok 11155 no-unneeded-ternary invalid var a = foo ? false : false; ok 11156 no-unneeded-ternary invalid var a = foo() ? false : false; ok 11157 no-unneeded-ternary invalid var a = x instanceof foo ? true : false; ok 11158 no-unneeded-ternary invalid var a = !foo ? true : false; ok 11159 no-unneeded-ternary invalid var value = 'a' var canSet = true var result = value ? value : canSet ? 'unset' : 'can not set' ok 11160 no-unneeded-ternary invalid foo ? foo : (bar ? baz : qux) ok 11161 no-unneeded-ternary invalid function* fn() { foo ? foo : yield bar } ok 11162 no-unneeded-ternary invalid var a = foo ? foo : 'No'; ok 11163 no-unneeded-ternary invalid var a = ((foo)) ? (((((foo))))) : ((((((((((((((bar)))))))))))))); ok 11164 no-unreachable valid function foo() { function bar() { return 1; } return bar(); } ok 11165 no-unreachable valid function foo() { return bar(); function bar() { return 1; } } ok 11166 no-unreachable valid function foo() { return x; var x; } ok 11167 no-unreachable valid function foo() { var x = 1; var y = 2; } ok 11168 no-unreachable valid function foo() { var x = 1; var y = 2; return; } ok 11169 no-unreachable valid while (true) { switch (foo) { case 1: x = 1; x = 2;} } ok 11170 no-unreachable valid while (true) { break; var x; } ok 11171 no-unreachable valid while (true) { continue; var x, y; } ok 11172 no-unreachable valid while (true) { throw 'message'; var x; } ok 11173 no-unreachable valid while (true) { if (true) break; var x = 1; } ok 11174 no-unreachable valid while (true) continue; ok 11175 no-unreachable valid switch (foo) { case 1: break; var x; } ok 11176 no-unreachable valid switch (foo) { case 1: break; var x; default: throw true; }; ok 11177 no-unreachable valid const arrow_direction = arrow => { switch (arrow) { default: throw new Error(); };} ok 11178 no-unreachable valid var x = 1; y = 2; throw 'uh oh'; var y; ok 11179 no-unreachable valid function foo() { var x = 1; if (x) { return; } x = 2; } ok 11180 no-unreachable valid function foo() { var x = 1; if (x) { } else { return; } x = 2; } ok 11181 no-unreachable valid function foo() { var x = 1; switch (x) { case 0: break; default: return; } x = 2; } ok 11182 no-unreachable valid function foo() { var x = 1; while (x) { return; } x = 2; } ok 11183 no-unreachable valid function foo() { var x = 1; for (x in {}) { return; } x = 2; } ok 11184 no-unreachable valid function foo() { var x = 1; try { return; } finally { x = 2; } } ok 11185 no-unreachable valid function foo() { var x = 1; for (;;) { if (x) break; } x = 2; } ok 11186 no-unreachable valid A: { break A; } foo() ok 11187 no-unreachable invalid function foo() { return x; var x = 1; } ok 11188 no-unreachable invalid function foo() { return x; var x, y = 1; } ok 11189 no-unreachable invalid while (true) { continue; var x = 1; } ok 11190 no-unreachable invalid function foo() { return; x = 1; } ok 11191 no-unreachable invalid function foo() { throw error; x = 1; } ok 11192 no-unreachable invalid while (true) { break; x = 1; } ok 11193 no-unreachable invalid while (true) { continue; x = 1; } ok 11194 no-unreachable invalid function foo() { switch (foo) { case 1: return; x = 1; } } ok 11195 no-unreachable invalid function foo() { switch (foo) { case 1: throw e; x = 1; } } ok 11196 no-unreachable invalid while (true) { switch (foo) { case 1: break; x = 1; } } ok 11197 no-unreachable invalid while (true) { switch (foo) { case 1: continue; x = 1; } } ok 11198 no-unreachable invalid var x = 1; throw 'uh oh'; var y = 2; ok 11199 no-unreachable invalid function foo() { var x = 1; if (x) { return; } else { throw e; } x = 2; } ok 11200 no-unreachable invalid function foo() { var x = 1; if (x) return; else throw -1; x = 2; } ok 11201 no-unreachable invalid function foo() { var x = 1; try { return; } finally {} x = 2; } ok 11202 no-unreachable invalid function foo() { var x = 1; try { } finally { return; } x = 2; } ok 11203 no-unreachable invalid function foo() { var x = 1; do { return; } while (x); x = 2; } ok 11204 no-unreachable invalid function foo() { var x = 1; while (x) { if (x) break; else continue; x = 2; } } ok 11205 no-unreachable invalid function foo() { var x = 1; for (;;) { if (x) continue; } x = 2; } ok 11206 no-unreachable invalid function foo() { var x = 1; while (true) { } x = 2; } ok 11207 no-unreachable invalid const arrow_direction = arrow => { switch (arrow) { default: throw new Error(); }; g() } ok 11208 no-unreachable invalid function foo() { return; a(); // ← ERROR: Unreachable code. (no-unreachable) b() // ↑ ';' token is included in the unreachable code, so this statement will be merged. // comment c(); // ↑ ')' token is included in the unreachable code, so this statement will be merged. } ok 11209 no-unreachable invalid function foo() { return; a(); if (b()) { c() } else { d() } } ok 11210 no-unreachable invalid function foo() { if (a) { return b(); c(); } else { throw err d(); } } ok 11211 no-unreachable invalid function foo() { if (a) { return b(); c(); } else { throw err d(); } e(); } ok 11212 no-unsafe-finally valid var foo = function() { try { return 1; } catch(err) { return 2; } finally { console.log('hola!') } } ok 11213 no-unsafe-finally valid var foo = function() { try { return 1 } catch(err) { return 2 } finally { console.log('hola!') } } ok 11214 no-unsafe-finally valid var foo = function() { try { return 1 } catch(err) { return 2 } finally { function a(x) { return x } } } ok 11215 no-unsafe-finally valid var foo = function() { try { return 1 } catch(err) { return 2 } finally { var a = function(x) { if(!x) { throw new Error() } } } } ok 11216 no-unsafe-finally valid var foo = function() { try { return 1 } catch(err) { return 2 } finally { var a = function(x) { while(true) { if(x) { break } else { continue } } } } } ok 11217 no-unsafe-finally valid var foo = function() { try { return 1 } catch(err) { return 2 } finally { var a = function(x) { label: while(true) { if(x) { break label; } else { continue } } } } } ok 11218 no-unsafe-finally valid var foo = function() { try {} finally { while (true) break; } } ok 11219 no-unsafe-finally valid var foo = function() { try {} finally { while (true) continue; } } ok 11220 no-unsafe-finally valid var foo = function() { try {} finally { switch (true) { case true: break; } } } ok 11221 no-unsafe-finally valid var foo = function() { try {} finally { do { break; } while (true) } } ok 11222 no-unsafe-finally valid var foo = function() { try { return 1; } catch(err) { return 2; } finally { var bar = () => { throw new Error(); }; } }; ok 11223 no-unsafe-finally valid var foo = function() { try { return 1; } catch(err) { return 2 } finally { (x) => x } } ok 11224 no-unsafe-finally valid var foo = function() { try { return 1; } finally { class bar { constructor() {} static ehm() { return 'Hola!'; } } } }; ok 11225 no-unsafe-finally invalid var foo = function() { try { return 1; } catch(err) { return 2; } finally { return 3; } } ok 11226 no-unsafe-finally invalid var foo = function() { try { return 1 } catch(err) { return 2 } finally { if(true) { return 3 } else { return 2 } } } ok 11227 no-unsafe-finally invalid var foo = function() { try { return 1 } catch(err) { return 2 } finally { return 3 } } ok 11228 no-unsafe-finally invalid var foo = function() { try { return 1 } catch(err) { return 2 } finally { return function(x) { return y } } } ok 11229 no-unsafe-finally invalid var foo = function() { try { return 1 } catch(err) { return 2 } finally { return { x: function(c) { return c } } } } ok 11230 no-unsafe-finally invalid var foo = function() { try { return 1 } catch(err) { return 2 } finally { throw new Error() } } ok 11231 no-unsafe-finally invalid var foo = function() { try { foo(); } finally { try { bar(); } finally { return; } } }; ok 11232 no-unsafe-finally invalid var foo = function() { label: try { return 0; } finally { break label; } return 1; } ok 11233 no-unsafe-finally invalid var foo = function() { a: try { return 1; } catch(err) { return 2; } finally { break a; } } ok 11234 no-unsafe-finally invalid var foo = function() { while (true) try {} finally { break; } } ok 11235 no-unsafe-finally invalid var foo = function() { while (true) try {} finally { continue; } } ok 11236 no-unsafe-finally invalid var foo = function() { switch (true) { case true: try {} finally { break; } } } ok 11237 no-unsafe-finally invalid var foo = function() { a: while (true) try {} finally { switch (true) { case true: break a; } } } ok 11238 no-unsafe-finally invalid var foo = function() { a: while (true) try {} finally { switch (true) { case true: continue; } } } ok 11239 no-unsafe-finally invalid var foo = function() { a: switch (true) { case true: try {} finally { switch (true) { case true: break a; } } } } ok 11240 no-unsafe-negation valid a in b ok 11241 no-unsafe-negation valid a in b === false ok 11242 no-unsafe-negation valid !(a in b) ok 11243 no-unsafe-negation valid (!a) in b ok 11244 no-unsafe-negation valid a instanceof b ok 11245 no-unsafe-negation valid a instanceof b === false ok 11246 no-unsafe-negation valid !(a instanceof b) ok 11247 no-unsafe-negation valid (!a) instanceof b ok 11248 no-unsafe-negation invalid !a in b ok 11249 no-unsafe-negation invalid (!a in b) ok 11250 no-unsafe-negation invalid !(a) in b ok 11251 no-unsafe-negation invalid !a instanceof b ok 11252 no-unsafe-negation invalid (!a instanceof b) ok 11253 no-unsafe-negation invalid !(a) instanceof b ok 11254 no-unused-expressions valid function f(){} ok 11255 no-unused-expressions valid a = b ok 11256 no-unused-expressions valid new a ok 11257 no-unused-expressions valid {} ok 11258 no-unused-expressions valid f(); g() ok 11259 no-unused-expressions valid i++ ok 11260 no-unused-expressions valid a() ok 11261 no-unused-expressions valid a && a() ok 11262 no-unused-expressions valid a() || (b = c) ok 11263 no-unused-expressions valid a ? b() : c() ok 11264 no-unused-expressions valid a ? b() || (c = d) : e() ok 11265 no-unused-expressions valid delete foo.bar ok 11266 no-unused-expressions valid void new C ok 11267 no-unused-expressions valid "use strict"; ok 11268 no-unused-expressions valid "directive one"; "directive two"; f(); ok 11269 no-unused-expressions valid function foo() {"use strict"; return true; } ok 11270 no-unused-expressions valid var foo = () => {"use strict"; return true; } ok 11271 no-unused-expressions valid function foo() {"directive one"; "directive two"; f(); } ok 11272 no-unused-expressions valid function foo() { var foo = "use strict"; return true; } ok 11273 no-unused-expressions valid function* foo(){ yield 0; } ok 11274 no-unused-expressions valid async function foo() { await 5; } ok 11275 no-unused-expressions valid async function foo() { await foo.bar; } ok 11276 no-unused-expressions valid async function foo() { bar && await baz; } ok 11277 no-unused-expressions valid async function foo() { foo ? await bar : await baz; } ok 11278 no-unused-expressions valid tag`tagged template literal` ok 11279 no-unused-expressions valid shouldNotBeAffectedByAllowTemplateTagsOption() ok 11280 no-unused-expressions invalid 0 ok 11281 no-unused-expressions invalid a ok 11282 no-unused-expressions invalid f(), 0 ok 11283 no-unused-expressions invalid {0} ok 11284 no-unused-expressions invalid [] ok 11285 no-unused-expressions invalid a && b(); ok 11286 no-unused-expressions invalid a() || false ok 11287 no-unused-expressions invalid a || (b = c) ok 11288 no-unused-expressions invalid a ? b() || (c = d) : e ok 11289 no-unused-expressions invalid `untagged template literal` ok 11290 no-unused-expressions invalid tag`tagged template literal` ok 11291 no-unused-expressions invalid a && b() ok 11292 no-unused-expressions invalid a ? b() : c() ok 11293 no-unused-expressions invalid a || b ok 11294 no-unused-expressions invalid a() && b ok 11295 no-unused-expressions invalid a ? b : 0 ok 11296 no-unused-expressions invalid a ? b : c() ok 11297 no-unused-expressions invalid foo.bar; ok 11298 no-unused-expressions invalid !a ok 11299 no-unused-expressions invalid +a ok 11300 no-unused-expressions invalid "directive one"; f(); "directive two"; ok 11301 no-unused-expressions invalid function foo() {"directive one"; f(); "directive two"; } ok 11302 no-unused-expressions invalid if (0) { "not a directive"; f(); } ok 11303 no-unused-expressions invalid function foo() { var foo = true; "use strict"; } ok 11304 no-unused-expressions invalid var foo = () => { var foo = true; "use strict"; } ok 11305 no-unused-expressions invalid `untagged template literal` ok 11306 no-unused-expressions invalid `untagged template literal` ok 11307 no-unused-expressions invalid tag`tagged template literal` ok 11308 no-unused-labels valid A: break A; ok 11309 no-unused-labels valid A: { foo(); break A; bar(); } ok 11310 no-unused-labels valid A: if (a) { foo(); if (b) break A; bar(); } ok 11311 no-unused-labels valid A: for (var i = 0; i < 10; ++i) { foo(); if (a) break A; bar(); } ok 11312 no-unused-labels valid A: for (var i = 0; i < 10; ++i) { foo(); if (a) continue A; bar(); } ok 11313 no-unused-labels valid A: { B: break B; C: for (var i = 0; i < 10; ++i) { foo(); if (a) break A; if (c) continue C; bar(); } } ok 11314 no-unused-labels valid A: { var A = 0; console.log(A); break A; console.log(A); } ok 11315 no-unused-labels invalid A: var foo = 0; ok 11316 no-unused-labels invalid A: { foo(); bar(); } ok 11317 no-unused-labels invalid A: if (a) { foo(); bar(); } ok 11318 no-unused-labels invalid A: for (var i = 0; i < 10; ++i) { foo(); if (a) break; bar(); } ok 11319 no-unused-labels invalid A: for (var i = 0; i < 10; ++i) { foo(); if (a) continue; bar(); } ok 11320 no-unused-labels invalid A: for (var i = 0; i < 10; ++i) { B: break A; } ok 11321 no-unused-labels invalid A: { var A = 0; console.log(A); } ok 11322 no-unused-labels invalid A: /* comment */ foo ok 11323 no-unused-labels invalid A /* comment */: foo ok 11324 no-unused-vars valid var foo = 5; label: while (true) { console.log(foo); break label; } ok 11325 no-unused-vars valid var foo = 5; while (true) { console.log(foo); break; } ok 11326 no-unused-vars valid for (let prop in box) { box[prop] = parseInt(box[prop]); } ok 11327 no-unused-vars valid var box = {a: 2}; for (var prop in box) { box[prop] = parseInt(box[prop]); } ok 11328 no-unused-vars valid f({ set foo(a) { return; } }); ok 11329 no-unused-vars valid a; var a; ok 11330 no-unused-vars valid var a=10; alert(a); ok 11331 no-unused-vars valid var a=10; (function() { alert(a); })(); ok 11332 no-unused-vars valid var a=10; (function() { setTimeout(function() { alert(a); }, 0); })(); ok 11333 no-unused-vars valid var a=10; d[a] = 0; ok 11334 no-unused-vars valid (function() { var a=10; return a; })(); ok 11335 no-unused-vars valid (function g() {})() ok 11336 no-unused-vars valid function f(a) {alert(a);}; f(); ok 11337 no-unused-vars valid var c = 0; function f(a){ var b = a; return b; }; f(c); ok 11338 no-unused-vars valid function a(x, y){ return y; }; a(); ok 11339 no-unused-vars valid var arr1 = [1, 2]; var arr2 = [3, 4]; for (var i in arr1) { arr1[i] = 5; } for (var i in arr2) { arr2[i] = 10; } ok 11340 no-unused-vars valid var a=10; ok 11341 no-unused-vars valid var min = "min"; Math[min]; ok 11342 no-unused-vars valid Foo.bar = function(baz) { return baz; }; ok 11343 no-unused-vars valid myFunc(function foo() {}.bind(this)) ok 11344 no-unused-vars valid myFunc(function foo(){}.toString()) ok 11345 no-unused-vars valid function foo(first, second) { doStuff(function() { console.log(second);});}; foo() ok 11346 no-unused-vars valid (function() { var doSomething = function doSomething() {}; doSomething() }()) ok 11347 no-unused-vars valid try {} catch(e) {} ok 11348 no-unused-vars valid /*global a */ a; ok 11349 no-unused-vars valid var a=10; (function() { alert(a); })(); ok 11350 no-unused-vars valid function g(bar, baz) { return baz; }; g(); ok 11351 no-unused-vars valid function g(bar, baz) { return baz; }; g(); ok 11352 no-unused-vars valid function g(bar, baz) { return bar; }; g(); ok 11353 no-unused-vars valid function g(bar, baz) { return 2; }; g(); ok 11354 no-unused-vars valid function g(bar, baz) { return bar + baz; }; g(); ok 11355 no-unused-vars valid var g = function(bar, baz) { return 2; }; g(); ok 11356 no-unused-vars valid (function z() { z(); })(); ok 11357 no-unused-vars valid ok 11358 no-unused-vars valid var who = "Paul"; module.exports = `Hello ${who}!`; ok 11359 no-unused-vars valid export var foo = 123; ok 11360 no-unused-vars valid export function foo () {} ok 11361 no-unused-vars valid let toUpper = (partial) => partial.toUpperCase; export {toUpper} ok 11362 no-unused-vars valid export class foo {} ok 11363 no-unused-vars valid class Foo{}; var x = new Foo(); x.foo() ok 11364 no-unused-vars valid const foo = "hello!";function bar(foobar = foo) { foobar.replace(/!$/, " world!");} bar(); ok 11365 no-unused-vars valid function Foo(){}; var x = new Foo(); x.foo() ok 11366 no-unused-vars valid function foo() {var foo = 1; return foo}; foo(); ok 11367 no-unused-vars valid function foo(foo) {return foo}; foo(1); ok 11368 no-unused-vars valid function foo() {function foo() {return 1;}; return foo()}; foo(); ok 11369 no-unused-vars valid function foo() {var foo = 1; return foo}; foo(); ok 11370 no-unused-vars valid function foo(foo) {return foo}; foo(1); ok 11371 no-unused-vars valid function foo() {function foo() {return 1;}; return foo()}; foo(); ok 11372 no-unused-vars valid const x = 1; const [y = x] = []; foo(y); ok 11373 no-unused-vars valid const x = 1; const {y = x} = {}; foo(y); ok 11374 no-unused-vars valid const x = 1; const {z: [y = x]} = {}; foo(y); ok 11375 no-unused-vars valid const x = []; const {z: [y] = x} = {}; foo(y); ok 11376 no-unused-vars valid const x = 1; let y; [y = x] = []; foo(y); ok 11377 no-unused-vars valid const x = 1; let y; ({z: [y = x]} = {}); foo(y); ok 11378 no-unused-vars valid const x = []; let y; ({z: [y] = x} = {}); foo(y); ok 11379 no-unused-vars valid const x = 1; function foo(y = x) { bar(y); } foo(); ok 11380 no-unused-vars valid const x = 1; function foo({y = x} = {}) { bar(y); } foo(); ok 11381 no-unused-vars valid const x = 1; function foo(y = function(z = x) { bar(z); }) { y(); } foo(); ok 11382 no-unused-vars valid const x = 1; function foo(y = function() { bar(x); }) { y(); } foo(); ok 11383 no-unused-vars valid var x = 1; var [y = x] = []; foo(y); ok 11384 no-unused-vars valid var x = 1; var {y = x} = {}; foo(y); ok 11385 no-unused-vars valid var x = 1; var {z: [y = x]} = {}; foo(y); ok 11386 no-unused-vars valid var x = []; var {z: [y] = x} = {}; foo(y); ok 11387 no-unused-vars valid var x = 1, y; [y = x] = []; foo(y); ok 11388 no-unused-vars valid var x = 1, y; ({z: [y = x]} = {}); foo(y); ok 11389 no-unused-vars valid var x = [], y; ({z: [y] = x} = {}); foo(y); ok 11390 no-unused-vars valid var x = 1; function foo(y = x) { bar(y); } foo(); ok 11391 no-unused-vars valid var x = 1; function foo({y = x} = {}) { bar(y); } foo(); ok 11392 no-unused-vars valid var x = 1; function foo(y = function(z = x) { bar(z); }) { y(); } foo(); ok 11393 no-unused-vars valid var x = 1; function foo(y = function() { bar(x); }) { y(); } foo(); ok 11394 no-unused-vars valid /*exported toaster*/ var toaster = 'great' ok 11395 no-unused-vars valid /*exported toaster, poster*/ var toaster = 1; poster = 0; ok 11396 no-unused-vars valid /*exported x*/ var { x } = y ok 11397 no-unused-vars valid /*exported x, y*/ var { x, y } = z ok 11398 no-unused-vars valid /*eslint use-every-a:1*/ var a; ok 11399 no-unused-vars valid /*eslint use-every-a:1*/ !function(a) { return 1; } ok 11400 no-unused-vars valid /*eslint use-every-a:1*/ !function() { var a; return 1 } ok 11401 no-unused-vars valid var _a; ok 11402 no-unused-vars valid var a; function foo() { var _b; } foo(); ok 11403 no-unused-vars valid function foo(_a) { } foo(); ok 11404 no-unused-vars valid function foo(a, _b) { return a; } foo(); ok 11405 no-unused-vars valid var [ firstItemIgnored, secondItem ] = items; console.log(secondItem); ok 11406 no-unused-vars valid (function(obj) { var name; for ( name in obj ) return; })({}); ok 11407 no-unused-vars valid (function(obj) { var name; for ( name in obj ) { return; } })({}); ok 11408 no-unused-vars valid (function(obj) { for ( var name in obj ) { return true } })({}) ok 11409 no-unused-vars valid (function(obj) { for ( var name in obj ) return true })({}) ok 11410 no-unused-vars valid (function(obj) { let name; for ( name in obj ) return; })({}); ok 11411 no-unused-vars valid (function(obj) { let name; for ( name in obj ) { return; } })({}); ok 11412 no-unused-vars valid (function(obj) { for ( let name in obj ) { return true } })({}) ok 11413 no-unused-vars valid (function(obj) { for ( let name in obj ) return true })({}) ok 11414 no-unused-vars valid (function(obj) { for ( const name in obj ) { return true } })({}) ok 11415 no-unused-vars valid (function(obj) { for ( const name in obj ) return true })({}) ok 11416 no-unused-vars valid try{}catch(err){console.error(err);} ok 11417 no-unused-vars valid try{}catch(err){} ok 11418 no-unused-vars valid try{}catch(ignoreErr){} ok 11419 no-unused-vars valid try{}catch(err){} ok 11420 no-unused-vars valid const data = { type: 'coords', x: 1, y: 2 }; const { type, ...coords } = data; console.log(coords); ok 11421 no-unused-vars valid var a = 0, b; b = a = a + 1; foo(b); ok 11422 no-unused-vars valid var a = 0, b; b = a += a + 1; foo(b); ok 11423 no-unused-vars valid var a = 0, b; b = a++; foo(b); ok 11424 no-unused-vars valid function foo(a) { var b = a = a + 1; bar(b) } foo(); ok 11425 no-unused-vars valid function foo(a) { var b = a += a + 1; bar(b) } foo(); ok 11426 no-unused-vars valid function foo(a) { var b = a++; bar(b) } foo(); ok 11427 no-unused-vars valid var unregisterFooWatcher; // ... unregisterFooWatcher = $scope.$watch( "foo", function() { // ...some code.. unregisterFooWatcher(); }); ok 11428 no-unused-vars valid var ref; ref = setInterval( function(){ clearInterval(ref); }, 10); ok 11429 no-unused-vars valid var _timer; function f() { _timer = setTimeout(function () {}, _timer ? 100 : 0); } f(); ok 11430 no-unused-vars valid function foo(cb) { cb = function() { function something(a) { cb(1 + a); } register(something); }(); } foo(); ok 11431 no-unused-vars valid function* foo(cb) { cb = yield function(a) { cb(1 + a); }; } foo(); ok 11432 no-unused-vars valid function foo(cb) { cb = tag`hello${function(a) { cb(1 + a); }}`; } foo(); ok 11433 no-unused-vars valid function foo(cb) { var b; cb = b = function(a) { cb(1 + a); }; b(); } foo(); ok 11434 no-unused-vars valid function someFunction() { var a = 0, i; for (i = 0; i < 2; i++) { a = myFunction(a); } } someFunction(); ok 11435 no-unused-vars valid (function(a, b, {c, d}) { d }) ok 11436 no-unused-vars valid (function(a, b, {c, d}) { c }) ok 11437 no-unused-vars valid (function(a, b, c) { c }) ok 11438 no-unused-vars valid (function(a, b, {c, d}) { c }) ok 11439 no-unused-vars valid (class { set foo(UNUSED) {} }) ok 11440 no-unused-vars valid class Foo { set bar(UNUSED) {} } console.log(Foo) ok 11441 no-unused-vars valid (({a, ...rest}) => rest) ok 11442 no-unused-vars valid /*eslint use-every-a:1*/ !function(b, a) { return 1 } ok 11443 no-unused-vars valid var a = function () { a(); }; a(); ok 11444 no-unused-vars valid var a = function(){ return function () { a(); } }; a(); ok 11445 no-unused-vars valid const a = () => { a(); }; a(); ok 11446 no-unused-vars valid const a = () => () => { a(); }; a(); ok 11447 no-unused-vars invalid function foox() { return foox(); } ok 11448 no-unused-vars invalid (function() { function foox() { if (true) { return foox(); } } }()) ok 11449 no-unused-vars invalid var a=10 ok 11450 no-unused-vars invalid function f() { var a = 1; return function(){ f(a *= 2); }; } ok 11451 no-unused-vars invalid function f() { var a = 1; return function(){ f(++a); }; } ok 11452 no-unused-vars invalid /*global a */ ok 11453 no-unused-vars invalid function foo(first, second) { doStuff(function() { console.log(second);});}; ok 11454 no-unused-vars invalid var a=10; ok 11455 no-unused-vars invalid var a=10; a=20; ok 11456 no-unused-vars invalid var a=10; (function() { var a = 1; alert(a); })(); ok 11457 no-unused-vars invalid var a=10, b=0, c=null; alert(a+b) ok 11458 no-unused-vars invalid var a=10, b=0, c=null; setTimeout(function() { var b=2; alert(a+b+c); }, 0); ok 11459 no-unused-vars invalid var a=10, b=0, c=null; setTimeout(function() { var b=2; var c=2; alert(a+b+c); }, 0); ok 11460 no-unused-vars invalid function f(){var a=[];return a.map(function(){});} ok 11461 no-unused-vars invalid function f(){var a=[];return a.map(function g(){});} ok 11462 no-unused-vars invalid function foo() {function foo(x) { return x; }; return function() {return foo; }; } ok 11463 no-unused-vars invalid function f(){var x;function a(){x=42;}function b(){alert(x);}} ok 11464 no-unused-vars invalid function f(a) {}; f(); ok 11465 no-unused-vars invalid function a(x, y, z){ return y; }; a(); ok 11466 no-unused-vars invalid var min = Math.min ok 11467 no-unused-vars invalid var min = {min: 1} ok 11468 no-unused-vars invalid Foo.bar = function(baz) { return 1; }; ok 11469 no-unused-vars invalid var min = {min: 1} ok 11470 no-unused-vars invalid function gg(baz, bar) { return baz; }; gg(); ok 11471 no-unused-vars invalid (function(foo, baz, bar) { return baz; })(); ok 11472 no-unused-vars invalid (function(foo, baz, bar) { return baz; })(); ok 11473 no-unused-vars invalid (function z(foo) { var bar = 33; })(); ok 11474 no-unused-vars invalid (function z(foo) { z(); })(); ok 11475 no-unused-vars invalid function f() { var a = 1; return function(){ f(a = 2); }; } ok 11476 no-unused-vars invalid import x from "y"; ok 11477 no-unused-vars invalid export function fn2({ x, y }) { console.log(x); }; ok 11478 no-unused-vars invalid export function fn2( x, y ) { console.log(x); }; ok 11479 no-unused-vars invalid /*exported max*/ var max = 1, min = {min: 1} ok 11480 no-unused-vars invalid /*exported x*/ var { x, y } = z ok 11481 no-unused-vars invalid var _a; var b; ok 11482 no-unused-vars invalid var a; function foo() { var _b; var c_; } foo(); ok 11483 no-unused-vars invalid function foo(a, _b) { } foo(); ok 11484 no-unused-vars invalid function foo(a, _b, c) { return a; } foo(); ok 11485 no-unused-vars invalid function foo(_a) { } foo(); ok 11486 no-unused-vars invalid var [ firstItemIgnored, secondItem ] = items; ok 11487 no-unused-vars invalid (function(obj) { var name; for ( name in obj ) { i(); return; } })({}); ok 11488 no-unused-vars invalid (function(obj) { var name; for ( name in obj ) { } })({}); ok 11489 no-unused-vars invalid (function(obj) { for ( var name in obj ) { } })({}); ok 11490 no-unused-vars invalid /* global foobar, foo, bar */ foobar; ok 11491 no-unused-vars invalid /* global foobar, foo, bar */ foobar; ok 11492 no-unused-vars invalid const data = { type: 'coords', x: 1, y: 2 }; const { type, ...coords } = data; console.log(coords); ok 11493 no-unused-vars invalid const data = { type: 'coords', x: 1, y: 2 }; const { type, ...coords } = data; console.log(type) ok 11494 no-unused-vars invalid const data = { type: 'coords', x: 1, y: 2 }; const { type, ...coords } = data; console.log(type) ok 11495 no-unused-vars invalid const data = { vars: ['x','y'], x: 1, y: 2 }; const { vars: [x], ...coords } = data; console.log(coords) ok 11496 no-unused-vars invalid const data = { defaults: { x: 0 }, x: 1, y: 2 }; const { defaults: { x }, ...coords } = data; console.log(coords) ok 11497 no-unused-vars invalid (({a, ...rest}) => {}) ok 11498 no-unused-vars invalid /* global a$fooz,$foo */ a$fooz; ok 11499 no-unused-vars invalid /* globals a$fooz, $ */ a$fooz; ok 11500 no-unused-vars invalid /*globals $foo*/ ok 11501 no-unused-vars invalid /* global global*/ ok 11502 no-unused-vars invalid /*global foo:true*/ ok 11503 no-unused-vars invalid /*global 変数, 数*/ 変数; ok 11504 no-unused-vars invalid /*global 𠮷𩸽, 𠮷*/ \u{20BB7}\u{29E3D}; ok 11505 no-unused-vars invalid export default function(a) {} ok 11506 no-unused-vars invalid export default function(a, b) { console.log(a); } ok 11507 no-unused-vars invalid export default (function(a) {}); ok 11508 no-unused-vars invalid export default (function(a, b) { console.log(a); }); ok 11509 no-unused-vars invalid export default (a) => {}; ok 11510 no-unused-vars invalid export default (a, b) => { console.log(a); }; ok 11511 no-unused-vars invalid try{}catch(err){}; ok 11512 no-unused-vars invalid try{}catch(err){}; ok 11513 no-unused-vars invalid try{}catch(ignoreErr){}try{}catch(err){}; ok 11514 no-unused-vars invalid try{}catch(error){}try{}catch(err){}; ok 11515 no-unused-vars invalid try{}catch(err){}; ok 11516 no-unused-vars invalid try{}catch(err){}; ok 11517 no-unused-vars invalid var a = 0; a = a + 1; ok 11518 no-unused-vars invalid var a = 0; a = a + a; ok 11519 no-unused-vars invalid var a = 0; a += a + 1; ok 11520 no-unused-vars invalid var a = 0; a++; ok 11521 no-unused-vars invalid function foo(a) { a = a + 1 } foo(); ok 11522 no-unused-vars invalid function foo(a) { a += a + 1 } foo(); ok 11523 no-unused-vars invalid function foo(a) { a++ } foo(); ok 11524 no-unused-vars invalid var a = 3; a = a * 5 + 6; ok 11525 no-unused-vars invalid var a = 2, b = 4; a = a * 2 + b; ok 11526 no-unused-vars invalid function foo(cb) { cb = function(a) { cb(1 + a); }; bar(not_cb); } foo(); ok 11527 no-unused-vars invalid function foo(cb) { cb = function(a) { return cb(1 + a); }(); } foo(); ok 11528 no-unused-vars invalid function foo(cb) { cb = (function(a) { cb(1 + a); }, cb); } foo(); ok 11529 no-unused-vars invalid function foo(cb) { cb = (0, function(a) { cb(1 + a); }); } foo(); ok 11530 no-unused-vars invalid while (a) { function foo(b) { b = b + 1; } foo() } ok 11531 no-unused-vars invalid (function(a, b, c) {}) ok 11532 no-unused-vars invalid (function(a, b, {c, d}) {}) ok 11533 no-unused-vars invalid (function(a, b, {c, d}) {}) ok 11534 no-unused-vars invalid (function(a, b, {c, d}) {}) ok 11535 no-unused-vars invalid /*global foo*/ ok 11536 no-unused-vars invalid (function ({ a }, b ) { return b; })(); ok 11537 no-unused-vars invalid (function ({ a }, { b, c } ) { return b; })(); ok 11538 no-unused-vars invalid (function ({ a, b }, { c } ) { return b; })(); ok 11539 no-unused-vars invalid (function ([ a ], b ) { return b; })(); ok 11540 no-unused-vars invalid (function ([ a ], [ b, c ] ) { return b; })(); ok 11541 no-unused-vars invalid (function ([ a, b ], [ c ] ) { return b; })(); ok 11542 no-unused-vars invalid (function(_a) {})(); ok 11543 no-unused-vars invalid (function(_a) {})(); ok 11544 no-unused-vars invalid var a = function() { a(); }; ok 11545 no-unused-vars invalid var a = function(){ return function() { a(); } }; ok 11546 no-unused-vars invalid const a = () => { a(); }; ok 11547 no-unused-vars invalid const a = () => () => { a(); }; ok 11548 no-use-before-define valid var a=10; alert(a); ok 11549 no-use-before-define valid function b(a) { alert(a); } ok 11550 no-use-before-define valid Object.hasOwnProperty.call(a); ok 11551 no-use-before-define valid function a() { alert(arguments);} ok 11552 no-use-before-define valid a(); function a() { alert(arguments); } ok 11553 no-use-before-define valid (() => { var a = 42; alert(a); })(); ok 11554 no-use-before-define valid a(); try { throw new Error() } catch (a) {} ok 11555 no-use-before-define valid class A {} new A(); ok 11556 no-use-before-define valid var a = 0, b = a; ok 11557 no-use-before-define valid var {a = 0, b = a} = {}; ok 11558 no-use-before-define valid var [a = 0, b = a] = {}; ok 11559 no-use-before-define valid function foo() { foo(); } ok 11560 no-use-before-define valid var foo = function() { foo(); }; ok 11561 no-use-before-define valid var a; for (a in a) {} ok 11562 no-use-before-define valid var a; for (a of a) {} ok 11563 no-use-before-define valid "use strict"; a(); { function a() {} } ok 11564 no-use-before-define valid "use strict"; { a(); function a() {} } ok 11565 no-use-before-define valid switch (foo) { case 1: { a(); } default: { let a; }} ok 11566 no-use-before-define valid a(); { let a = function () {}; } ok 11567 no-use-before-define valid a(); function a() { alert(arguments); } ok 11568 no-use-before-define valid "use strict"; { a(); function a() {} } ok 11569 no-use-before-define valid function foo() { new A(); } class A {}; ok 11570 no-use-before-define valid function foo() { bar; } var bar; ok 11571 no-use-before-define valid var foo = () => bar; var bar; ok 11572 no-use-before-define invalid a++; var a=19; ok 11573 no-use-before-define invalid a++; var a=19; ok 11574 no-use-before-define invalid a++; var a=19; ok 11575 no-use-before-define invalid a(); var a=function() {}; ok 11576 no-use-before-define invalid alert(a[1]); var a=[1,3]; ok 11577 no-use-before-define invalid a(); function a() { alert(b); var b=10; a(); } ok 11578 no-use-before-define invalid a(); var a=function() {}; ok 11579 no-use-before-define invalid (() => { alert(a); var a = 42; })(); ok 11580 no-use-before-define invalid (() => a())(); function a() { } ok 11581 no-use-before-define invalid "use strict"; a(); { function a() {} } ok 11582 no-use-before-define invalid a(); try { throw new Error() } catch (foo) {var a;} ok 11583 no-use-before-define invalid var f = () => a; var a; ok 11584 no-use-before-define invalid new A(); class A {}; ok 11585 no-use-before-define invalid function foo() { new A(); } class A {}; ok 11586 no-use-before-define invalid new A(); var A = class {}; ok 11587 no-use-before-define invalid function foo() { new A(); } var A = class {}; ok 11588 no-use-before-define invalid a++; { var a; } ok 11589 no-use-before-define invalid "use strict"; { a(); function a() {} } ok 11590 no-use-before-define invalid {a; let a = 1} ok 11591 no-use-before-define invalid switch (foo) { case 1: a(); default: let a;} ok 11592 no-use-before-define invalid if (true) { function foo() { a; } let a;} ok 11593 no-use-before-define invalid a(); var a=function() {}; ok 11594 no-use-before-define invalid new A(); class A {}; ok 11595 no-use-before-define invalid new A(); var A = class {}; ok 11596 no-use-before-define invalid function foo() { new A(); } var A = class {}; ok 11597 no-use-before-define invalid var a = a; ok 11598 no-use-before-define invalid let a = a + b; ok 11599 no-use-before-define invalid const a = foo(a); ok 11600 no-use-before-define invalid function foo(a = a) {} ok 11601 no-use-before-define invalid var {a = a} = []; ok 11602 no-use-before-define invalid var [a = a] = []; ok 11603 no-use-before-define invalid var {b = a, a} = {}; ok 11604 no-use-before-define invalid var [b = a, a] = {}; ok 11605 no-use-before-define invalid var {a = 0} = a; ok 11606 no-use-before-define invalid var [a = 0] = a; ok 11607 no-use-before-define invalid for (var a in a) {} ok 11608 no-use-before-define invalid for (var a of a) {} ok 11609 no-use-before-define invalid function foo() { bar; var bar = 1; } var bar; ok 11610 no-use-before-define invalid foo; var foo; ok 11611 no-use-before-define invalid for (let x = x;;); let x = 0 ok 11612 no-use-before-define invalid for (let x in xs); let xs = [] ok 11613 no-use-before-define invalid for (let x of xs); let xs = [] ok 11614 no-use-before-define invalid try {} catch ({message = x}) {} let x = '' ok 11615 no-use-before-define invalid with (obj) x; let x = {} ok 11616 no-use-before-define invalid with (x); let x = {} ok 11617 no-use-before-define invalid with (obj) { x } let x = {} ok 11618 no-use-before-define invalid with (obj) { if (a) { x } } let x = {} ok 11619 no-use-before-define invalid with (obj) { (() => { if (a) { x } })() } let x = {} ok 11620 no-useless-call valid foo.apply(obj, 1, 2); ok 11621 no-useless-call valid obj.foo.apply(null, 1, 2); ok 11622 no-useless-call valid obj.foo.apply(otherObj, 1, 2); ok 11623 no-useless-call valid a.b(x, y).c.foo.apply(a.b(x, z).c, 1, 2); ok 11624 no-useless-call valid foo.apply(obj, [1, 2]); ok 11625 no-useless-call valid obj.foo.apply(null, [1, 2]); ok 11626 no-useless-call valid obj.foo.apply(otherObj, [1, 2]); ok 11627 no-useless-call valid a.b(x, y).c.foo.apply(a.b(x, z).c, [1, 2]); ok 11628 no-useless-call valid a.b.foo.apply(a.b.c, [1, 2]); ok 11629 no-useless-call valid foo.apply(null, args); ok 11630 no-useless-call valid obj.foo.apply(obj, args); ok 11631 no-useless-call valid var call; foo[call](null, 1, 2); ok 11632 no-useless-call valid var apply; foo[apply](null, [1, 2]); ok 11633 no-useless-call valid foo.call(); ok 11634 no-useless-call valid obj.foo.call(); ok 11635 no-useless-call valid foo.apply(); ok 11636 no-useless-call valid obj.foo.apply(); ok 11637 no-useless-call invalid foo.call(undefined, 1, 2); ok 11638 no-useless-call invalid foo.call(void 0, 1, 2); ok 11639 no-useless-call invalid foo.call(null, 1, 2); ok 11640 no-useless-call invalid obj.foo.call(obj, 1, 2); ok 11641 no-useless-call invalid a.b.c.foo.call(a.b.c, 1, 2); ok 11642 no-useless-call invalid a.b(x, y).c.foo.call(a.b(x, y).c, 1, 2); ok 11643 no-useless-call invalid foo.apply(undefined, [1, 2]); ok 11644 no-useless-call invalid foo.apply(void 0, [1, 2]); ok 11645 no-useless-call invalid foo.apply(null, [1, 2]); ok 11646 no-useless-call invalid obj.foo.apply(obj, [1, 2]); ok 11647 no-useless-call invalid a.b.c.foo.apply(a.b.c, [1, 2]); ok 11648 no-useless-call invalid a.b(x, y).c.foo.apply(a.b(x, y).c, [1, 2]); ok 11649 no-useless-call invalid [].concat.apply([ ], [1, 2]); ok 11650 no-useless-call invalid [].concat.apply([ /*empty*/ ], [1, 2]); ok 11651 no-useless-call invalid abc.get("foo", 0).concat.apply(abc . get("foo", 0 ), [1, 2]); ok 11652 no-useless-catch valid try { foo(); } catch (err) { console.error(err); } ok 11653 no-useless-catch valid try { foo(); } catch (err) { console.error(err); } finally { bar(); } ok 11654 no-useless-catch valid try { foo(); } catch (err) { doSomethingBeforeRethrow(); throw err; } ok 11655 no-useless-catch valid try { foo(); } catch (err) { throw err.msg; } ok 11656 no-useless-catch valid try { foo(); } catch (err) { throw new Error("whoops!"); } ok 11657 no-useless-catch valid try { foo(); } catch (err) { throw bar; } ok 11658 no-useless-catch valid try { foo(); } catch (err) { } ok 11659 no-useless-catch valid try { foo(); } catch ({ err }) { throw err; } ok 11660 no-useless-catch valid try { foo(); } catch ([ err ]) { throw err; } ok 11661 no-useless-catch valid async () => { try { await doSomething(); } catch (e) { doSomethingAfterCatch(); throw e; } } ok 11662 no-useless-catch valid try { throw new Error('foo'); } catch { throw new Error('foo'); } ok 11663 no-useless-catch invalid try { foo(); } catch (err) { throw err; } ok 11664 no-useless-catch invalid try { foo(); } catch (err) { throw err; } finally { foo(); } ok 11665 no-useless-catch invalid try { foo(); } catch (err) { /* some comment */ throw err; } ok 11666 no-useless-catch invalid try { foo(); } catch (err) { /* some comment */ throw err; } finally { foo(); } ok 11667 no-useless-catch invalid async () => { try { await doSomething(); } catch (e) { throw e; } } ok 11668 no-useless-computed-key valid ({ 'a': 0, b(){} }) ok 11669 no-useless-computed-key valid ({ [x]: 0 }); ok 11670 no-useless-computed-key valid ({ a: 0, [b](){} }) ok 11671 no-useless-computed-key valid ({ ['__proto__']: [] }) ok 11672 no-useless-computed-key invalid ({ ['0']: 0 }) ok 11673 no-useless-computed-key invalid ({ ['0+1,234']: 0 }) ok 11674 no-useless-computed-key invalid ({ [0]: 0 }) ok 11675 no-useless-computed-key invalid ({ ['x']: 0 }) ok 11676 no-useless-computed-key invalid ({ ['x']() {} }) ok 11677 no-useless-computed-key invalid ({ [/* this comment prevents a fix */ 'x']: 0 }) ok 11678 no-useless-computed-key invalid ({ ['x' /* this comment also prevents a fix */]: 0 }) ok 11679 no-useless-computed-key invalid ({ [('x')]: 0 }) ok 11680 no-useless-computed-key invalid ({ *['x']() {} }) ok 11681 no-useless-computed-key invalid ({ async ['x']() {} }) ok 11682 no-useless-computed-key invalid ({ get[.2]() {} }) ok 11683 no-useless-computed-key invalid ({ set[.2](value) {} }) ok 11684 no-useless-computed-key invalid ({ async[.2]() {} }) ok 11685 no-useless-computed-key invalid ({ [2]() {} }) ok 11686 no-useless-computed-key invalid ({ get [2]() {} }) ok 11687 no-useless-computed-key invalid ({ set [2](value) {} }) ok 11688 no-useless-computed-key invalid ({ async [2]() {} }) ok 11689 no-useless-computed-key invalid ({ get[2]() {} }) ok 11690 no-useless-computed-key invalid ({ set[2](value) {} }) ok 11691 no-useless-computed-key invalid ({ async[2]() {} }) ok 11692 no-useless-computed-key invalid ({ get['foo']() {} }) ok 11693 no-useless-computed-key invalid ({ *[2]() {} }) ok 11694 no-useless-computed-key invalid ({ async*[2]() {} }) ok 11695 no-useless-concat valid var a = 1 + 1; ok 11696 no-useless-concat valid var a = 1 * '2'; ok 11697 no-useless-concat valid var a = 1 - 2; ok 11698 no-useless-concat valid var a = foo + bar; ok 11699 no-useless-concat valid var a = 'foo' + bar; ok 11700 no-useless-concat valid var foo = 'foo' + 'bar'; ok 11701 no-useless-concat valid var string = (number + 1) + 'px'; ok 11702 no-useless-concat valid 'a' + 1 ok 11703 no-useless-concat valid 1 + '1' ok 11704 no-useless-concat valid 1 + `1` ok 11705 no-useless-concat valid `1` + 1 ok 11706 no-useless-concat valid (1 + +2) + `b` ok 11707 no-useless-concat invalid 'a' + 'b' ok 11708 no-useless-concat invalid foo + 'a' + 'b' ok 11709 no-useless-concat invalid 'a' + 'b' + 'c' ok 11710 no-useless-concat invalid (foo + 'a') + ('b' + 'c') ok 11711 no-useless-concat invalid `a` + 'b' ok 11712 no-useless-concat invalid `a` + `b` ok 11713 no-useless-concat invalid foo + `a` + `b` ok 11714 no-useless-constructor valid class A { } ok 11715 no-useless-constructor valid class A { constructor(){ doSomething(); } } ok 11716 no-useless-constructor valid class A extends B { constructor(){} } ok 11717 no-useless-constructor valid class A extends B { constructor(){ super('foo'); } } ok 11718 no-useless-constructor valid class A extends B { constructor(foo, bar){ super(foo, bar, 1); } } ok 11719 no-useless-constructor valid class A extends B { constructor(){ super(); doSomething(); } } ok 11720 no-useless-constructor valid class A extends B { constructor(...args){ super(...args); doSomething(); } } ok 11721 no-useless-constructor valid class A { dummyMethod(){ doSomething(); } } ok 11722 no-useless-constructor valid class A extends B.C { constructor() { super(foo); } } ok 11723 no-useless-constructor valid class A extends B.C { constructor([a, b, c]) { super(...arguments); } } ok 11724 no-useless-constructor valid class A extends B.C { constructor(a = f()) { super(...arguments); } } ok 11725 no-useless-constructor valid class A extends B { constructor(a, b, c) { super(a, b); } } ok 11726 no-useless-constructor valid class A extends B { constructor(foo, bar){ super(foo); } } ok 11727 no-useless-constructor valid class A extends B { constructor(test) { super(); } } ok 11728 no-useless-constructor valid class A extends B { constructor() { foo; } } ok 11729 no-useless-constructor valid class A extends B { constructor(foo, bar) { super(bar); } } ok 11730 no-useless-constructor invalid class A { constructor(){} } ok 11731 no-useless-constructor invalid class A { 'constructor'(){} } ok 11732 no-useless-constructor invalid class A extends B { constructor() { super(); } } ok 11733 no-useless-constructor invalid class A extends B { constructor(foo){ super(foo); } } ok 11734 no-useless-constructor invalid class A extends B { constructor(foo, bar){ super(foo, bar); } } ok 11735 no-useless-constructor invalid class A extends B { constructor(...args){ super(...args); } } ok 11736 no-useless-constructor invalid class A extends B.C { constructor() { super(...arguments); } } ok 11737 no-useless-constructor invalid class A extends B { constructor(a, b, ...c) { super(...arguments); } } ok 11738 no-useless-constructor invalid class A extends B { constructor(a, b, ...c) { super(a, b, ...c); } } ok 11739 no-useless-escape valid var foo = /\./ ok 11740 no-useless-escape valid var foo = /\//g ok 11741 no-useless-escape valid var foo = /""/ ok 11742 no-useless-escape valid var foo = /''/ ok 11743 no-useless-escape valid var foo = /([A-Z])\t+/g ok 11744 no-useless-escape valid var foo = /([A-Z])\n+/g ok 11745 no-useless-escape valid var foo = /([A-Z])\v+/g ok 11746 no-useless-escape valid var foo = /\D/ ok 11747 no-useless-escape valid var foo = /\W/ ok 11748 no-useless-escape valid var foo = /\w/ ok 11749 no-useless-escape valid var foo = /\B/ ok 11750 no-useless-escape valid var foo = /\\/g ok 11751 no-useless-escape valid var foo = /\w\$\*\./ ok 11752 no-useless-escape valid var foo = /\^\+\./ ok 11753 no-useless-escape valid var foo = /\|\}\{\./ ok 11754 no-useless-escape valid var foo = /]\[\(\)\// ok 11755 no-useless-escape valid var foo = "\x123" ok 11756 no-useless-escape valid var foo = "\u00a9" ok 11757 no-useless-escape valid var foo = "\377" ok 11758 no-useless-escape valid var foo = "\"" ok 11759 no-useless-escape valid var foo = "xs\u2111" ok 11760 no-useless-escape valid var foo = "foo \\ bar"; ok 11761 no-useless-escape valid var foo = "\t"; ok 11762 no-useless-escape valid var foo = "foo \b bar"; ok 11763 no-useless-escape valid var foo = '\n'; ok 11764 no-useless-escape valid var foo = 'foo \r bar'; ok 11765 no-useless-escape valid var foo = '\v'; ok 11766 no-useless-escape valid var foo = '\f'; ok 11767 no-useless-escape valid var foo = '\ '; ok 11768 no-useless-escape valid var foo = '\ '; ok 11769 no-useless-escape valid <foo attr="\d"/> ok 11770 no-useless-escape valid <div> Testing: \ </div> ok 11771 no-useless-escape valid <div> Testing: &x5C </div> ok 11772 no-useless-escape valid <foo attr='\d'></foo> ok 11773 no-useless-escape valid <> Testing: \ </> ok 11774 no-useless-escape valid <> Testing: &x5C </> ok 11775 no-useless-escape valid var foo = `\x123` ok 11776 no-useless-escape valid var foo = `\u00a9` ok 11777 no-useless-escape valid var foo = `xs\u2111` ok 11778 no-useless-escape valid var foo = `foo \\ bar`; ok 11779 no-useless-escape valid var foo = `\t`; ok 11780 no-useless-escape valid var foo = `foo \b bar`; ok 11781 no-useless-escape valid var foo = `\n`; ok 11782 no-useless-escape valid var foo = `foo \r bar`; ok 11783 no-useless-escape valid var foo = `\v`; ok 11784 no-useless-escape valid var foo = `\f`; ok 11785 no-useless-escape valid var foo = `\ `; ok 11786 no-useless-escape valid var foo = `\ `; ok 11787 no-useless-escape valid var foo = `${foo} \x123` ok 11788 no-useless-escape valid var foo = `${foo} \u00a9` ok 11789 no-useless-escape valid var foo = `${foo} xs\u2111` ok 11790 no-useless-escape valid var foo = `${foo} \\ ${bar}`; ok 11791 no-useless-escape valid var foo = `${foo} \b ${bar}`; ok 11792 no-useless-escape valid var foo = `${foo}\t`; ok 11793 no-useless-escape valid var foo = `${foo}\n`; ok 11794 no-useless-escape valid var foo = `${foo}\r`; ok 11795 no-useless-escape valid var foo = `${foo}\v`; ok 11796 no-useless-escape valid var foo = `${foo}\f`; ok 11797 no-useless-escape valid var foo = `${foo}\ `; ok 11798 no-useless-escape valid var foo = `${foo}\ `; ok 11799 no-useless-escape valid var foo = `\`` ok 11800 no-useless-escape valid var foo = `\`${foo}\`` ok 11801 no-useless-escape valid var foo = `\${{${foo}`; ok 11802 no-useless-escape valid var foo = `$\{{${foo}`; ok 11803 no-useless-escape valid var foo = String.raw`\.` ok 11804 no-useless-escape valid var foo = myFunc`\.` ok 11805 no-useless-escape valid var foo = /[\d]/ ok 11806 no-useless-escape valid var foo = /[a\-b]/ ok 11807 no-useless-escape valid var foo = /foo\?/ ok 11808 no-useless-escape valid var foo = /example\.com/ ok 11809 no-useless-escape valid var foo = /foo\|bar/ ok 11810 no-useless-escape valid var foo = /\^bar/ ok 11811 no-useless-escape valid var foo = /[\^bar]/ ok 11812 no-useless-escape valid var foo = /\(bar\)/ ok 11813 no-useless-escape valid var foo = /[[\]]/ ok 11814 no-useless-escape valid var foo = /[[]\./ ok 11815 no-useless-escape valid var foo = /[\]\]]/ ok 11816 no-useless-escape valid var foo = /\[abc]/ ok 11817 no-useless-escape valid var foo = /\[foo\.bar]/ ok 11818 no-useless-escape valid var foo = /vi/m ok 11819 no-useless-escape valid var foo = /\B/ ok 11820 no-useless-escape valid var foo = /\0/ ok 11821 no-useless-escape valid var foo = /\1/ ok 11822 no-useless-escape valid var foo = /(a)\1/ ok 11823 no-useless-escape valid var foo = /(a)\12/ ok 11824 no-useless-escape valid var foo = /[\0]/ ok 11825 no-useless-escape valid var foo = 'foo \
 bar' ok 11826 no-useless-escape valid var foo = 'foo \
 bar' ok 11827 no-useless-escape valid /]/ ok 11828 no-useless-escape valid /\]/ ok 11829 no-useless-escape valid /\]/u ok 11830 no-useless-escape valid var foo = /foo\]/ ok 11831 no-useless-escape valid var foo = /[[]\]/ ok 11832 no-useless-escape valid var foo = /\[foo\.bar\]/ ok 11833 no-useless-escape valid var foo = /(?<a>)\k<a>/ ok 11834 no-useless-escape valid var foo = /(\\?<a>)/ ok 11835 no-useless-escape valid var foo = /\p{ASCII}/u ok 11836 no-useless-escape valid var foo = /\P{ASCII}/u ok 11837 no-useless-escape valid var foo = /[\p{ASCII}]/u ok 11838 no-useless-escape valid var foo = /[\P{ASCII}]/u ok 11839 no-useless-escape invalid var foo = /\/; ok 11840 no-useless-escape invalid var foo = /\;/; ok 11841 no-useless-escape invalid var foo = "\'"; ok 11842 no-useless-escape invalid var foo = "\/"; ok 11843 no-useless-escape invalid var foo = "\a" ok 11844 no-useless-escape invalid var foo = "\B"; ok 11845 no-useless-escape invalid var foo = "\@"; ok 11846 no-useless-escape invalid var foo = "foo \a bar"; ok 11847 no-useless-escape invalid var foo = '\"'; ok 11848 no-useless-escape invalid var foo = '\'; ok 11849 no-useless-escape invalid var foo = '\$'; ok 11850 no-useless-escape invalid var foo = '\p'; ok 11851 no-useless-escape invalid var foo = '\p\a\@'; ok 11852 no-useless-escape invalid <foo attr={"\d"}/> ok 11853 no-useless-escape invalid var foo = '\`'; ok 11854 no-useless-escape invalid var foo = `\"`; ok 11855 no-useless-escape invalid var foo = `\'`; ok 11856 no-useless-escape invalid var foo = `\`; ok 11857 no-useless-escape invalid var foo = '\`foo\`'; ok 11858 no-useless-escape invalid var foo = `\"${foo}\"`; ok 11859 no-useless-escape invalid var foo = `\'${foo}\'`; ok 11860 no-useless-escape invalid var foo = `\${foo}`; ok 11861 no-useless-escape invalid let foo = '\ '; ok 11862 no-useless-escape invalid let foo = /\ /; ok 11863 no-useless-escape invalid var foo = `\$\{{${foo}`; ok 11864 no-useless-escape invalid var foo = `\$a${foo}`; ok 11865 no-useless-escape invalid var foo = `a\{{${foo}`; ok 11866 no-useless-escape invalid var foo = /[ab\-]/ ok 11867 no-useless-escape invalid var foo = /[\-ab]/ ok 11868 no-useless-escape invalid var foo = /[ab\?]/ ok 11869 no-useless-escape invalid var foo = /[ab\.]/ ok 11870 no-useless-escape invalid var foo = /[a\|b]/ ok 11871 no-useless-escape invalid var foo = /\-/ ok 11872 no-useless-escape invalid var foo = /[\-]/ ok 11873 no-useless-escape invalid var foo = /[ab\$]/ ok 11874 no-useless-escape invalid var foo = /[\(paren]/ ok 11875 no-useless-escape invalid var foo = /[\[]/ ok 11876 no-useless-escape invalid var foo = /[\/]/ ok 11877 no-useless-escape invalid var foo = /[\B]/ ok 11878 no-useless-escape invalid var foo = /[a][\-b]/ ok 11879 no-useless-escape invalid var foo = /\-[]/ ok 11880 no-useless-escape invalid var foo = /[a\^]/ ok 11881 no-useless-escape invalid `multiline template literal with useless \escape` ok 11882 no-useless-escape invalid `\a``` ok 11883 no-useless-rename valid let {foo} = obj; ok 11884 no-useless-rename valid let {foo: bar} = obj; ok 11885 no-useless-rename valid let {foo: bar, baz: qux} = obj; ok 11886 no-useless-rename valid let {foo: {bar: baz}} = obj; ok 11887 no-useless-rename valid let {foo, bar: {baz: qux}} = obj; ok 11888 no-useless-rename valid let {'foo': bar} = obj; ok 11889 no-useless-rename valid let {'foo': bar, 'baz': qux} = obj; ok 11890 no-useless-rename valid let {'foo': {'bar': baz}} = obj; ok 11891 no-useless-rename valid let {foo, 'bar': {'baz': qux}} = obj; ok 11892 no-useless-rename valid let {['foo']: bar} = obj; ok 11893 no-useless-rename valid let {['foo']: bar, ['baz']: qux} = obj; ok 11894 no-useless-rename valid let {['foo']: {['bar']: baz}} = obj; ok 11895 no-useless-rename valid let {foo, ['bar']: {['baz']: qux}} = obj; ok 11896 no-useless-rename valid let {[foo]: foo} = obj; ok 11897 no-useless-rename valid let {['foo']: foo} = obj; ok 11898 no-useless-rename valid let {[foo]: bar} = obj; ok 11899 no-useless-rename valid function func({foo}) {} ok 11900 no-useless-rename valid function func({foo: bar}) {} ok 11901 no-useless-rename valid function func({foo: bar, baz: qux}) {} ok 11902 no-useless-rename valid ({foo}) => {} ok 11903 no-useless-rename valid ({foo: bar}) => {} ok 11904 no-useless-rename valid ({foo: bar, baz: qui}) => {} ok 11905 no-useless-rename valid import * as foo from 'foo'; ok 11906 no-useless-rename valid import foo from 'foo'; ok 11907 no-useless-rename valid import {foo} from 'foo'; ok 11908 no-useless-rename valid import {foo as bar} from 'foo'; ok 11909 no-useless-rename valid import {foo as bar, baz as qux} from 'foo'; ok 11910 no-useless-rename valid export {foo} from 'foo'; ok 11911 no-useless-rename valid var foo = 0;export {foo as bar}; ok 11912 no-useless-rename valid var foo = 0; var baz = 0; export {foo as bar, baz as qux}; ok 11913 no-useless-rename valid export {foo as bar} from 'foo'; ok 11914 no-useless-rename valid export {foo as bar, baz as qux} from 'foo'; ok 11915 no-useless-rename valid const {...stuff} = myObject; ok 11916 no-useless-rename valid const {foo, ...stuff} = myObject; ok 11917 no-useless-rename valid const {foo: bar, ...stuff} = myObject; ok 11918 no-useless-rename valid let {foo: foo} = obj; ok 11919 no-useless-rename valid let {foo: foo, bar: baz} = obj; ok 11920 no-useless-rename valid let {foo: foo, bar: bar} = obj; ok 11921 no-useless-rename valid import {foo as foo} from 'foo'; ok 11922 no-useless-rename valid import {foo as foo, bar as baz} from 'foo'; ok 11923 no-useless-rename valid import {foo as foo, bar as bar} from 'foo'; ok 11924 no-useless-rename valid var foo = 0;export {foo as foo}; ok 11925 no-useless-rename valid var foo = 0;var bar = 0;export {foo as foo, bar as baz}; ok 11926 no-useless-rename valid var foo = 0;var bar = 0;export {foo as foo, bar as bar}; ok 11927 no-useless-rename valid export {foo as foo} from 'foo'; ok 11928 no-useless-rename valid export {foo as foo, bar as baz} from 'foo'; ok 11929 no-useless-rename valid export {foo as foo, bar as bar} from 'foo'; ok 11930 no-useless-rename invalid let {foo: foo} = obj; ok 11931 no-useless-rename invalid let {a, foo: foo} = obj; ok 11932 no-useless-rename invalid let {foo: foo, bar: baz} = obj; ok 11933 no-useless-rename invalid let {foo: bar, baz: baz} = obj; ok 11934 no-useless-rename invalid let {foo: foo, bar: bar} = obj; ok 11935 no-useless-rename invalid let {foo: {bar: bar}} = obj; ok 11936 no-useless-rename invalid let {foo: {bar: bar}, baz: baz} = obj; ok 11937 no-useless-rename invalid let {'foo': foo} = obj; ok 11938 no-useless-rename invalid let {'foo': foo, 'bar': baz} = obj; ok 11939 no-useless-rename invalid let {'foo': bar, 'baz': baz} = obj; ok 11940 no-useless-rename invalid let {'foo': foo, 'bar': bar} = obj; ok 11941 no-useless-rename invalid let {'foo': {'bar': bar}} = obj; ok 11942 no-useless-rename invalid let {'foo': {'bar': bar}, 'baz': baz} = obj; ok 11943 no-useless-rename invalid function func({foo: foo}) {} ok 11944 no-useless-rename invalid function func({foo: foo, bar: baz}) {} ok 11945 no-useless-rename invalid function func({foo: bar, baz: baz}) {} ok 11946 no-useless-rename invalid function func({foo: foo, bar: bar}) {} ok 11947 no-useless-rename invalid ({foo: foo}) => {} ok 11948 no-useless-rename invalid ({foo: foo, bar: baz}) => {} ok 11949 no-useless-rename invalid ({foo: bar, baz: baz}) => {} ok 11950 no-useless-rename invalid ({foo: foo, bar: bar}) => {} ok 11951 no-useless-rename invalid const {foo: foo, ...stuff} = myObject; ok 11952 no-useless-rename invalid const {foo: foo, bar: baz, ...stuff} = myObject; ok 11953 no-useless-rename invalid const {foo: foo, bar: bar, ...stuff} = myObject; ok 11954 no-useless-rename invalid import {foo as foo} from 'foo'; ok 11955 no-useless-rename invalid import {foo as foo, bar as baz} from 'foo'; ok 11956 no-useless-rename invalid import {foo as bar, baz as baz} from 'foo'; ok 11957 no-useless-rename invalid import {foo as foo, bar as bar} from 'foo'; ok 11958 no-useless-rename invalid var foo = 0; export {foo as foo}; ok 11959 no-useless-rename invalid var foo = 0; var bar = 0; export {foo as foo, bar as baz}; ok 11960 no-useless-rename invalid var foo = 0; var baz = 0; export {foo as bar, baz as baz}; ok 11961 no-useless-rename invalid var foo = 0; var bar = 0;export {foo as foo, bar as bar}; ok 11962 no-useless-rename invalid export {foo as foo} from 'foo'; ok 11963 no-useless-rename invalid export {foo as foo, bar as baz} from 'foo'; ok 11964 no-useless-rename invalid var foo = 0; var bar = 0; export {foo as bar, baz as baz} from 'foo'; ok 11965 no-useless-rename invalid export {foo as foo, bar as bar} from 'foo'; ok 11966 no-useless-return valid function foo() { return 5; } ok 11967 no-useless-return valid function foo() { return null; } ok 11968 no-useless-return valid function foo() { return doSomething(); } ok 11969 no-useless-return valid function foo() { if (bar) { doSomething(); return; } else { doSomethingElse(); } qux(); } ok 11970 no-useless-return valid function foo() { switch (bar) { case 1: doSomething(); return; default: doSomethingElse(); } } ok 11971 no-useless-return valid function foo() { switch (bar) { default: doSomething(); return; case 1: doSomethingElse(); } } ok 11972 no-useless-return valid function foo() { switch (bar) { case 1: if (a) { doSomething(); return; } else { doSomething(); return; } default: doSomethingElse(); } } ok 11973 no-useless-return valid function foo() { for (var foo = 0; foo < 10; foo++) { return; } } ok 11974 no-useless-return valid function foo() { for (var foo in bar) { return; } } ok 11975 no-useless-return valid function foo() { try { return 5; } finally { return; // This is allowed because it can override the returned value of 5 } } ok 11976 no-useless-return valid function foo() { return; doSomething(); } ok 11977 no-useless-return valid function foo() { for (var foo of bar) return; } ok 11978 no-useless-return valid () => { if (foo) return; bar(); } ok 11979 no-useless-return valid () => 5 ok 11980 no-useless-return valid () => { return; doSomething(); } ok 11981 no-useless-return valid if (foo) { return; } doSomething(); ok 11982 no-useless-return valid function foo() { if (bar) return; return baz; } ok 11983 no-useless-return valid function foo() { if (bar) { return; } return baz; } ok 11984 no-useless-return valid function foo() { if (bar) baz(); else return; return 5; } ok 11985 no-useless-return valid function foo() { return; while (foo) return; foo; } ok 11986 no-useless-return valid try { throw new Error('foo'); while (false); } catch (err) {} ok 11987 no-useless-return invalid function foo() { return; } ok 11988 no-useless-return invalid function foo() { doSomething(); return; } ok 11989 no-useless-return invalid function foo() { if (condition) { bar(); return; } else { baz(); } } ok 11990 no-useless-return invalid function foo() { if (foo) return; } ok 11991 no-useless-return invalid foo(); return; ok 11992 no-useless-return invalid if (foo) { bar(); return; } else { baz(); } ok 11993 no-useless-return invalid function foo() { if (foo) { return; } return; } ok 11994 no-useless-return invalid function foo() { switch (bar) { case 1: doSomething(); default: doSomethingElse(); return; } } ok 11995 no-useless-return invalid function foo() { switch (bar) { default: doSomething(); case 1: doSomething(); return; } } ok 11996 no-useless-return invalid function foo() { switch (bar) { case 1: if (a) { doSomething(); return; } break; default: doSomethingElse(); } } ok 11997 no-useless-return invalid function foo() { switch (bar) { case 1: if (a) { doSomething(); return; } else { doSomething(); } break; default: doSomethingElse(); } } ok 11998 no-useless-return invalid function foo() { switch (bar) { case 1: if (a) { doSomething(); return; } default: } } ok 11999 no-useless-return invalid function foo() { try {} catch (err) { return; } } ok 12000 no-useless-return invalid function foo() { try {} finally {} return; } ok 12001 no-useless-return invalid function foo() { try { return 5; } finally { function bar() { return; } } } ok 12002 no-useless-return invalid () => { return; } ok 12003 no-useless-return invalid function foo() { return; return; } ok 12004 no-var valid const JOE = 'schmoe'; ok 12005 no-var valid let moo = 'car'; ok 12006 no-var valid const JOE = 'schmoe'; ok 12007 no-var valid let moo = 'car'; ok 12008 no-var invalid var foo = bar; ok 12009 no-var invalid var foo = bar, toast = most; ok 12010 no-var invalid var foo = bar; let toast = most; ok 12011 no-var invalid for (var a of b) { console.log(a); } ok 12012 no-var invalid for (var a in b) { console.log(a); } ok 12013 no-var invalid for (let a of b) { var c = 1; console.log(c); } ok 12014 no-var invalid for (var i = 0; i < list.length; ++i) { foo(i) } ok 12015 no-var invalid for (var i = 0, i = 0; false;); ok 12016 no-var invalid var i = 0; for (var i = 1; false;); console.log(i); ok 12017 no-var invalid var a, b, c; var a; ok 12018 no-var invalid var a; if (b) { var a; } ok 12019 no-var invalid if (foo) { var a, b, c; } a; ok 12020 no-var invalid for (var i = 0; i < 10; ++i) {} i; ok 12021 no-var invalid for (var a in obj) {} a; ok 12022 no-var invalid for (var a of list) {} a; ok 12023 no-var invalid switch (a) { case 0: var b = 1 } ok 12024 no-var invalid for (var a of b) { arr.push(() => a); } ok 12025 no-var invalid for (let a of b) { var c; console.log(c); c = 'hello'; } ok 12026 no-var invalid var a = a ok 12027 no-var invalid var {a = a} = {} ok 12028 no-var invalid var {a = b, b} = {} ok 12029 no-var invalid var {a, b = a} = {} ok 12030 no-var invalid var a = b, b = 1 ok 12031 no-var invalid var a = b; var b = 1 ok 12032 no-var invalid function foo() { a } var a = 1; foo() ok 12033 no-var invalid if (foo) var bar = 1; ok 12034 no-var invalid var foo = 1 ok 12035 no-var invalid { var foo = 1 } ok 12036 no-var invalid if (true) { var foo = 1 } ok 12037 no-var invalid var foo = 1 ok 12038 no-void valid var foo = bar() ok 12039 no-void valid foo.void() ok 12040 no-void valid foo.void = bar ok 12041 no-void valid delete foo; ok 12042 no-void invalid void 0 ok 12043 no-void invalid void(0) ok 12044 no-void invalid var foo = void 0 ok 12045 no-warning-comments valid // any comment ok 12046 no-warning-comments valid // any comment ok 12047 no-warning-comments valid // any comment ok 12048 no-warning-comments valid // any comment ok 12049 no-warning-comments valid // any comment with TODO, FIXME or XXX ok 12050 no-warning-comments valid // any comment with TODO, FIXME or XXX ok 12051 no-warning-comments valid /* any block comment */ ok 12052 no-warning-comments valid /* any block comment */ ok 12053 no-warning-comments valid /* any block comment */ ok 12054 no-warning-comments valid /* any block comment */ ok 12055 no-warning-comments valid /* any block comment with TODO, FIXME or XXX */ ok 12056 no-warning-comments valid /* any block comment with TODO, FIXME or XXX */ ok 12057 no-warning-comments valid /* any block comment with (TODO, FIXME's or XXX!) */ ok 12058 no-warning-comments valid // comments containing terms as substrings like TodoMVC ok 12059 no-warning-comments valid // special regex characters don't cause problems ok 12060 no-warning-comments valid /*eslint no-warning-comments: [2, { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/ var x = 10; ok 12061 no-warning-comments valid /*eslint no-warning-comments: [2, { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/ var x = 10; ok 12062 no-warning-comments valid foo ok 12063 no-warning-comments invalid // fixme ok 12064 no-warning-comments invalid // any fixme ok 12065 no-warning-comments invalid // any fixme ok 12066 no-warning-comments invalid // any FIXME ok 12067 no-warning-comments invalid // any fIxMe ok 12068 no-warning-comments invalid /* any fixme */ ok 12069 no-warning-comments invalid /* any FIXME */ ok 12070 no-warning-comments invalid /* any fIxMe */ ok 12071 no-warning-comments invalid // any fixme or todo ok 12072 no-warning-comments invalid /* any fixme or todo */ ok 12073 no-warning-comments invalid /* any fixme or todo */ ok 12074 no-warning-comments invalid /* fixme and todo */ ok 12075 no-warning-comments invalid /* fixme and todo */ ok 12076 no-warning-comments invalid /* any fixme */ ok 12077 no-warning-comments invalid /* fixme! */ ok 12078 no-warning-comments invalid // regex [litera|$] ok 12079 no-warning-comments invalid /* eslint one-var: 2 */ ok 12080 no-warning-comments invalid /* eslint one-var: 2 */ ok 12081 no-warning-comments invalid /* any block comment with TODO, FIXME or XXX */ ok 12082 no-warning-comments invalid /* any block comment with (TODO, FIXME's or XXX!) */ ok 12083 no-warning-comments invalid /** *any block comment *with (TODO, FIXME's or XXX!) **/ ok 12084 no-warning-comments invalid // any comment with TODO, FIXME or XXX ok 12085 no-whitespace-before-property valid foo.bar ok 12086 no-whitespace-before-property valid foo.bar() ok 12087 no-whitespace-before-property valid foo[bar] ok 12088 no-whitespace-before-property valid foo['bar'] ok 12089 no-whitespace-before-property valid foo[0] ok 12090 no-whitespace-before-property valid foo[ bar ] ok 12091 no-whitespace-before-property valid foo[ 'bar' ] ok 12092 no-whitespace-before-property valid foo[ 0 ] ok 12093 no-whitespace-before-property valid foo .bar ok 12094 no-whitespace-before-property valid foo. bar ok 12095 no-whitespace-before-property valid foo .bar() ok 12096 no-whitespace-before-property valid foo. bar() ok 12097 no-whitespace-before-property valid foo [bar] ok 12098 no-whitespace-before-property valid foo ['bar'] ok 12099 no-whitespace-before-property valid foo [0] ok 12100 no-whitespace-before-property valid foo [ bar ] ok 12101 no-whitespace-before-property valid foo. bar ok 12102 no-whitespace-before-property valid foo . bar ok 12103 no-whitespace-before-property valid foo. bar() ok 12104 no-whitespace-before-property valid foo . bar() ok 12105 no-whitespace-before-property valid foo [bar] ok 12106 no-whitespace-before-property valid foo ['bar'] ok 12107 no-whitespace-before-property valid foo [0] ok 12108 no-whitespace-before-property valid foo [ bar ] ok 12109 no-whitespace-before-property valid foo. bar ok 12110 no-whitespace-before-property valid foo . bar ok 12111 no-whitespace-before-property valid foo. bar() ok 12112 no-whitespace-before-property valid foo . bar() ok 12113 no-whitespace-before-property valid foo [bar] ok 12114 no-whitespace-before-property valid foo ['bar'] ok 12115 no-whitespace-before-property valid foo [0] ok 12116 no-whitespace-before-property valid foo [ bar ] ok 12117 no-whitespace-before-property valid foo.bar.baz ok 12118 no-whitespace-before-property valid foo .bar .baz ok 12119 no-whitespace-before-property valid foo. bar. baz ok 12120 no-whitespace-before-property valid foo.bar().baz() ok 12121 no-whitespace-before-property valid foo .bar() .baz() ok 12122 no-whitespace-before-property valid foo. bar(). baz() ok 12123 no-whitespace-before-property valid foo .bar [baz] ok 12124 no-whitespace-before-property valid foo .bar ['baz'] ok 12125 no-whitespace-before-property valid foo .bar [0] ok 12126 no-whitespace-before-property valid foo .bar [ baz ] ok 12127 no-whitespace-before-property valid foo .bar .baz ok 12128 no-whitespace-before-property valid foo. bar. baz ok 12129 no-whitespace-before-property valid foo .bar() .baz() ok 12130 no-whitespace-before-property valid foo. bar(). baz() ok 12131 no-whitespace-before-property valid foo .bar [baz] ok 12132 no-whitespace-before-property valid foo .bar ['baz'] ok 12133 no-whitespace-before-property valid foo .bar [0] ok 12134 no-whitespace-before-property valid foo .bar [ baz ] ok 12135 no-whitespace-before-property valid foo .bar .baz ok 12136 no-whitespace-before-property valid foo. bar. baz ok 12137 no-whitespace-before-property valid foo .bar() .baz() ok 12138 no-whitespace-before-property valid foo. bar(). baz() ok 12139 no-whitespace-before-property valid foo .bar [baz] ok 12140 no-whitespace-before-property valid foo .bar ['baz'] ok 12141 no-whitespace-before-property valid foo .bar [0] ok 12142 no-whitespace-before-property valid foo .bar [ baz ] ok 12143 no-whitespace-before-property valid foo['bar' + baz] ok 12144 no-whitespace-before-property valid foo[ 'bar' + baz ] ok 12145 no-whitespace-before-property valid (foo + bar).baz ok 12146 no-whitespace-before-property valid ( foo + bar ).baz ok 12147 no-whitespace-before-property valid (foo ? bar : baz).qux ok 12148 no-whitespace-before-property valid ( foo ? bar : baz ).qux ok 12149 no-whitespace-before-property valid (foo ? bar : baz)[qux] ok 12150 no-whitespace-before-property valid ( foo ? bar : baz )[qux] ok 12151 no-whitespace-before-property valid ( foo ? bar : baz )[0].qux ok 12152 no-whitespace-before-property valid foo.bar[('baz')] ok 12153 no-whitespace-before-property valid foo.bar[ ('baz') ] ok 12154 no-whitespace-before-property valid foo[[bar]] ok 12155 no-whitespace-before-property valid foo[ [ bar ] ] ok 12156 no-whitespace-before-property valid foo[['bar']] ok 12157 no-whitespace-before-property valid foo[ [ 'bar' ] ] ok 12158 no-whitespace-before-property valid foo[(('baz'))] ok 12159 no-whitespace-before-property valid foo[ (('baz'))] ok 12160 no-whitespace-before-property valid foo[0][[('baz')]] ok 12161 no-whitespace-before-property valid foo[bar.baz('qux')] ok 12162 no-whitespace-before-property valid foo[(bar.baz() + 0) + qux] ok 12163 no-whitespace-before-property valid foo['bar ' + 1 + ' baz'] ok 12164 no-whitespace-before-property valid 5['toExponential']() ok 12165 no-whitespace-before-property invalid foo. bar ok 12166 no-whitespace-before-property invalid foo .bar ok 12167 no-whitespace-before-property invalid foo [bar] ok 12168 no-whitespace-before-property invalid foo [0] ok 12169 no-whitespace-before-property invalid foo ['bar'] ok 12170 no-whitespace-before-property invalid foo. bar. baz ok 12171 no-whitespace-before-property invalid foo .bar. baz ok 12172 no-whitespace-before-property invalid foo [bar] [baz] ok 12173 no-whitespace-before-property invalid foo [bar][baz] ok 12174 no-whitespace-before-property invalid foo[bar] [baz] ok 12175 no-whitespace-before-property invalid foo.bar [baz] ok 12176 no-whitespace-before-property invalid foo. bar[baz] ok 12177 no-whitespace-before-property invalid foo[bar]. baz ok 12178 no-whitespace-before-property invalid foo[ bar ] [ baz ] ok 12179 no-whitespace-before-property invalid foo [ 0 ][ baz ] ok 12180 no-whitespace-before-property invalid foo[ 0 ] [ 'baz' ] ok 12181 no-whitespace-before-property invalid foo .bar ok 12182 no-whitespace-before-property invalid foo. bar ok 12183 no-whitespace-before-property invalid foo .bar() ok 12184 no-whitespace-before-property invalid foo. bar() ok 12185 no-whitespace-before-property invalid foo [bar] ok 12186 no-whitespace-before-property invalid foo [0] ok 12187 no-whitespace-before-property invalid foo ['bar'] ok 12188 no-whitespace-before-property invalid foo. bar. baz ok 12189 no-whitespace-before-property invalid foo .bar. baz ok 12190 no-whitespace-before-property invalid foo. bar(). baz() ok 12191 no-whitespace-before-property invalid foo .bar(). baz() ok 12192 no-whitespace-before-property invalid foo [bar] [baz] ok 12193 no-whitespace-before-property invalid foo [bar][baz] ok 12194 no-whitespace-before-property invalid foo[bar] [baz] ok 12195 no-whitespace-before-property invalid foo.bar [baz] ok 12196 no-whitespace-before-property invalid foo. bar[baz] ok 12197 no-whitespace-before-property invalid foo[bar]. baz ok 12198 no-whitespace-before-property invalid foo [bar] .baz ok 12199 no-whitespace-before-property invalid foo. bar .baz ok 12200 no-whitespace-before-property invalid foo .bar .baz ok 12201 no-whitespace-before-property invalid foo. bar. baz ok 12202 no-whitespace-before-property invalid foo. bar . baz ok 12203 no-whitespace-before-property invalid foo. bar() .baz() ok 12204 no-whitespace-before-property invalid foo .bar() .baz() ok 12205 no-whitespace-before-property invalid foo. bar(). baz() ok 12206 no-whitespace-before-property invalid foo. bar() . baz() ok 12207 no-whitespace-before-property invalid foo [bar] .baz ok 12208 no-whitespace-before-property invalid foo. bar .baz ok 12209 no-whitespace-before-property invalid foo .bar .baz ok 12210 no-whitespace-before-property invalid foo. bar. baz ok 12211 no-whitespace-before-property invalid foo. bar . baz ok 12212 no-whitespace-before-property invalid foo. bar() .baz() ok 12213 no-whitespace-before-property invalid foo .bar() .baz() ok 12214 no-whitespace-before-property invalid foo. bar(). baz() ok 12215 no-whitespace-before-property invalid foo. bar() . baz() ok 12216 no-whitespace-before-property invalid foo ['bar' + baz] ok 12217 no-whitespace-before-property invalid (foo + bar) .baz ok 12218 no-whitespace-before-property invalid (foo + bar). baz ok 12219 no-whitespace-before-property invalid (foo + bar) [baz] ok 12220 no-whitespace-before-property invalid (foo ? bar : baz) .qux ok 12221 no-whitespace-before-property invalid (foo ? bar : baz). qux ok 12222 no-whitespace-before-property invalid (foo ? bar : baz) [qux] ok 12223 no-whitespace-before-property invalid ( foo ? bar : baz ) [0].qux ok 12224 no-whitespace-before-property invalid ( foo ? bar : baz )[0] .qux ok 12225 no-whitespace-before-property invalid ( foo ? bar : baz )[0]. qux ok 12226 no-whitespace-before-property invalid ( foo ? bar : baz ) [0]. qux ok 12227 no-whitespace-before-property invalid foo.bar [('baz')] ok 12228 no-whitespace-before-property invalid foo .bar[('baz')] ok 12229 no-whitespace-before-property invalid foo .bar [('baz')] ok 12230 no-whitespace-before-property invalid foo [(('baz'))] ok 12231 no-whitespace-before-property invalid foo [[baz]] ok 12232 no-whitespace-before-property invalid foo [ [ baz ] ] ok 12233 no-whitespace-before-property invalid foo [['baz']] ok 12234 no-whitespace-before-property invalid foo [ [ 'baz' ] ] ok 12235 no-whitespace-before-property invalid foo[0] [[('baz')]] ok 12236 no-whitespace-before-property invalid foo [0][[('baz')]] ok 12237 no-whitespace-before-property invalid foo [0] [[('baz')]] ok 12238 no-whitespace-before-property invalid foo [bar.baz('qux')] ok 12239 no-whitespace-before-property invalid foo[bar .baz('qux')] ok 12240 no-whitespace-before-property invalid foo [bar . baz('qux')] ok 12241 no-whitespace-before-property invalid foo [(bar.baz() + 0) + qux] ok 12242 no-whitespace-before-property invalid foo[(bar. baz() + 0) + qux] ok 12243 no-whitespace-before-property invalid foo [(bar. baz() + 0) + qux] ok 12244 no-whitespace-before-property invalid foo ['bar ' + 1 + ' baz'] ok 12245 no-whitespace-before-property invalid 5 .toExponential() ok 12246 no-whitespace-before-property invalid 5 .toExponential() ok 12247 no-whitespace-before-property invalid 5. .toExponential() ok 12248 no-whitespace-before-property invalid 5.0 .toExponential() ok 12249 no-whitespace-before-property invalid 0x5 .toExponential() ok 12250 no-whitespace-before-property invalid 5e0 .toExponential() ok 12251 no-whitespace-before-property invalid 5e-0 .toExponential() ok 12252 no-whitespace-before-property invalid 5 ['toExponential']() ok 12253 no-whitespace-before-property invalid 05 .toExponential() ok 12254 no-with valid foo.bar() ok 12255 no-with invalid with(foo) { bar() } ok 12256 nonblock-statement-body-position valid if (foo) bar; ok 12257 nonblock-statement-body-position valid while (foo) bar; ok 12258 nonblock-statement-body-position valid do foo; while (bar) ok 12259 nonblock-statement-body-position valid for (;foo;) bar; ok 12260 nonblock-statement-body-position valid for (foo in bar) baz; ok 12261 nonblock-statement-body-position valid for (foo of bar) baz; ok 12262 nonblock-statement-body-position valid if (foo) bar; else baz; ok 12263 nonblock-statement-body-position valid if (foo) bar( baz ); ok 12264 nonblock-statement-body-position valid if (foo) bar(); ok 12265 nonblock-statement-body-position valid while (foo) bar(); ok 12266 nonblock-statement-body-position valid do bar(); while (foo) ok 12267 nonblock-statement-body-position valid for (;foo;) bar(); ok 12268 nonblock-statement-body-position valid if (foo) bar(); ok 12269 nonblock-statement-body-position valid while (foo) bar(); ok 12270 nonblock-statement-body-position valid do bar(); while (foo) ok 12271 nonblock-statement-body-position valid for (;foo;) bar(); ok 12272 nonblock-statement-body-position valid for (foo in bar) bar(); ok 12273 nonblock-statement-body-position valid for (foo of bar) bar(); ok 12274 nonblock-statement-body-position valid if (foo) bar(); else baz(); ok 12275 nonblock-statement-body-position valid if (foo) bar(); ok 12276 nonblock-statement-body-position valid if (foo) bar(); ok 12277 nonblock-statement-body-position valid if (foo) bar(); ok 12278 nonblock-statement-body-position valid while (foo) bar(); ok 12279 nonblock-statement-body-position valid while (foo) bar(); ok 12280 nonblock-statement-body-position valid while (foo) bar(); ok 12281 nonblock-statement-body-position valid while (foo) bar(); ok 12282 nonblock-statement-body-position valid ok 12283 nonblock-statement-body-position valid if (foo) { } else if (bar) { } ok 12284 nonblock-statement-body-position valid if (foo) { } else if (bar) { } ok 12285 nonblock-statement-body-position valid if (foo) { } else if (bar) { } ok 12286 nonblock-statement-body-position valid if (foo) { } else if (bar) { } ok 12287 nonblock-statement-body-position invalid if (foo) bar(); ok 12288 nonblock-statement-body-position invalid while (foo) bar(); ok 12289 nonblock-statement-body-position invalid do bar(); while (foo) ok 12290 nonblock-statement-body-position invalid for (;foo;) bar(); ok 12291 nonblock-statement-body-position invalid for (foo in bar) baz(); ok 12292 nonblock-statement-body-position invalid for (foo of bar) baz(); ok 12293 nonblock-statement-body-position invalid if (foo) bar(); else baz(); ok 12294 nonblock-statement-body-position invalid if (foo) bar(); ok 12295 nonblock-statement-body-position invalid while (foo) bar(); ok 12296 nonblock-statement-body-position invalid do bar(); while (foo) ok 12297 nonblock-statement-body-position invalid for (;foo;) bar(); ok 12298 nonblock-statement-body-position invalid for (foo in bar) baz(); ok 12299 nonblock-statement-body-position invalid for (foo of bar) baz(); ok 12300 nonblock-statement-body-position invalid if (foo) bar(); else baz(); ok 12301 nonblock-statement-body-position invalid if (foo) bar(); ok 12302 nonblock-statement-body-position invalid while (foo) bar(); ok 12303 nonblock-statement-body-position invalid do bar(); while (foo) ok 12304 object-curly-newline valid var a = { }; ok 12305 object-curly-newline valid var a = { foo }; ok 12306 object-curly-newline valid var a = { foo } ok 12307 object-curly-newline valid var a = { }; ok 12308 object-curly-newline valid var b = { a: 1 }; ok 12309 object-curly-newline valid var c = { a: 1, b: 2 }; ok 12310 object-curly-newline valid var d = { a: 1, b: 2 }; ok 12311 object-curly-newline valid var e = { a: function foo() { dosomething(); } }; ok 12312 object-curly-newline valid function foo({ a, b } : MyType) {} ok 12313 object-curly-newline valid function foo({ a, b } : { a : string, b : string }) {} ok 12314 object-curly-newline valid var a = {}; ok 12315 object-curly-newline valid var b = {a: 1}; ok 12316 object-curly-newline valid var c = {a: 1, b: 2}; ok 12317 object-curly-newline valid var d = {a: 1, b: 2}; ok 12318 object-curly-newline valid var e = {a: function foo() { dosomething(); }}; ok 12319 object-curly-newline valid function foo({ a, b } : MyType) {} ok 12320 object-curly-newline valid function foo({ a, b } : { a : string, b : string }) {} ok 12321 object-curly-newline valid var a = {}; ok 12322 object-curly-newline valid var b = {a: 1}; ok 12323 object-curly-newline valid var c = {a: 1, b: 2}; ok 12324 object-curly-newline valid var d = { a: 1, b: 2 }; ok 12325 object-curly-newline valid var e = { a: function foo() { dosomething(); } }; ok 12326 object-curly-newline valid var obj = { // comment a: 1 }; ok 12327 object-curly-newline valid var obj = { // comment a: 1 }; ok 12328 object-curly-newline valid var a = {}; ok 12329 object-curly-newline valid var b = {a: 1}; ok 12330 object-curly-newline valid var c = { a: 1, b: 2 }; ok 12331 object-curly-newline valid var d = { a: 1, b: 2 }; ok 12332 object-curly-newline valid var e = {a: function foo() { dosomething(); }}; ok 12333 object-curly-newline valid var a = {}; ok 12334 object-curly-newline valid var b = {a: 1}; ok 12335 object-curly-newline valid var c = { a: 1, b: 2 }; ok 12336 object-curly-newline valid var d = { a: 1, b: 2 }; ok 12337 object-curly-newline valid var e = { a: function foo() { dosomething(); } }; ok 12338 object-curly-newline valid var b = { a: 1 }; ok 12339 object-curly-newline valid var c = {a: 1, b: 2}; ok 12340 object-curly-newline valid var c = { a: 1, b: 2 }; ok 12341 object-curly-newline valid var e = {a: function() { dosomething();}}; ok 12342 object-curly-newline valid var e = { a: function() { dosomething();} }; ok 12343 object-curly-newline valid let {} = {a: 1}; ok 12344 object-curly-newline valid let {a} = {a: 1}; ok 12345 object-curly-newline valid let { } = {a: 1}; ok 12346 object-curly-newline valid let { a } = {a: 1}; ok 12347 object-curly-newline valid let {a, b} = {a: 1, b: 1}; ok 12348 object-curly-newline valid let { a, b } = {a: 1, b: 1}; ok 12349 object-curly-newline valid let {k = function() {dosomething();}} = obj; ok 12350 object-curly-newline valid let { k = function() { dosomething(); } } = obj; ok 12351 object-curly-newline valid var c = {a: 1, b: 2}; ok 12352 object-curly-newline valid let {a, b} = {a: 1, b: 1}; ok 12353 object-curly-newline valid var c = { a: 1 }; ok 12354 object-curly-newline valid var c = { a: 1 }; ok 12355 object-curly-newline valid let {a} = { a: 1 }; ok 12356 object-curly-newline valid let { a } = { a: 1 }; ok 12357 object-curly-newline valid let {a, b} = { a: 1, b: 2 }; ok 12358 object-curly-newline valid import { a, b } from 'module'; ok 12359 object-curly-newline valid import {a as a, b} from 'module'; ok 12360 object-curly-newline valid import { a, } from 'module'; ok 12361 object-curly-newline valid import { a, b } from 'module'; ok 12362 object-curly-newline valid import { a, } from 'module'; ok 12363 object-curly-newline valid import { a } from 'module'; ok 12364 object-curly-newline valid import { a, b } from 'module'; ok 12365 object-curly-newline valid import {a, b} from 'module'; ok 12366 object-curly-newline valid import DefaultExport, {a} from 'module'; ok 12367 object-curly-newline valid var a = 0, b = 0; export {a, b}; ok 12368 object-curly-newline valid var a = 0, b = 0; export { a as a, b } from 'module'; ok 12369 object-curly-newline valid export { a } from 'module'; ok 12370 object-curly-newline valid export { a, b } from 'module'; ok 12371 object-curly-newline valid export {a, b} from 'module'; ok 12372 object-curly-newline valid export { a, b } from 'module'; ok 12373 object-curly-newline valid export {a, b} from 'module'; ok 12374 object-curly-newline invalid var a = { a }; ok 12375 object-curly-newline invalid var a = {}; ok 12376 object-curly-newline invalid var b = {a: 1}; ok 12377 object-curly-newline invalid var c = {a: 1, b: 2}; ok 12378 object-curly-newline invalid var d = {a: 1, b: 2}; ok 12379 object-curly-newline invalid var e = {a: function foo() { dosomething(); }}; ok 12380 object-curly-newline invalid function foo({ a, b } : MyType) {} ok 12381 object-curly-newline invalid function foo({ a, b } : { a : string, b : string }) {} ok 12382 object-curly-newline invalid var a = { }; ok 12383 object-curly-newline invalid var b = { a: 1 }; ok 12384 object-curly-newline invalid var c = { a: 1, b: 2 }; ok 12385 object-curly-newline invalid var d = { a: 1, b: 2 }; ok 12386 object-curly-newline invalid var e = { a: function foo() { dosomething(); } }; ok 12387 object-curly-newline invalid function foo({ a, b } : MyType) {} ok 12388 object-curly-newline invalid function foo({ a, b } : { a : string, b : string }) {} ok 12389 object-curly-newline invalid var a = { }; ok 12390 object-curly-newline invalid var a = { /* comment */ }; ok 12391 object-curly-newline invalid var a = { // comment }; ok 12392 object-curly-newline invalid var b = { a: 1 }; ok 12393 object-curly-newline invalid var b = { a: 1 // comment }; ok 12394 object-curly-newline invalid var c = { a: 1, b: 2 }; ok 12395 object-curly-newline invalid var c = { a: 1, b: 2 // comment }; ok 12396 object-curly-newline invalid var d = {a: 1, b: 2}; ok 12397 object-curly-newline invalid var d = {a: 1, // comment b: 2}; ok 12398 object-curly-newline invalid var e = {a: function foo() { dosomething(); }}; ok 12399 object-curly-newline invalid var e = {a: function foo() { // comment dosomething(); }}; ok 12400 object-curly-newline invalid var e = {a: 1, /* comment */ b: 2, // another comment }; ok 12401 object-curly-newline invalid var f = { /* comment */ a: 2 }; ok 12402 object-curly-newline invalid var f = { /* comment */ a: 1}; ok 12403 object-curly-newline invalid var a = { }; ok 12404 object-curly-newline invalid var b = { a: 1 }; ok 12405 object-curly-newline invalid var c = {a: 1, b: 2}; ok 12406 object-curly-newline invalid var d = {a: 1, b: 2}; ok 12407 object-curly-newline invalid var e = { a: function foo() { dosomething(); } }; ok 12408 object-curly-newline invalid var a = { }; ok 12409 object-curly-newline invalid var b = { a: 1 }; ok 12410 object-curly-newline invalid var c = {a: 1, b: 2}; ok 12411 object-curly-newline invalid var d = {a: 1, b: 2}; ok 12412 object-curly-newline invalid var e = {a: function foo() { dosomething(); }}; ok 12413 object-curly-newline invalid var b = {a: 1 }; ok 12414 object-curly-newline invalid var b = { a: 1}; ok 12415 object-curly-newline invalid var c = {a: 1, b: 2 }; ok 12416 object-curly-newline invalid var c = { a: 1, b: 2}; ok 12417 object-curly-newline invalid var c = {a: 1, b: 2}; ok 12418 object-curly-newline invalid var e = {a: function() { dosomething(); }}; ok 12419 object-curly-newline invalid let {a } = {a: 1} ok 12420 object-curly-newline invalid let { a} = {a: 1} ok 12421 object-curly-newline invalid let {a, b } = {a: 1, b: 2} ok 12422 object-curly-newline invalid let { a, b} = {a: 1, b: 2} ok 12423 object-curly-newline invalid let {a, b} = {a: 1, b: 2} ok 12424 object-curly-newline invalid let {e = function() { dosomething(); }} = a; ok 12425 object-curly-newline invalid var c = { a: 1, b: 2}; ok 12426 object-curly-newline invalid var c = {a: 1, b: 2 }; ok 12427 object-curly-newline invalid let { a, b} = {a: 1, b: 2}; ok 12428 object-curly-newline invalid let {a, b } = {a: 1, b: 2}; ok 12429 object-curly-newline invalid var c = {a: 1, b: 2}; ok 12430 object-curly-newline invalid let {a, b} = { a: 1, b: 2 }; ok 12431 object-curly-newline invalid let { a, b } = {a: 1, b: 2}; ok 12432 object-curly-newline invalid import { a, b } from 'module'; ok 12433 object-curly-newline invalid import {a, b} from 'module'; ok 12434 object-curly-newline invalid import {a as c, b} from 'module'; ok 12435 object-curly-newline invalid import {a, b} from 'module'; ok 12436 object-curly-newline invalid import {a, b } from 'module'; ok 12437 object-curly-newline invalid import {a, b } from 'module'; ok 12438 object-curly-newline invalid import {a, b} from 'module'; ok 12439 object-curly-newline invalid import { a, b } from 'module'; ok 12440 object-curly-newline invalid import DefaultExport, {a, b} from 'module'; ok 12441 object-curly-newline invalid var a = 0; var b = 0; export { a, b }; ok 12442 object-curly-newline invalid export {a as a, b} from 'module'; ok 12443 object-curly-newline invalid export {a, b} from 'module'; ok 12444 object-curly-newline invalid export {a, b, } from 'module'; ok 12445 object-curly-newline invalid export {a, b } from 'module'; ok 12446 object-curly-newline invalid export {a, b,} from 'module'; ok 12447 object-curly-newline invalid export { a, b } from 'module'; ok 12448 object-curly-spacing valid var obj = { foo: bar, baz: qux }; ok 12449 object-curly-spacing valid var obj = { foo: { bar: quxx }, baz: qux }; ok 12450 object-curly-spacing valid var obj = { foo: bar, baz: qux }; ok 12451 object-curly-spacing valid var { x } = y ok 12452 object-curly-spacing valid var { x, y } = y ok 12453 object-curly-spacing valid var { x,y } = y ok 12454 object-curly-spacing valid var { x,y } = y ok 12455 object-curly-spacing valid var { x,y } = z ok 12456 object-curly-spacing valid var { x = 10, y } = y ok 12457 object-curly-spacing valid var { x: { z }, y } = y ok 12458 object-curly-spacing valid var { y, } = x ok 12459 object-curly-spacing valid var { y, } = x ok 12460 object-curly-spacing valid var { y: x } = x ok 12461 object-curly-spacing valid import door from 'room' ok 12462 object-curly-spacing valid import * as door from 'room' ok 12463 object-curly-spacing valid import { door } from 'room' ok 12464 object-curly-spacing valid import { door } from 'room' ok 12465 object-curly-spacing valid export { door } from 'room' ok 12466 object-curly-spacing valid import { house, mouse } from 'caravan' ok 12467 object-curly-spacing valid import house, { mouse } from 'caravan' ok 12468 object-curly-spacing valid import door, { house, mouse } from 'caravan' ok 12469 object-curly-spacing valid var door = 0;export { door } ok 12470 object-curly-spacing valid import 'room' ok 12471 object-curly-spacing valid import { bar as x } from 'foo'; ok 12472 object-curly-spacing valid import { x, } from 'foo'; ok 12473 object-curly-spacing valid import { x, } from 'foo'; ok 12474 object-curly-spacing valid export { x, } from 'foo'; ok 12475 object-curly-spacing valid export { x, } from 'foo'; ok 12476 object-curly-spacing valid var foo = {}; ok 12477 object-curly-spacing valid var obj = { 'foo': { 'bar': 1, 'baz': 2 }}; ok 12478 object-curly-spacing valid var a = { noop: function () {} }; ok 12479 object-curly-spacing valid var { y: { z }} = x ok 12480 object-curly-spacing valid var obj = { 'foo': [ 1, 2 ]}; ok 12481 object-curly-spacing valid var a = { thingInList: list[0] }; ok 12482 object-curly-spacing valid var obj = { 'qux': [ 1, 2 ], 'foo': { 'bar': 1, 'baz': 2 }}; ok 12483 object-curly-spacing valid var obj = { 'foo': { 'bar': 1, 'baz': 2 }, 'qux': [ 1, 2 ]}; ok 12484 object-curly-spacing valid var obj = {foo: bar, baz: qux }; ok 12485 object-curly-spacing valid var obj = { foo: bar, baz: qux}; ok 12486 object-curly-spacing valid var obj = {foo: bar, baz: qux}; ok 12487 object-curly-spacing valid var obj = {foo: {bar: quxx}, baz: qux}; ok 12488 object-curly-spacing valid var obj = {foo: { bar: quxx}, baz: qux }; ok 12489 object-curly-spacing valid var obj = {foo: { bar: quxx }, baz: qux}; ok 12490 object-curly-spacing valid var obj = { foo: bar, baz: qux }; ok 12491 object-curly-spacing valid var {x} = y ok 12492 object-curly-spacing valid var {x, y} = y ok 12493 object-curly-spacing valid var {x,y} = y ok 12494 object-curly-spacing valid var { x,y } = y ok 12495 object-curly-spacing valid var {x = 10} = y ok 12496 object-curly-spacing valid var {x = 10, y} = y ok 12497 object-curly-spacing valid var {x: {z}, y} = y ok 12498 object-curly-spacing valid var { x: {z }, y} = y ok 12499 object-curly-spacing valid var { y, } = x ok 12500 object-curly-spacing valid var {y,} = x ok 12501 object-curly-spacing valid var {y:x} = x ok 12502 object-curly-spacing valid import door from 'room' ok 12503 object-curly-spacing valid import * as door from 'room' ok 12504 object-curly-spacing valid import {door} from 'room' ok 12505 object-curly-spacing valid export {door} from 'room' ok 12506 object-curly-spacing valid import { door} from 'room' ok 12507 object-curly-spacing valid export { door } from 'room' ok 12508 object-curly-spacing valid import {house,mouse} from 'caravan' ok 12509 object-curly-spacing valid import {house, mouse} from 'caravan' ok 12510 object-curly-spacing valid var door = 0;export {door} ok 12511 object-curly-spacing valid import 'room' ok 12512 object-curly-spacing valid import x, {bar} from 'foo'; ok 12513 object-curly-spacing valid import x, {bar, baz} from 'foo'; ok 12514 object-curly-spacing valid import {bar as y} from 'foo'; ok 12515 object-curly-spacing valid import {x,} from 'foo'; ok 12516 object-curly-spacing valid import { x, } from 'foo'; ok 12517 object-curly-spacing valid export {x,} from 'foo'; ok 12518 object-curly-spacing valid export { x, } from 'foo'; ok 12519 object-curly-spacing valid var foo = {}; ok 12520 object-curly-spacing valid var obj = {'foo': {'bar': 1, 'baz': 2} }; ok 12521 object-curly-spacing valid var {} = foo; ok 12522 object-curly-spacing valid var [] = foo; ok 12523 object-curly-spacing valid var {a: {}} = foo; ok 12524 object-curly-spacing valid var {a: []} = foo; ok 12525 object-curly-spacing valid import {} from 'foo'; ok 12526 object-curly-spacing valid export {} from 'foo'; ok 12527 object-curly-spacing valid export {}; ok 12528 object-curly-spacing valid var {} = foo; ok 12529 object-curly-spacing valid var [] = foo; ok 12530 object-curly-spacing valid var {a: {}} = foo; ok 12531 object-curly-spacing valid var {a: []} = foo; ok 12532 object-curly-spacing valid import {} from 'foo'; ok 12533 object-curly-spacing valid export {} from 'foo'; ok 12534 object-curly-spacing valid export {}; ok 12535 object-curly-spacing valid function foo ({a, b}: Props) { } ok 12536 object-curly-spacing invalid import {bar} from 'foo.js'; ok 12537 object-curly-spacing invalid import { bar as y} from 'foo.js'; ok 12538 object-curly-spacing invalid import {bar as y} from 'foo.js'; ok 12539 object-curly-spacing invalid import { bar} from 'foo.js'; ok 12540 object-curly-spacing invalid import x, { bar} from 'foo'; ok 12541 object-curly-spacing invalid import x, { bar, baz} from 'foo'; ok 12542 object-curly-spacing invalid import x, {bar} from 'foo'; ok 12543 object-curly-spacing invalid import x, {bar, baz} from 'foo'; ok 12544 object-curly-spacing invalid import {bar,} from 'foo'; ok 12545 object-curly-spacing invalid import { bar, } from 'foo'; ok 12546 object-curly-spacing invalid var bar = 0; export {bar}; ok 12547 object-curly-spacing invalid var obj = { 'foo': [ 1, 2 ] }; ok 12548 object-curly-spacing invalid var obj = { 'foo': [ 1, 2 ] , 'bar': [ 'baz', 'qux' ] }; ok 12549 object-curly-spacing invalid var obj = { 'foo': { 'bar': 1, 'baz': 2 } }; ok 12550 object-curly-spacing invalid var obj = { 'foo': [ 1, 2 ] , 'bar': { 'baz': 1, 'qux': 2 } }; ok 12551 object-curly-spacing invalid var { a,} = x; ok 12552 object-curly-spacing invalid var {a, } = x; ok 12553 object-curly-spacing invalid var {a:b } = x; ok 12554 object-curly-spacing invalid var { a:b } = x; ok 12555 object-curly-spacing invalid var obj = {'foo': {'bar': 1, 'baz': 2}}; ok 12556 object-curly-spacing invalid var obj = {'foo': [1, 2] , 'bar': {'baz': 1, 'qux': 2}}; ok 12557 object-curly-spacing invalid var obj = {foo: bar, baz: qux}; ok 12558 object-curly-spacing invalid var obj = {foo: bar, baz: qux }; ok 12559 object-curly-spacing invalid var obj = { foo: bar, baz: qux}; ok 12560 object-curly-spacing invalid var obj = { foo: bar, baz: qux }; ok 12561 object-curly-spacing invalid var obj = {foo: bar, baz: qux }; ok 12562 object-curly-spacing invalid var obj = { foo: bar, baz: qux}; ok 12563 object-curly-spacing invalid var obj = { foo: { bar: quxx}, baz: qux}; ok 12564 object-curly-spacing invalid var obj = {foo: {bar: quxx }, baz: qux }; ok 12565 object-curly-spacing invalid export const thing = {value: 1 }; ok 12566 object-curly-spacing invalid var {x, y} = y ok 12567 object-curly-spacing invalid var { x, y} = y ok 12568 object-curly-spacing invalid var { x, y } = y ok 12569 object-curly-spacing invalid var {x, y } = y ok 12570 object-curly-spacing invalid var { x=10} = y ok 12571 object-curly-spacing invalid var {x=10 } = y ok 12572 object-curly-spacing invalid var obj = {'foo': [1, 2]}; ok 12573 object-curly-spacing invalid var obj = {'foo': [1, 2] , 'bar': ['baz', 'qux']}; ok 12574 object-curly-spacing invalid function foo ({a, b }: Props) { } ok 12575 object-property-newline valid var obj = { k1: 'val1', k2: 'val2', k3: 'val3', k4: 'val4' }; ok 12576 object-property-newline valid var obj = { k1: 'val1' , k2: 'val2' , k3: 'val3' , k4: 'val4' }; ok 12577 object-property-newline valid var obj = { k1: 'val1', k2: 'val2', k3: 'val3', k4: 'val4' }; ok 12578 object-property-newline valid var obj = { k1: 'val1' , k2: 'val2' , k3: 'val3' , k4: 'val4' }; ok 12579 object-property-newline valid var obj = { k1: 'val1' }; ok 12580 object-property-newline valid var obj = { k1: 'val1' }; ok 12581 object-property-newline valid var obj = {}; ok 12582 object-property-newline valid var obj = { [bar]: 'baz', baz }; ok 12583 object-property-newline valid var obj = { k1: 'val1', k2: 'val2', ...{} }; ok 12584 object-property-newline valid var obj = { k1: 'val1', k2: 'val2', ...{} }; ok 12585 object-property-newline valid var obj = { ...{} }; ok 12586 object-property-newline valid foo({ k1: 'val1', k2: 'val2' }); ok 12587 object-property-newline valid foo({ k1: 'val1', k2: 'val2' }); ok 12588 object-property-newline valid foo({ a, b }); ok 12589 object-property-newline valid foo({ a, b, }); ok 12590 object-property-newline valid foo({ bar() {}, baz }); ok 12591 object-property-newline valid foo({ [bar]: 'baz', baz }) ok 12592 object-property-newline valid foo({ k1: 'val1', k2: 'val2', ...{} }); ok 12593 object-property-newline valid foo({ k1: 'val1', k2: 'val2', ...{} }); ok 12594 object-property-newline valid foo({ ...{} }); ok 12595 object-property-newline valid var obj = { k1: 'val1', k2: 'val2', k3: 'val3' }; ok 12596 object-property-newline valid var obj = { k1: 'val1', k2: 'val2', k3: 'val3' }; ok 12597 object-property-newline valid var obj = { k1: 'val1' }; ok 12598 object-property-newline valid var obj = { k1: 'val1' }; ok 12599 object-property-newline valid var obj = {}; ok 12600 object-property-newline valid var obj = { 'k1': 'val1', k2: 'val2', ...{} }; ok 12601 object-property-newline valid var obj = { 'k1': 'val1', k2: 'val2', ...{} }; ok 12602 object-property-newline valid foo({ k1: 'val1', k2: 'val2' }); ok 12603 object-property-newline valid foo({ k1: 'val1', k2: 'val2' }); ok 12604 object-property-newline valid foo({ a, b }); ok 12605 object-property-newline valid foo({ bar() {}, baz }); ok 12606 object-property-newline valid foo({ [bar]: 'baz', baz }) ok 12607 object-property-newline valid foo({ 'k1': 'val1', k2: 'val2', ...{} }); ok 12608 object-property-newline valid foo({ 'k1': 'val1', k2: 'val2', ...{} }); ok 12609 object-property-newline valid var obj = {k1: ['foo', 'bar'], k2: 'val1', k3: 'val2'}; ok 12610 object-property-newline valid var obj = { k1: ['foo', 'bar'], k2: 'val1', k3: 'val2' }; ok 12611 object-property-newline valid var obj = { k1: 'val1', k2: {e1: 'foo', e2: 'bar'}, k3: 'val2' }; ok 12612 object-property-newline valid var obj = { k1: 'val1', k2: 'val2', k3: 'val3' }; ok 12613 object-property-newline invalid var obj = { k1: 'val1', k2: 'val2', k3: 'val3' }; ok 12614 object-property-newline invalid var obj = { k1: 'val1', k2: 'val2' }; ok 12615 object-property-newline invalid var obj = { k1: 'val1', k2: 'val2', k3: 'val3', k4: 'val4' }; ok 12616 object-property-newline invalid var obj = {k1: ['foo', 'bar'], k2: 'val1'}; ok 12617 object-property-newline invalid var obj = {k1: [ 'foo', 'bar' ], k2: 'val1'}; ok 12618 object-property-newline invalid var obj = { k1: 'val1', k2: {e1: 'foo', e2: 'bar'}, k3: 'val2' }; ok 12619 object-property-newline invalid var obj = { k1: 'val1', k2: {e1: 'foo', e2: 'bar'}, k3: 'val2' }; ok 12620 object-property-newline invalid var obj = { k1: 'val1', k2: [ 'val2a', 'val2b', 'val2c' ], k3: 'val3' }; ok 12621 object-property-newline invalid var obj = { k1: 'val1', [ k2]: 'val2' }; ok 12622 object-property-newline invalid var obj = { k1: 'val1', ...{} }; ok 12623 object-property-newline invalid var obj = { k1: 'val1', ...{} }; ok 12624 object-property-newline invalid foo({ k1: 'val1', k2: 'val2' }); ok 12625 object-property-newline invalid foo({ k1: 'val1', k2: 'val2' }); ok 12626 object-property-newline invalid foo({ a, b }); ok 12627 object-property-newline invalid foo({ a, b }); ok 12628 object-property-newline invalid foo({ bar() {}, baz }); ok 12629 object-property-newline invalid foo({ [bar]: 'baz', baz }) ok 12630 object-property-newline invalid foo({ k1: 'val1', [ k2]: 'val2' }) ok 12631 object-property-newline invalid foo({ k1: 'val1', ...{} }) ok 12632 object-property-newline invalid foo({ k1: 'val1', ...{} }) ok 12633 object-property-newline invalid var obj = { a: { b: 1, c: 2 }, d: 2 }; ok 12634 object-property-newline invalid ({ foo: 1 /* comment */, bar: 2 }) ok 12635 object-property-newline invalid ({ foo: 1, /* comment */ bar: 2 }) ok 12636 object-property-newline invalid var obj = { k1: 'val1', k2: 'val2', k3: 'val3' }; ok 12637 object-property-newline invalid var obj = { k1: 'val1', k2: 'val2', k3: 'val3' }; ok 12638 object-property-newline invalid var obj = {k1: [ 'foo', 'bar' ], k2: 'val1'}; ok 12639 object-property-newline invalid var obj = {k1: [ 'foo', 'bar' ], k2: 'val1'}; ok 12640 object-property-newline invalid var obj = { k1: 'val1', k2: { e1: 'foo', e2: 'bar' }, k3: 'val2' }; ok 12641 object-property-newline invalid var obj = { k1: 'val1', k2: [ 'val2a', 'val2b', 'val2c' ], k3: 'val3' }; ok 12642 object-property-newline invalid var obj = { [ k1]: 'val1', k2: 'val2' }; ok 12643 object-property-newline invalid var obj = { k1: 'val1', k2: 'val2', ...{} }; ok 12644 object-property-newline invalid var obj = { ...{}, k1: 'val1', k2: 'val2' }; ok 12645 object-property-newline invalid foo({ [ k1]: 'val1', k2: 'val2' }) ok 12646 object-property-newline invalid foo({ k1: 'val1', k2: 'val2', ...{} }) ok 12647 object-property-newline invalid foo({ ...{}, k1: 'val1', k2: 'val2' }) ok 12648 object-property-newline invalid var obj = { k1: 'val1', k2: 'val2', k3: 'val3' }; ok 12649 object-shorthand valid var x = {y() {}} ok 12650 object-shorthand valid var x = {y} ok 12651 object-shorthand valid var x = {a: b} ok 12652 object-shorthand valid var x = {a: 'a'} ok 12653 object-shorthand valid var x = {'a': 'a'} ok 12654 object-shorthand valid var x = {'a': b} ok 12655 object-shorthand valid var x = {y(x) {}} ok 12656 object-shorthand valid var {x,y,z} = x ok 12657 object-shorthand valid var {x: {y}} = z ok 12658 object-shorthand valid var x = {*x() {}} ok 12659 object-shorthand valid var x = {x: y} ok 12660 object-shorthand valid var x = {x: y, y: z} ok 12661 object-shorthand valid var x = {x: y, y: z, z: 'z'} ok 12662 object-shorthand valid var x = {x() {}, y: z, l(){}} ok 12663 object-shorthand valid var x = {x: y, y: z, a: b} ok 12664 object-shorthand valid var x = {x: y, y: z, 'a': b} ok 12665 object-shorthand valid var x = {x: y, y() {}, z: a} ok 12666 object-shorthand valid var x = {[y]: y} ok 12667 object-shorthand valid doSomething({x: y}) ok 12668 object-shorthand valid doSomething({'x': y}) ok 12669 object-shorthand valid doSomething({x: 'x'}) ok 12670 object-shorthand valid doSomething({'x': 'x'}) ok 12671 object-shorthand valid doSomething({y() {}}) ok 12672 object-shorthand valid doSomething({x: y, y() {}}) ok 12673 object-shorthand valid doSomething({y() {}, z: a}) ok 12674 object-shorthand valid !{ a: function a(){} }; ok 12675 object-shorthand valid var x = {y: (x)=>x} ok 12676 object-shorthand valid doSomething({y: (x)=>x}) ok 12677 object-shorthand valid var x = {y: (x)=>x, y: a} ok 12678 object-shorthand valid doSomething({x, y: (x)=>x}) ok 12679 object-shorthand valid ({ foo: x => { return; }}) ok 12680 object-shorthand valid ({ foo: (x) => { return; }}) ok 12681 object-shorthand valid ({ foo: () => { return; }}) ok 12682 object-shorthand valid var x = {get y() {}} ok 12683 object-shorthand valid var x = {set y(z) {}} ok 12684 object-shorthand valid var x = {get y() {}, set y(z) {}} ok 12685 object-shorthand valid doSomething({get y() {}}) ok 12686 object-shorthand valid doSomething({set y(z) {}}) ok 12687 object-shorthand valid doSomething({get y() {}, set y(z) {}}) ok 12688 object-shorthand valid var x = {[y]: y} ok 12689 object-shorthand valid var x = {['y']: 'y'} ok 12690 object-shorthand valid var x = {['y']: y} ok 12691 object-shorthand valid var x = {[y]() {}} ok 12692 object-shorthand valid var x = {[y]: function x() {}} ok 12693 object-shorthand valid var x = {[y]: y} ok 12694 object-shorthand valid var x = {y() {}} ok 12695 object-shorthand valid var x = {x, y() {}, a:b} ok 12696 object-shorthand valid var x = {y} ok 12697 object-shorthand valid var x = {y: {b}} ok 12698 object-shorthand valid var x = {a: n, c: d, f: g} ok 12699 object-shorthand valid var x = {a: function(){}, b: {c: d}} ok 12700 object-shorthand valid var x = {ConstructorFunction: function(){}, a: b} ok 12701 object-shorthand valid var x = {notConstructorFunction(){}, b: c} ok 12702 object-shorthand valid var x = {ConstructorFunction: function(){}, a: b} ok 12703 object-shorthand valid var x = {notConstructorFunction(){}, b: c} ok 12704 object-shorthand valid var x = {ConstructorFunction: function(){}, a: b} ok 12705 object-shorthand valid var x = {notConstructorFunction: function(){}, b: c} ok 12706 object-shorthand valid var x = {'a': function(){}} ok 12707 object-shorthand valid var x = {['a']: function(){}} ok 12708 object-shorthand valid var x = {'y': y} ok 12709 object-shorthand valid let {a, b} = o; ok 12710 object-shorthand valid var x = {foo: foo, bar: bar, ...baz} ok 12711 object-shorthand valid var x = {a: a, b: b} ok 12712 object-shorthand valid var x = {a: b, c: d, f: g} ok 12713 object-shorthand valid var x = {a, b} ok 12714 object-shorthand valid var x = {a, b, get test() { return 1; }} ok 12715 object-shorthand valid var x = {...bar} ok 12716 object-shorthand valid var x = {foo, bar, ...baz} ok 12717 object-shorthand valid var x = {bar: baz, ...qux} ok 12718 object-shorthand valid var x = {...foo, bar: bar, baz: baz} ok 12719 object-shorthand valid var x = {a, b} ok 12720 object-shorthand valid var x = {a, b, get test(){return 1;}} ok 12721 object-shorthand valid var x = {0: 'foo'} ok 12722 object-shorthand valid var x = {'key': 'baz'} ok 12723 object-shorthand valid var x = {foo: 'foo'} ok 12724 object-shorthand valid var x = {[foo]: foo} ok 12725 object-shorthand valid var x = {foo: function foo() {}} ok 12726 object-shorthand valid var x = {[foo]: 'foo'} ok 12727 object-shorthand valid var x = {bar, ...baz} ok 12728 object-shorthand valid var x = {bar: baz, ...qux} ok 12729 object-shorthand valid var x = {...foo, bar, baz} ok 12730 object-shorthand valid ({ x: () => foo }) ok 12731 object-shorthand valid ({ x: () => { return; } }) ok 12732 object-shorthand valid ({ x: () => foo }) ok 12733 object-shorthand valid ({ x() { return; } }) ok 12734 object-shorthand valid ({ x() { return; }, y() { return; } }) ok 12735 object-shorthand valid ({ x() { return; }, y: () => foo }) ok 12736 object-shorthand valid ({ x: () => foo, y() { return; } }) ok 12737 object-shorthand valid ({ x: () => { this; } }) ok 12738 object-shorthand valid function foo() { ({ x: () => { arguments; } }) } ok 12739 object-shorthand valid class Foo extends Bar { constructor() { var foo = { x: () => { super(); } }; } } ok 12740 object-shorthand valid class Foo extends Bar { baz() { var foo = { x: () => { super.baz(); } }; } } ok 12741 object-shorthand valid function foo() { var x = { x: () => { new.target; } }; } ok 12742 object-shorthand valid function foo() { var x = { x: () => { var y = () => { this; }; } }; } ok 12743 object-shorthand valid function foo() { var x = { x: () => { var y = () => { this; }; function foo() { this; } } }; } ok 12744 object-shorthand valid function foo() { var x = { x: () => { return { y: () => { this; } }; } }; } ok 12745 object-shorthand valid ({ [foo.bar]: () => {} }) ok 12746 object-shorthand invalid var x = {x: x} ok 12747 object-shorthand invalid var x = {'x': x} ok 12748 object-shorthand invalid var x = {y: y, x: x} ok 12749 object-shorthand invalid var x = {y: z, x: x, a: b} ok 12750 object-shorthand invalid var x = {y: z, x: x, a: b // comment } ok 12751 object-shorthand invalid var x = {y: z, a: b, // comment f: function() {}} ok 12752 object-shorthand invalid var x = {a: b, /* comment */ y: y } ok 12753 object-shorthand invalid var x = { a: b, /* comment */ y: y } ok 12754 object-shorthand invalid var x = { f: function() { /* comment */ a(b); } } ok 12755 object-shorthand invalid var x = { [f]: function() { /* comment */ a(b); } } ok 12756 object-shorthand invalid var x = { f: function*() { /* comment */ a(b); } } ok 12757 object-shorthand invalid var x = { f: /* comment */ function() { } } ok 12758 object-shorthand invalid var x = { f /* comment */: function() { } } ok 12759 object-shorthand invalid var x = {y: function() {}} ok 12760 object-shorthand invalid var x = {y: function*() {}} ok 12761 object-shorthand invalid var x = {x: y, y: z, a: a} ok 12762 object-shorthand invalid var x = {ConstructorFunction: function(){}, a: b} ok 12763 object-shorthand invalid var x = {x: y, y: z, a: function(){}, b() {}} ok 12764 object-shorthand invalid var x = {x: x, y: function() {}} ok 12765 object-shorthand invalid doSomething({x: x}) ok 12766 object-shorthand invalid doSomething({'x': x}) ok 12767 object-shorthand invalid doSomething({a: 'a', 'x': x}) ok 12768 object-shorthand invalid doSomething({y: function() {}}) ok 12769 object-shorthand invalid doSomething({[y]: function() {}}) ok 12770 object-shorthand invalid doSomething({['y']: function() {}}) ok 12771 object-shorthand invalid ({ foo: async function () {} }) ok 12772 object-shorthand invalid ({ 'foo': async function() {} }) ok 12773 object-shorthand invalid ({ [foo]: async function() {} }) ok 12774 object-shorthand invalid ({ [foo.bar]: function*() {} }) ok 12775 object-shorthand invalid ({ [foo ]: function() {} }) ok 12776 object-shorthand invalid ({ [ foo ]: async function() {} }) ok 12777 object-shorthand invalid ({ foo: function *() {} }) ok 12778 object-shorthand invalid ({ [ foo ]: function() {} }) ok 12779 object-shorthand invalid ({ [ foo]: function() {} }) ok 12780 object-shorthand invalid var x = {y: function() {}} ok 12781 object-shorthand invalid var x = {x, y() {}, z: function() {}} ok 12782 object-shorthand invalid var x = {ConstructorFunction: function(){}, a: b} ok 12783 object-shorthand invalid var x = {[y]: function() {}} ok 12784 object-shorthand invalid ({ [(foo)]: function() { return; } }) ok 12785 object-shorthand invalid ({ [(foo)]: async function() { return; } }) ok 12786 object-shorthand invalid ({ [(((((((foo)))))))]: function() { return; } }) ok 12787 object-shorthand invalid ({ [(foo)]() { return; } }) ok 12788 object-shorthand invalid ({ async [(foo)]() { return; } }) ok 12789 object-shorthand invalid ({ *[((foo))]() { return; } }) ok 12790 object-shorthand invalid ({ [(((((((foo)))))))]() { return; } }) ok 12791 object-shorthand invalid ({ 'foo bar'() { return; } }) ok 12792 object-shorthand invalid ({ *foo() { return; } }) ok 12793 object-shorthand invalid ({ async foo() { return; } }) ok 12794 object-shorthand invalid ({ *['foo bar']() { return; } }) ok 12795 object-shorthand invalid var x = {x: x} ok 12796 object-shorthand invalid var x = {a, b, c(){}, x: x} ok 12797 object-shorthand invalid var x = {y() {}} ok 12798 object-shorthand invalid var x = {*y() {}} ok 12799 object-shorthand invalid var x = {y} ok 12800 object-shorthand invalid var x = {y, a: b, *x(){}} ok 12801 object-shorthand invalid var x = {y: {x}} ok 12802 object-shorthand invalid var x = {ConstructorFunction(){}, a: b} ok 12803 object-shorthand invalid var x = {notConstructorFunction(){}, b: c} ok 12804 object-shorthand invalid var x = {foo: foo, bar: baz, ...qux} ok 12805 object-shorthand invalid var x = {foo, bar: baz, ...qux} ok 12806 object-shorthand invalid var x = {a: a} ok 12807 object-shorthand invalid var x = {a: function(){}} ok 12808 object-shorthand invalid var x = {[a]: function(){}} ok 12809 object-shorthand invalid var x = {'a'(){}} ok 12810 object-shorthand invalid var x = {['a'](){}} ok 12811 object-shorthand invalid var x = {a: a, b} ok 12812 object-shorthand invalid var x = {b, c: d, f: g} ok 12813 object-shorthand invalid var x = {foo, bar: baz, ...qux} ok 12814 object-shorthand invalid var x = {a: a, b: b} ok 12815 object-shorthand invalid var x = {a, z: function z(){}} ok 12816 object-shorthand invalid var x = {foo: function() {}} ok 12817 object-shorthand invalid var x = {a: a, b: b, ...baz} ok 12818 object-shorthand invalid var x = {foo, bar: bar, ...qux} ok 12819 object-shorthand invalid ({ x: () => { return; } }) ok 12820 object-shorthand invalid ({ x() { return; }, y: () => { return; } }) ok 12821 object-shorthand invalid ({ x: () => { return; }, y: () => foo }) ok 12822 object-shorthand invalid ({ x: () => { return; }, y: () => { return; } }) ok 12823 object-shorthand invalid ({ x: foo => { return; } }) ok 12824 object-shorthand invalid ({ x: (foo = 1) => { return; } }) ok 12825 object-shorthand invalid ({ x: ({ foo: bar = 1 } = {}) => { return; } }) ok 12826 object-shorthand invalid ({ x: () => { function foo() { this; } } }) ok 12827 object-shorthand invalid ({ x: () => { var foo = function() { arguments; } } }) ok 12828 object-shorthand invalid ({ x: () => { function foo() { arguments; } } }) ok 12829 object-shorthand invalid ({ x: () => { class Foo extends Bar { constructor() { super(); } } } }) ok 12830 object-shorthand invalid ({ x: () => { function foo() { new.target; } } }) ok 12831 object-shorthand invalid ({ 'foo bar': () => { return; } }) ok 12832 object-shorthand invalid ({ [foo]: () => { return; } }) ok 12833 object-shorthand invalid ({ a: 1, foo: async (bar = 1) => { return; } }) ok 12834 object-shorthand invalid ({ [ foo ]: async bar => { return; } }) ok 12835 object-shorthand invalid ({ key: (arg = () => {}) => {} }) ok 12836 object-shorthand invalid function foo() { var x = { x: () => { this; return { y: () => { foo; } }; } }; } ok 12837 object-shorthand invalid function foo() { var x = { x: () => { ({ y: () => { foo; } }); this; } }; } ok 12838 object-shorthand invalid ({ a: (function(){ return foo; }) }) ok 12839 object-shorthand invalid ({ a: (() => { return foo; }) }) ok 12840 object-shorthand invalid ({ a: async function*() {} }) ok 12841 object-shorthand invalid ({ async* a() {} }) ok 12842 one-var-declaration-per-line valid var a, b, c, d = 0; ok 12843 one-var-declaration-per-line valid var a, b, c, d = 0; ok 12844 one-var-declaration-per-line valid var a, b, c=0 d = 0; ok 12845 one-var-declaration-per-line valid let a, b; ok 12846 one-var-declaration-per-line valid var a = 0; var b = 0; ok 12847 one-var-declaration-per-line valid var a, b, c=0 d = 0; ok 12848 one-var-declaration-per-line valid var a, b, c, d = 0; ok 12849 one-var-declaration-per-line valid var a = 0, b; ok 12850 one-var-declaration-per-line valid var a = 0, b; ok 12851 one-var-declaration-per-line valid var a; var b; ok 12852 one-var-declaration-per-line valid for(var a = 0, b = 0;;){} ok 12853 one-var-declaration-per-line valid for(let a = 0, b = 0;;){} ok 12854 one-var-declaration-per-line valid for(const a = 0, b = 0;;){} ok 12855 one-var-declaration-per-line valid for(var a in obj){} ok 12856 one-var-declaration-per-line valid for(let a in obj){} ok 12857 one-var-declaration-per-line valid for(const a in obj){} ok 12858 one-var-declaration-per-line valid for(var a of arr){} ok 12859 one-var-declaration-per-line valid for(let a of arr){} ok 12860 one-var-declaration-per-line valid for(const a of arr){} ok 12861 one-var-declaration-per-line valid export let a, b; ok 12862 one-var-declaration-per-line valid export let a, b = 0; ok 12863 one-var-declaration-per-line invalid var a, b; ok 12864 one-var-declaration-per-line invalid let a, b; ok 12865 one-var-declaration-per-line invalid var a, b = 0; ok 12866 one-var-declaration-per-line invalid var a = { foo: bar }, b; ok 12867 one-var-declaration-per-line invalid var a =0, b; ok 12868 one-var-declaration-per-line invalid let a, b = 0; ok 12869 one-var-declaration-per-line invalid const a = 0, b = 0; ok 12870 one-var-declaration-per-line invalid var a, b, c = 0; ok 12871 one-var-declaration-per-line invalid var a, b, c = 0, d; ok 12872 one-var-declaration-per-line invalid var a, b, c = 0, d = 0; ok 12873 one-var-declaration-per-line invalid var a =0, b = 0; ok 12874 one-var-declaration-per-line invalid var a = { foo: bar }, b; ok 12875 one-var-declaration-per-line invalid for(var a = 0, b = 0;;){ var c,d;} ok 12876 one-var-declaration-per-line invalid export let a, b; ok 12877 one-var-declaration-per-line invalid export let a, b = 0; ok 12878 one-var valid function foo() { var bar = true; } ok 12879 one-var valid function foo() { var bar = true, baz = 1; if (qux) { bar = false; } } ok 12880 one-var valid var foo = function() { var bar = true; baz(); } ok 12881 one-var valid function foo() { var bar = true, baz = false; } ok 12882 one-var valid function foo() { var bar = true; var baz = false; } ok 12883 one-var valid for (var i = 0, len = arr.length; i < len; i++) {} ok 12884 one-var valid var bar = true; var baz = false; ok 12885 one-var valid var bar = true, baz = false; ok 12886 one-var valid var bar, baz; ok 12887 one-var valid var bar; var baz; ok 12888 one-var valid var bar, baz; ok 12889 one-var valid var bar = true, baz = false; ok 12890 one-var valid var bar = true, baz = false, a, b; ok 12891 one-var valid var bar = true; var baz = false; var a; var b; ok 12892 one-var valid var bar, baz; var a = true; var b = false; ok 12893 one-var valid var bar = true, baz = false; var a; var b; ok 12894 one-var valid var bar; var baz; var a = true, b = false; ok 12895 one-var valid function foo() { var a = [1, 2, 3]; var [b, c, d] = a; } ok 12896 one-var valid function foo() { let a = 1; var c = true; if (a) {let c = true; } } ok 12897 one-var valid function foo() { const a = 1; var c = true; if (a) {const c = true; } } ok 12898 one-var valid function foo() { if (true) { const a = 1; }; if (true) {const a = true; } } ok 12899 one-var valid function foo() { let a = 1; let b = true; } ok 12900 one-var valid function foo() { const a = 1; const b = true; } ok 12901 one-var valid function foo() { let a = 1; const b = false; var c = true; } ok 12902 one-var valid function foo() { let a = 1, b = false; var c = true; } ok 12903 one-var valid function foo() { let a = 1; let b = 2; const c = false; const d = true; var e = true, f = false; } ok 12904 one-var valid let foo = true; for (let i = 0; i < 1; i++) { let foo = false; } ok 12905 one-var valid let foo = true; for (let i = 0; i < 1; i++) { let foo = false; } ok 12906 one-var valid let foo = true, bar = false; ok 12907 one-var valid let foo = true, bar = false; ok 12908 one-var valid let foo = true, bar = false; ok 12909 one-var valid let foo, bar ok 12910 one-var valid let foo = true, bar = false; let a; let b; ok 12911 one-var valid let foo, bar; let a = true; let b = true; ok 12912 one-var valid var foo, bar; const a=1; const b=2; let c, d ok 12913 one-var valid var foo; var bar; const a=1, b=2; let c; let d ok 12914 one-var valid for (let x of foo) {}; for (let y of foo) {} ok 12915 one-var valid for (let x in foo) {}; for (let y in foo) {} ok 12916 one-var valid var x; for (var y in foo) {} ok 12917 one-var valid var x, y; for (y in foo) {} ok 12918 one-var valid var x, y; for (var z in foo) {} ok 12919 one-var valid var x; for (var y in foo) {var bar = y; for (var z in bar) {}} ok 12920 one-var valid var a = 1; var b = 2; var x, y; for (var z in foo) {var baz = z; for (var d in baz) {}} ok 12921 one-var valid var x; for (var y of foo) {} ok 12922 one-var valid var x, y; for (y of foo) {} ok 12923 one-var valid var x, y; for (var z of foo) {} ok 12924 one-var valid var x; for (var y of foo) {var bar = y; for (var z of bar) {}} ok 12925 one-var valid var a = 1; var b = 2; var x, y; for (var z of foo) {var baz = z; for (var d of baz) {}} ok 12926 one-var valid var foo = require('foo'), bar; ok 12927 one-var valid var foo = require('foo'), bar = require('bar'); ok 12928 one-var valid var bar = 'bar'; var foo = require('foo'); ok 12929 one-var valid var foo = require('foo'); var bar = 'bar'; ok 12930 one-var valid var foo = require('foo'); var bar = 'bar'; ok 12931 one-var valid var a = 0, b, c; ok 12932 one-var valid var a = 0, b = 1, c = 2; ok 12933 one-var valid var a = 0, b = 1; foo(); var c = 2; ok 12934 one-var valid let a = 0, b, c; ok 12935 one-var valid let a = 0, b = 1, c = 2; ok 12936 one-var valid let a = 0, b = 1; foo(); let c = 2; ok 12937 one-var valid const a = 0, b = 1; foo(); const c = 2; ok 12938 one-var valid const a = 0; var b = 1; ok 12939 one-var valid const a = 0; let b = 1; ok 12940 one-var valid let a = 0; const b = 1; var c = 2; ok 12941 one-var valid const foo = require('foo'); const bar = 'bar'; ok 12942 one-var valid var a = 0, b = 1; var c, d; ok 12943 one-var valid var a = 0; var b, c; var d = 1; ok 12944 one-var valid let a = 0, b = 1; let c, d; ok 12945 one-var valid let a = 0; let b, c; let d = 1; ok 12946 one-var valid const a = 0, b = 1; let c, d; ok 12947 one-var valid const a = 0; let b, c; const d = 1; ok 12948 one-var valid var a = 0, b = 1; var c; var d; ok 12949 one-var valid var a = 0; var b; var c; var d = 1; ok 12950 one-var valid let a = 0, b = 1; let c; let d; ok 12951 one-var valid let a = 0; let b; let c; let d = 1; ok 12952 one-var valid const a = 0, b = 1; let c; let d; ok 12953 one-var valid const a = 0; let b; let c; const d = 1; ok 12954 one-var valid var a, b; var c = 0, d = 1; ok 12955 one-var valid var a; var b = 0, c = 1; var d; ok 12956 one-var valid let a, b; let c = 0, d = 1; ok 12957 one-var valid let a; let b = 0, c = 1; let d; ok 12958 one-var valid let a, b; const c = 0, d = 1; ok 12959 one-var valid let a; const b = 0, c = 1; let d; ok 12960 one-var valid var a, b; var c = 0; var d = 1; ok 12961 one-var valid var a; var b = 0; var c = 1; var d; ok 12962 one-var valid let a, b; let c = 0; let d = 1; ok 12963 one-var valid let a; let b = 0; let c = 1; let d; ok 12964 one-var valid let a, b; const c = 0; const d = 1; ok 12965 one-var valid let a; const b = 0; const c = 1; let d; ok 12966 one-var valid var a = 0, b = 1; ok 12967 one-var valid var a = 0; foo; var b = 1; ok 12968 one-var valid let a = 0, b = 1; ok 12969 one-var valid let a = 0; foo; let b = 1; ok 12970 one-var valid const a = 0, b = 1; ok 12971 one-var valid const a = 0; foo; const b = 1; ok 12972 one-var valid let a, b; const c = 0, d = 1; ok 12973 one-var valid let a; const b = 0, c = 1; let d; ok 12974 one-var valid let a, b; const c = 0; const d = 1; ok 12975 one-var valid let a; const b = 0; const c = 1; let d; ok 12976 one-var valid const a = 0, b = 1; let c, d; ok 12977 one-var valid const a = 0; let b, c; const d = 1; ok 12978 one-var valid const a = 0, b = 1; let c; let d; ok 12979 one-var valid const a = 0; let b; let c; const d = 1; ok 12980 one-var valid var a = 1, b = 2; foo(); var c = 3, d = 4; ok 12981 one-var valid var bar, baz; ok 12982 one-var valid var bar = 1, baz = 2; qux(); var qux = 3, quux; ok 12983 one-var valid let a, b; var c; var d; let e; ok 12984 one-var valid const a = 1, b = 2; var d; var e; const f = 3; ok 12985 one-var valid var a, b; const c = 1; const d = 2; let e; let f; ok 12986 one-var valid var a = 1, b = 2; var c; var d; var e = 3, f = 4; ok 12987 one-var valid var a; somethingElse(); var b; ok 12988 one-var valid var foo = 1; let bar = function() { var x; }; var baz = 2; ok 12989 one-var invalid function foo() { var bar = true, baz = false; } ok 12990 one-var invalid function foo() { var bar = true; var baz = false; } ok 12991 one-var invalid var a = 1; for (var b = 2;;) {} ok 12992 one-var invalid function foo() { var foo = true, bar = false; } ok 12993 one-var invalid function foo() { var foo, bar; } ok 12994 one-var invalid function foo() { var bar, baz; var a = true; var b = false; var c, d;} ok 12995 one-var invalid function foo() { var bar = true, baz = false; var a; var b; var c = true, d = false; } ok 12996 one-var invalid function foo() { var bar = true, baz = false; var a, b;} ok 12997 one-var invalid function foo() { var bar = true; var baz = false; var a; var b;} ok 12998 one-var invalid function foo() { var a = [1, 2, 3]; var [b, c, d] = a; } ok 12999 one-var invalid function foo() { let a = 1; let b = 2; } ok 13000 one-var invalid function foo() { const a = 1; const b = 2; } ok 13001 one-var invalid function foo() { let a = 1; let b = 2; } ok 13002 one-var invalid function foo() { const a = 1; const b = 2; } ok 13003 one-var invalid function foo() { let a = 1, b = 2; } ok 13004 one-var invalid function foo() { let a = 1, b = 2; } ok 13005 one-var invalid function foo() { let a, b; } ok 13006 one-var invalid function foo() { const a = 1, b = 2; } ok 13007 one-var invalid function foo() { const a = 1, b = 2; } ok 13008 one-var invalid let foo = true; switch(foo) { case true: let bar = 2; break; case false: let baz = 3; break; } ok 13009 one-var invalid var one = 1, two = 2; var three; ok 13010 one-var invalid var i = [0], j; ok 13011 one-var invalid var i = [0], j; ok 13012 one-var invalid for (var x of foo) {}; for (var y of foo) {} ok 13013 one-var invalid for (var x in foo) {}; for (var y in foo) {} ok 13014 one-var invalid var foo = function() { var bar = true; var baz = false; } ok 13015 one-var invalid function foo() { var bar = true; if (qux) { var baz = false; } else { var quxx = 42; } } ok 13016 one-var invalid var foo = () => { var bar = true; var baz = false; } ok 13017 one-var invalid var foo = function() { var bar = true; if (qux) { var baz = false; } } ok 13018 one-var invalid var foo; var bar; ok 13019 one-var invalid var x = 1, y = 2; for (var z in foo) {} ok 13020 one-var invalid var x = 1, y = 2; for (var z of foo) {} ok 13021 one-var invalid var x; var y; for (var z in foo) {} ok 13022 one-var invalid var x; var y; for (var z of foo) {} ok 13023 one-var invalid var x; for (var y in foo) {var bar = y; var a; for (var z of bar) {}} ok 13024 one-var invalid var a = 1; var b = 2; var x, y; for (var z of foo) {var c = 3, baz = z; for (var d in baz) {}} ok 13025 one-var invalid var {foo} = 1, [bar] = 2; ok 13026 one-var invalid const foo = 1, bar = 2; ok 13027 one-var invalid var foo = 1, bar = 2; ok 13028 one-var invalid var foo = 1, // comment bar = 2; ok 13029 one-var invalid var f, k /* test */, l; ok 13030 one-var invalid var f, /* test */ l; ok 13031 one-var invalid var f, k /* test some more comment even more */, l = 1, P; ok 13032 one-var invalid var a = 1, b = 2 ok 13033 one-var invalid var foo = require('foo'), bar; ok 13034 one-var invalid var foo, bar = require('bar'); ok 13035 one-var invalid let foo, bar = require('bar'); ok 13036 one-var invalid const foo = 0, bar = require('bar'); ok 13037 one-var invalid const foo = require('foo'); const bar = require('bar'); ok 13038 one-var invalid var a = 1, b; var c; ok 13039 one-var invalid var a = 0, b = 1; var c = 2; ok 13040 one-var invalid let a = 1, b; let c; ok 13041 one-var invalid let a = 0, b = 1; let c = 2; ok 13042 one-var invalid const a = 0, b = 1; const c = 2; ok 13043 one-var invalid const a = 0; var b = 1; var c = 2; const d = 3; ok 13044 one-var invalid var a = true; var b = false; ok 13045 one-var invalid const a = 0; let b = 1; let c = 2; const d = 3; ok 13046 one-var invalid let a = 0; const b = 1; const c = 1; var d = 2; ok 13047 one-var invalid var a = 0; var b; var c; var d = 1 ok 13048 one-var invalid var a = 0; var b = 1; var c; var d; ok 13049 one-var invalid let a = 0; let b; let c; let d = 1; ok 13050 one-var invalid let a = 0; let b = 1; let c; let d; ok 13051 one-var invalid const a = 0; let b; let c; const d = 1; ok 13052 one-var invalid const a = 0; const b = 1; let c; let d; ok 13053 one-var invalid var a = 0; var b = 1; var c, d; ok 13054 one-var invalid var a = 0; var b, c; var d = 1; ok 13055 one-var invalid let a = 0; let b = 1; let c, d; ok 13056 one-var invalid let a = 0; let b, c; let d = 1; ok 13057 one-var invalid const a = 0; const b = 1; let c, d; ok 13058 one-var invalid const a = 0; let b, c; const d = 1; ok 13059 one-var invalid var a; var b; var c = 0; var d = 1; ok 13060 one-var invalid var a; var b = 0; var c = 1; var d; ok 13061 one-var invalid let a; let b; let c = 0; let d = 1; ok 13062 one-var invalid let a; let b = 0; let c = 1; let d; ok 13063 one-var invalid let a; let b; const c = 0; const d = 1; ok 13064 one-var invalid let a; const b = 0; const c = 1; let d; ok 13065 one-var invalid var a; var b; var c = 0, d = 1; ok 13066 one-var invalid var a; var b = 0, c = 1; var d; ok 13067 one-var invalid let a; let b; let c = 0, d = 1; ok 13068 one-var invalid let a; let b = 0, c = 1; let d; ok 13069 one-var invalid let a; let b; const c = 0, d = 1; ok 13070 one-var invalid let a; const b = 0, c = 1; let d; ok 13071 one-var invalid var a = 0; var b = 1; ok 13072 one-var invalid let a = 0; let b = 1; ok 13073 one-var invalid const a = 0; const b = 1; ok 13074 one-var invalid let a; let b; const c = 0; const d = 1; ok 13075 one-var invalid let a; const b = 0; const c = 1; let d; ok 13076 one-var invalid let a; let b; const c = 0, d = 1; ok 13077 one-var invalid let a; const b = 0, c = 1; let d; ok 13078 one-var invalid const a = 0; const b = 1; let c; let d; ok 13079 one-var invalid const a = 0; let b; let c; const d = 1; ok 13080 one-var invalid const a = 0; const b = 1; let c, d; ok 13081 one-var invalid const a = 0; let b, c; const d = 1; ok 13082 one-var invalid var bar; var baz; ok 13083 one-var invalid var bar = 1; var baz = 2; qux(); var qux = 3; var quux; ok 13084 one-var invalid let a, b; let c; var d, e; ok 13085 one-var invalid var a; var b; ok 13086 one-var invalid var a = 1; var b = 2; var c, d; var e = 3; var f = 4; ok 13087 one-var invalid var a = 1; var b = 2; foo(); var c = 3; var d = 4; ok 13088 one-var invalid var a var b ok 13089 operator-assignment valid x = y ok 13090 operator-assignment valid x = y + x ok 13091 operator-assignment valid x += x + y ok 13092 operator-assignment valid x = (x + y) - z ok 13093 operator-assignment valid x -= y ok 13094 operator-assignment valid x = y - x ok 13095 operator-assignment valid x *= x ok 13096 operator-assignment valid x = y * z ok 13097 operator-assignment valid x = (x * y) * z ok 13098 operator-assignment valid x = y / x ok 13099 operator-assignment valid x /= y ok 13100 operator-assignment valid x %= y ok 13101 operator-assignment valid x <<= y ok 13102 operator-assignment valid x >>= x >> y ok 13103 operator-assignment valid x >>>= y ok 13104 operator-assignment valid x &= y ok 13105 operator-assignment valid x **= y ok 13106 operator-assignment valid x ^= y ^ z ok 13107 operator-assignment valid x |= x | y ok 13108 operator-assignment valid x = x && y ok 13109 operator-assignment valid x = x || y ok 13110 operator-assignment valid x = x < y ok 13111 operator-assignment valid x = x > y ok 13112 operator-assignment valid x = x <= y ok 13113 operator-assignment valid x = x >= y ok 13114 operator-assignment valid x = x instanceof y ok 13115 operator-assignment valid x = x in y ok 13116 operator-assignment valid x = x == y ok 13117 operator-assignment valid x = x != y ok 13118 operator-assignment valid x = x === y ok 13119 operator-assignment valid x = x !== y ok 13120 operator-assignment valid x[y] = x['y'] + z ok 13121 operator-assignment valid x.y = x['y'] / z ok 13122 operator-assignment valid x.y = z + x.y ok 13123 operator-assignment valid x[fn()] = x[fn()] + y ok 13124 operator-assignment valid x += x + y ok 13125 operator-assignment valid x = x + y ok 13126 operator-assignment valid x = x ** y ok 13127 operator-assignment valid x = y ** x ok 13128 operator-assignment valid x = x * y + z ok 13129 operator-assignment invalid x = x + y ok 13130 operator-assignment invalid x = x - y ok 13131 operator-assignment invalid x = x * y ok 13132 operator-assignment invalid x = y * x ok 13133 operator-assignment invalid x = (y * z) * x ok 13134 operator-assignment invalid x = x / y ok 13135 operator-assignment invalid x = x % y ok 13136 operator-assignment invalid x = x << y ok 13137 operator-assignment invalid x = x >> y ok 13138 operator-assignment invalid x = x >>> y ok 13139 operator-assignment invalid x = x & y ok 13140 operator-assignment invalid x = x ^ y ok 13141 operator-assignment invalid x = x | y ok 13142 operator-assignment invalid x[0] = x[0] - y ok 13143 operator-assignment invalid x.y[z['a']][0].b = x.y[z['a']][0].b * 2 ok 13144 operator-assignment invalid x = x + y ok 13145 operator-assignment invalid x = (x + y) ok 13146 operator-assignment invalid x = x + (y) ok 13147 operator-assignment invalid x += (y) ok 13148 operator-assignment invalid x += y ok 13149 operator-assignment invalid foo.bar = foo.bar + baz ok 13150 operator-assignment invalid foo.bar += baz ok 13151 operator-assignment invalid foo.bar.baz = foo.bar.baz + qux ok 13152 operator-assignment invalid foo.bar.baz += qux ok 13153 operator-assignment invalid foo[bar] = foo[bar] + baz ok 13154 operator-assignment invalid foo[bar] >>>= baz ok 13155 operator-assignment invalid foo[5] = foo[5] / baz ok 13156 operator-assignment invalid (foo.bar) ^= ((((((((((((((((baz)))))))))))))))) ok 13157 operator-assignment invalid foo = foo ** bar ok 13158 operator-assignment invalid foo **= bar ok 13159 operator-assignment invalid foo *= bar + 1 ok 13160 operator-assignment invalid foo -= bar - baz ok 13161 operator-assignment invalid foo += bar + baz ok 13162 operator-assignment invalid foo += bar = 1 ok 13163 operator-assignment invalid foo *= (bar + 1) ok 13164 operator-linebreak valid 1 + 1 ok 13165 operator-linebreak valid 1 + 1 + 1 ok 13166 operator-linebreak valid 1 + 1 ok 13167 operator-linebreak valid 1 + (1 + 1) ok 13168 operator-linebreak valid f(1 + 1) ok 13169 operator-linebreak valid 1 || 1 ok 13170 operator-linebreak valid 1 || 1 ok 13171 operator-linebreak valid a += 1 ok 13172 operator-linebreak valid var a; ok 13173 operator-linebreak valid var o = something ok 13174 operator-linebreak valid o = something ok 13175 operator-linebreak valid 'a\ ' + 'c' ok 13176 operator-linebreak valid 'a' + 'b\ ' ok 13177 operator-linebreak valid (a ) + b ok 13178 operator-linebreak valid answer = everything ? 42 : foo; ok 13179 operator-linebreak valid answer = everything ? 42 : foo; ok 13180 operator-linebreak valid a ? 1 + 1 :2 ok 13181 operator-linebreak valid a ? 1 + 1 :2 ok 13182 operator-linebreak valid o = 1 + 1 - foo ok 13183 operator-linebreak valid 1 + 1 ok 13184 operator-linebreak valid 1 + 1 + 1 ok 13185 operator-linebreak valid f(1 + 1) ok 13186 operator-linebreak valid 1 || 1 ok 13187 operator-linebreak valid a += 1 ok 13188 operator-linebreak valid answer = everything ? 42 : foo; ok 13189 operator-linebreak valid 1 + 1 ok 13190 operator-linebreak valid 1 + 1 + 1 ok 13191 operator-linebreak valid 1 || 1 ok 13192 operator-linebreak valid a += 1 ok 13193 operator-linebreak valid var a; ok 13194 operator-linebreak valid 1 + 1 ok 13195 operator-linebreak valid 1 + 1 ok 13196 operator-linebreak valid answer = everything ? 42 : foo; ok 13197 operator-linebreak valid answer = everything ? 42 : foo; ok 13198 operator-linebreak valid answer = everything ? 42 : foo; ok 13199 operator-linebreak invalid 1 + 1 ok 13200 operator-linebreak invalid 1 + 2 + 3 ok 13201 operator-linebreak invalid 1 + 1 ok 13202 operator-linebreak invalid 1 + (1 + 1) ok 13203 operator-linebreak invalid f(1 + 1); ok 13204 operator-linebreak invalid 1 || 1 ok 13205 operator-linebreak invalid a += 1 ok 13206 operator-linebreak invalid var a = 1 ok 13207 operator-linebreak invalid (b) * (c) ok 13208 operator-linebreak invalid answer = everything ? 42 : foo; ok 13209 operator-linebreak invalid answer = everything ? 42 : foo; ok 13210 operator-linebreak invalid 1 + 1 ok 13211 operator-linebreak invalid f(1 + 1); ok 13212 operator-linebreak invalid 1 || 1 ok 13213 operator-linebreak invalid a += 1 ok 13214 operator-linebreak invalid var a = 1 ok 13215 operator-linebreak invalid answer = everything ? 42 : foo; ok 13216 operator-linebreak invalid 1 + 1 ok 13217 operator-linebreak invalid 1 +1 ok 13218 operator-linebreak invalid f(1 + 1); ok 13219 operator-linebreak invalid f(1 + 1); ok 13220 operator-linebreak invalid 1 || 1 ok 13221 operator-linebreak invalid 1 || 1 ok 13222 operator-linebreak invalid a += 1 ok 13223 operator-linebreak invalid a += 1 ok 13224 operator-linebreak invalid var a = 1 ok 13225 operator-linebreak invalid var a = 1 ok 13226 operator-linebreak invalid answer = everything ? 42 : foo; ok 13227 operator-linebreak invalid answer = everything ? 42 + 43 : foo; ok 13228 operator-linebreak invalid foo += 42; bar -= 12 + 5; ok 13229 operator-linebreak invalid answer = everything ? 42 : foo; ok 13230 operator-linebreak invalid foo+ +bar ok 13231 operator-linebreak invalid foo //comment && bar ok 13232 operator-linebreak invalid foo//comment + bar ok 13233 operator-linebreak invalid foo +//comment bar ok 13234 operator-linebreak invalid foo /* a */ + /* b */ bar ok 13235 operator-linebreak invalid foo /* a */ + /* b */ bar ok 13236 padded-blocks valid { a(); } ok 13237 padded-blocks valid { a(); } ok 13238 padded-blocks valid { //comment a(); } ok 13239 padded-blocks valid { a(); //comment } ok 13240 padded-blocks valid { a() //comment } ok 13241 padded-blocks valid { a = 1 } ok 13242 padded-blocks valid {//comment a(); } ok 13243 padded-blocks valid { /* comment */ a(); } ok 13244 padded-blocks valid { /* comment */ a(); } ok 13245 padded-blocks valid { /* comment */ /* another comment */ a(); } ok 13246 padded-blocks valid { /* comment */ /* another comment */ a(); /* comment */ /* another comment */} ok 13247 padded-blocks valid { a(); /* comment */ } ok 13248 padded-blocks valid { a(); /* comment */ } ok 13249 padded-blocks valid { a(); /* comment */ } ok 13250 padded-blocks valid switch (a) {} ok 13251 padded-blocks valid switch (a) { case 0: foo(); case 1: bar(); } ok 13252 padded-blocks valid switch (a) { case 0: foo(); case 1: bar(); } ok 13253 padded-blocks valid switch (a) { //comment case 0: foo();//comment } ok 13254 padded-blocks valid switch (a) {//coment case 0: foo(); case 1: bar(); /* comment */} ok 13255 padded-blocks valid class A{ foo(){} } ok 13256 padded-blocks valid class A{ foo(){} } ok 13257 padded-blocks valid class A{} ok 13258 padded-blocks valid class A{ } ok 13259 padded-blocks valid class A{ foo(){} } ok 13260 padded-blocks valid { a(); } ok 13261 padded-blocks valid { a();} ok 13262 padded-blocks valid {a(); } ok 13263 padded-blocks valid {a();} ok 13264 padded-blocks valid {a();} ok 13265 padded-blocks valid { a(); } ok 13266 padded-blocks valid {//comment a();} ok 13267 padded-blocks valid { //comment a() } ok 13268 padded-blocks valid {a();//comment } ok 13269 padded-blocks valid { a(); //comment } ok 13270 padded-blocks valid { a() //comment } ok 13271 padded-blocks valid { a() //comment b() } ok 13272 padded-blocks valid function a() { /* comment */ return; /* comment*/ } ok 13273 padded-blocks valid { // comment debugger; // comment } ok 13274 padded-blocks valid { // comment if ( // comment a) {} } ok 13275 padded-blocks valid { // comment if ( // comment a) {} } ok 13276 padded-blocks valid { // comment if ( // comment a) {} } ok 13277 padded-blocks valid switch (a) { case 0: foo(); } ok 13278 padded-blocks valid switch (a) { case 0: foo(); } ok 13279 padded-blocks valid class A{ foo(){} } ok 13280 padded-blocks valid class A{ foo(){} } ok 13281 padded-blocks valid { a(); } ok 13282 padded-blocks valid { a(); } ok 13283 padded-blocks valid switch (a) { case 0: foo(); case 1: bar(); } ok 13284 padded-blocks valid switch (a) { case 0: foo(); case 1: bar(); } ok 13285 padded-blocks valid class A{ foo(){} } ok 13286 padded-blocks valid class A{ foo(){} } ok 13287 padded-blocks invalid { //comment a(); } ok 13288 padded-blocks invalid { //comment a(); } ok 13289 padded-blocks invalid { a(); //comment } ok 13290 padded-blocks invalid { a() //comment } ok 13291 padded-blocks invalid { a(); } ok 13292 padded-blocks invalid { a(); } ok 13293 padded-blocks invalid { a(); } ok 13294 padded-blocks invalid { a(); } ok 13295 padded-blocks invalid { a();} ok 13296 padded-blocks invalid {a(); } ok 13297 padded-blocks invalid {a(); } ok 13298 padded-blocks invalid switch (a) { case 0: foo(); case 1: bar(); } ok 13299 padded-blocks invalid switch (a) { case 0: foo(); case 1: bar(); } ok 13300 padded-blocks invalid switch (a) { //comment case 0: foo();//comment } ok 13301 padded-blocks invalid class A { constructor(){} } ok 13302 padded-blocks invalid class A { constructor(){} } ok 13303 padded-blocks invalid {a();} ok 13304 padded-blocks invalid { a() //comment } ok 13305 padded-blocks invalid { a(); } ok 13306 padded-blocks invalid { a(); } ok 13307 padded-blocks invalid { a(); } ok 13308 padded-blocks invalid { a(); } ok 13309 padded-blocks invalid { a(); } ok 13310 padded-blocks invalid { a(); } ok 13311 padded-blocks invalid { a(); } ok 13312 padded-blocks invalid { // comment if ( // comment a) {} } ok 13313 padded-blocks invalid { // comment if ( // comment a) {} } ok 13314 padded-blocks invalid { // comment if ( // comment a) {} } ok 13315 padded-blocks invalid switch (a) { case 0: foo(); } ok 13316 padded-blocks invalid switch (a) { case 0: foo(); } ok 13317 padded-blocks invalid switch (a) { case 0: foo(); } ok 13318 padded-blocks invalid class A { constructor(){ foo(); } } ok 13319 padded-blocks invalid class A { constructor(){ foo(); } } ok 13320 padded-blocks invalid class A { constructor(){ foo(); } } ok 13321 padded-blocks invalid function foo() { // a b; } ok 13322 padded-blocks invalid function foo() { /* a */ bar; } ok 13323 padded-blocks invalid function foo() { bar; /* a */} ok 13324 padded-blocks invalid function foo() { /* a */ /* b */ bar; } ok 13325 padded-blocks invalid function foo() { /* a */ /* b */ bar; } ok 13326 padded-blocks invalid function foo() { /* a */ /* b */ bar; /* c *//* d */} ok 13327 padding-line-between-statements valid 'use strict'; foo(); if (a) { bar(); } ok 13328 padding-line-between-statements valid foo() ok 13329 padding-line-between-statements valid foo() ok 13330 padding-line-between-statements valid foo();bar(); ok 13331 padding-line-between-statements valid foo(); bar(); ok 13332 padding-line-between-statements valid foo(); //comment bar(); ok 13333 padding-line-between-statements valid foo(); /*comment*/ bar(); ok 13334 padding-line-between-statements valid foo(); bar(); ok 13335 padding-line-between-statements valid foo(); //comment bar(); ok 13336 padding-line-between-statements valid foo(); //comment bar(); ok 13337 padding-line-between-statements valid foo(); //comment //comment bar(); ok 13338 padding-line-between-statements valid if(a){} ;[].map(b) ok 13339 padding-line-between-statements valid foo(); { foo() } foo(); ok 13340 padding-line-between-statements valid { foo() } { foo() } ok 13341 padding-line-between-statements valid { foo() } { foo() } ok 13342 padding-line-between-statements valid { foo() } { foo() } ok 13343 padding-line-between-statements valid { foo() } //comment { foo() } ok 13344 padding-line-between-statements valid if(a); foo() ok 13345 padding-line-between-statements valid do;while(a); foo() ok 13346 padding-line-between-statements valid do{}while(a); foo() ok 13347 padding-line-between-statements valid a={} foo() ok 13348 padding-line-between-statements valid let a={} foo() ok 13349 padding-line-between-statements valid foo(function(){}) foo() ok 13350 padding-line-between-statements valid (function(){})() foo() ok 13351 padding-line-between-statements valid !function(){}() foo() ok 13352 padding-line-between-statements valid module.exports=1 ok 13353 padding-line-between-statements valid module.exports=1 foo() ok 13354 padding-line-between-statements valid module.exports.foo=1 foo() ok 13355 padding-line-between-statements valid exports.foo=1 foo() ok 13356 padding-line-between-statements valid m.exports=1 foo() ok 13357 padding-line-between-statements valid module.foo=1 foo() ok 13358 padding-line-between-statements valid foo=require("foo") foo() ok 13359 padding-line-between-statements valid const foo=a.require("foo") foo() ok 13360 padding-line-between-statements valid "use strict" foo() ok 13361 padding-line-between-statements valid function foo(){"use strict" foo()} ok 13362 padding-line-between-statements valid (function foo(){"use strict" foo()}) ok 13363 padding-line-between-statements valid (()=>{"use strict" foo()}) ok 13364 padding-line-between-statements valid 'use strict' foo() ok 13365 padding-line-between-statements valid foo("use strict") foo() ok 13366 padding-line-between-statements valid `use strict` foo() ok 13367 padding-line-between-statements valid ("use strict") foo() ok 13368 padding-line-between-statements valid 'use '+'strict' foo() ok 13369 padding-line-between-statements valid foo() "use strict" foo() ok 13370 padding-line-between-statements valid {"use strict" foo()} ok 13371 padding-line-between-statements valid {} foo() ok 13372 padding-line-between-statements valid if(a){} foo() ok 13373 padding-line-between-statements valid while(a){} foo() ok 13374 padding-line-between-statements valid { } foo() ok 13375 padding-line-between-statements valid if(a){ } foo() ok 13376 padding-line-between-statements valid while(a){ } foo() ok 13377 padding-line-between-statements valid do{ }while(a) foo() ok 13378 padding-line-between-statements valid for(;;){ } foo() ok 13379 padding-line-between-statements valid for(a in b){ } foo() ok 13380 padding-line-between-statements valid for(a of b){ } foo() ok 13381 padding-line-between-statements valid switch(a){ } foo() ok 13382 padding-line-between-statements valid function foo(a){ } foo() ok 13383 padding-line-between-statements valid var a=function foo(a){ } foo() ok 13384 padding-line-between-statements valid {} foo() ok 13385 padding-line-between-statements valid { } foo() ok 13386 padding-line-between-statements valid { foo() } foo() ok 13387 padding-line-between-statements valid if(a){} foo() ok 13388 padding-line-between-statements valid a={} foo() ok 13389 padding-line-between-statements valid ; foo() ok 13390 padding-line-between-statements valid 1; foo() ok 13391 padding-line-between-statements valid foo() foo() ok 13392 padding-line-between-statements valid a=b+c foo() ok 13393 padding-line-between-statements valid var a=1 foo() ok 13394 padding-line-between-statements valid 'use strict' foo() ok 13395 padding-line-between-statements valid foo() foo( x, y ) ok 13396 padding-line-between-statements valid foo() foo() ok 13397 padding-line-between-statements valid () => { someArray.forEach(x => doSomething(x)); return theThing; } ok 13398 padding-line-between-statements valid () => { someArray.forEach( x => doSomething(x) ); return theThing; } ok 13399 padding-line-between-statements valid A:{break A foo()} ok 13400 padding-line-between-statements valid while(a){break foo()} ok 13401 padding-line-between-statements valid switch(a){case 0:break foo()} ok 13402 padding-line-between-statements valid switch(a){case 0:break case 1:break} ok 13403 padding-line-between-statements valid switch(a){case 0: foo() case 1: foo()} ok 13404 padding-line-between-statements valid switch(a){case 0: foo() default: foo()} ok 13405 padding-line-between-statements valid class A{} foo() ok 13406 padding-line-between-statements valid var A = class{} foo() ok 13407 padding-line-between-statements valid const a=1 foo() ok 13408 padding-line-between-statements valid let a=1 foo() ok 13409 padding-line-between-statements valid while(a){continue foo()} ok 13410 padding-line-between-statements valid while(a){break foo()} ok 13411 padding-line-between-statements valid debugger foo() ok 13412 padding-line-between-statements valid switch(a){default: foo() case 0: foo() case 1:} ok 13413 padding-line-between-statements valid do;while(a) foo() ok 13414 padding-line-between-statements valid while(a); foo() ok 13415 padding-line-between-statements valid export default 1 foo() ok 13416 padding-line-between-statements valid export let a=1 foo() ok 13417 padding-line-between-statements valid var a = 0; export {a} foo() ok 13418 padding-line-between-statements valid exports.foo=1 foo() ok 13419 padding-line-between-statements valid module.exports={} foo() ok 13420 padding-line-between-statements valid for(;;); foo() ok 13421 padding-line-between-statements valid for(a in b); foo() ok 13422 padding-line-between-statements valid for(a of b); foo() ok 13423 padding-line-between-statements valid while(a); foo() ok 13424 padding-line-between-statements valid function foo(){} foo() ok 13425 padding-line-between-statements valid var foo=function(){} foo() ok 13426 padding-line-between-statements valid async function foo(){} foo() ok 13427 padding-line-between-statements valid if(a); foo() ok 13428 padding-line-between-statements valid if(a);else; foo() ok 13429 padding-line-between-statements valid if(a);else if(b);else; foo() ok 13430 padding-line-between-statements valid for(;;); foo() ok 13431 padding-line-between-statements valid (function(){ })() var a = 2; ok 13432 padding-line-between-statements valid +(function(){ })() var a = 2; ok 13433 padding-line-between-statements valid (function(){ })() var a = 2; ok 13434 padding-line-between-statements valid +(function(){ })() var a = 2; ok 13435 padding-line-between-statements valid import 'a' foo() ok 13436 padding-line-between-statements valid import a from 'a' foo() ok 13437 padding-line-between-statements valid import * as a from 'a' foo() ok 13438 padding-line-between-statements valid import {a} from 'a' foo() ok 13439 padding-line-between-statements valid const a=require('a') foo() ok 13440 padding-line-between-statements valid let a=1 foo() ok 13441 padding-line-between-statements valid var a=1 foo() ok 13442 padding-line-between-statements valid function foo(){return foo()} ok 13443 padding-line-between-statements valid throw a foo() ok 13444 padding-line-between-statements valid switch(a){} foo() ok 13445 padding-line-between-statements valid if(a){} foo() ok 13446 padding-line-between-statements valid throw a foo() ok 13447 padding-line-between-statements valid try{}catch(e){} foo() ok 13448 padding-line-between-statements valid try{}finally{} foo() ok 13449 padding-line-between-statements valid try{}catch(e){}finally{} foo() ok 13450 padding-line-between-statements valid var a=1 foo() ok 13451 padding-line-between-statements valid const a=1 foo() ok 13452 padding-line-between-statements valid while(a); foo() ok 13453 padding-line-between-statements valid do;while(a) foo() ok 13454 padding-line-between-statements valid with(a); foo() ok 13455 padding-line-between-statements valid const a={ b:1, c:2 } const d=3 ok 13456 padding-line-between-statements valid const a=1 const b={ c:2, d:3 } ok 13457 padding-line-between-statements valid const a=1 const b=2 ok 13458 padding-line-between-statements valid const a=1 const b=2 ok 13459 padding-line-between-statements valid let a={ b:1, c:2 } let d=3 ok 13460 padding-line-between-statements valid let a=1 let b={ c:2, d:3 } ok 13461 padding-line-between-statements valid let a=1 let b=2 ok 13462 padding-line-between-statements valid let a=1 let b=2 ok 13463 padding-line-between-statements valid var a={ b:1, c:2 } var d=3 ok 13464 padding-line-between-statements valid var a=1 var b={ c:2, d:3 } ok 13465 padding-line-between-statements valid var a=1 var b=2 ok 13466 padding-line-between-statements valid var a=1 var b=2 ok 13467 padding-line-between-statements valid const a=1 const b=2 ok 13468 padding-line-between-statements valid const a=1 const b=2 ok 13469 padding-line-between-statements valid const a={ b:1, c:2 } const d={ e:3, f:4 } ok 13470 padding-line-between-statements valid const a={ b:1, c:2 } const d={ e:3, f:4 } ok 13471 padding-line-between-statements valid let a=1 let b=2 ok 13472 padding-line-between-statements valid let a=1 let b=2 ok 13473 padding-line-between-statements valid let a={ b:1, c:2 } let d={ e:3, f:4 } ok 13474 padding-line-between-statements valid let a={ b:1, c:2 } let d={ e:3, f:4 } ok 13475 padding-line-between-statements valid var a=1 var b=2 ok 13476 padding-line-between-statements valid var a=1 var b=2 ok 13477 padding-line-between-statements valid var a={ b:1, c:2 } var d={ e:3, f:4 } ok 13478 padding-line-between-statements valid var a={ b:1, c:2 } var d={ e:3, f:4 } ok 13479 padding-line-between-statements valid console.log(greet); ok 13480 padding-line-between-statements valid console.log(greet); ok 13481 padding-line-between-statements valid var greet = 'hello'; ok 13482 padding-line-between-statements valid var greet = 'hello'; ok 13483 padding-line-between-statements valid var greet = 'hello';console.log(greet); ok 13484 padding-line-between-statements valid var greet = 'hello'; console.log(greet); ok 13485 padding-line-between-statements valid var greet = 'hello'; console.log(greet); ok 13486 padding-line-between-statements valid var greet = 'hello'; console.log(greet); ok 13487 padding-line-between-statements valid var greet = 'hello'; console.log(greet); ok 13488 padding-line-between-statements valid var greet = 'hello'; console.log(greet); ok 13489 padding-line-between-statements valid var greet = 'hello'; console.log(greet); ok 13490 padding-line-between-statements valid var greet = 'hello'; // inline comment console.log(greet); ok 13491 padding-line-between-statements valid var greet = 'hello'; // inline comment console.log(greet); ok 13492 padding-line-between-statements valid var greet = 'hello'; // next-line comment console.log(greet); ok 13493 padding-line-between-statements valid var greet = 'hello'; /* block comment block comment */ console.log(greet); ok 13494 padding-line-between-statements valid var greet = 'hello'; // next-line comment console.log(greet); ok 13495 padding-line-between-statements valid var greet = 'hello'; /* block comment block comment */ console.log(greet); ok 13496 padding-line-between-statements valid var greet = 'hello'; // next-line comment // second-line comment console.log(greet); ok 13497 padding-line-between-statements valid var greet = 'hello'; // next-line comment // second-line comment console.log(greet); ok 13498 padding-line-between-statements valid var greet = 'hello'; // next-line comment /* block comment block comment */ console.log(greet); ok 13499 padding-line-between-statements valid var greet = 'hello';var name = 'world';console.log(greet, name); ok 13500 padding-line-between-statements valid var greet = 'hello'; var name = 'world'; console.log(greet, name); ok 13501 padding-line-between-statements valid var greet = 'hello'; var name = 'world'; console.log(greet, name); ok 13502 padding-line-between-statements valid var greet = 'hello'; // inline comment var name = 'world'; console.log(greet, name); ok 13503 padding-line-between-statements valid var greet = 'hello'; /* block comment block comment */ var name = 'world'; console.log(greet, name); ok 13504 padding-line-between-statements valid var greet = 'hello'; // inline comment var name = 'world'; console.log(greet, name); ok 13505 padding-line-between-statements valid var greet = 'hello'; /* block comment block comment */ var name = 'world'; console.log(greet, name); ok 13506 padding-line-between-statements valid var greet = 'hello', name = 'world';console.log(greet, name); ok 13507 padding-line-between-statements valid var greet = 'hello', name = 'world'; console.log(greet, name); ok 13508 padding-line-between-statements valid var greet = 'hello', name = 'world'; console.log(greet, name); ok 13509 padding-line-between-statements valid var greet = 'hello', name = 'world'; console.log(greet, name); ok 13510 padding-line-between-statements valid var greet = 'hello', name = 'world'; console.log(greet, name); ok 13511 padding-line-between-statements valid var greet = 'hello', // inline comment name = 'world'; // inline comment console.log(greet, name); ok 13512 padding-line-between-statements valid var greet = 'hello', // inline comment name = 'world'; // inline comment console.log(greet, name); ok 13513 padding-line-between-statements valid var greet = 'hello', name = 'world'; // next-line comment console.log(greet); ok 13514 padding-line-between-statements valid var greet = 'hello', name = 'world'; /* block comment block comment */ console.log(greet); ok 13515 padding-line-between-statements valid let greet = 'hello'; console.log(greet); ok 13516 padding-line-between-statements valid let greet = 'hello'; console.log(greet); ok 13517 padding-line-between-statements valid const greet = 'hello'; console.log(greet); ok 13518 padding-line-between-statements valid const greet = 'hello'; console.log(greet); ok 13519 padding-line-between-statements valid let greet = 'hello'; var name = 'world'; console.log(greet, name); ok 13520 padding-line-between-statements valid const greet = 'hello'; var name = 'world'; console.log(greet, name); ok 13521 padding-line-between-statements valid let greet = 'hello'; const name = 'world'; console.log(greet, name); ok 13522 padding-line-between-statements valid for(let a = 1; a < 1; a++){ break; } ok 13523 padding-line-between-statements valid for(var a = 1; a < 1; a++){ break; } ok 13524 padding-line-between-statements valid for(let a = 1; a < 1; a++){ break; } ok 13525 padding-line-between-statements valid for(var a = 1; a < 1; a++){ break; } ok 13526 padding-line-between-statements valid for(let a in obj){ break; } ok 13527 padding-line-between-statements valid for(var a in obj){ break; } ok 13528 padding-line-between-statements valid for(let a in obj){ break; } ok 13529 padding-line-between-statements valid for(var a in obj){ break; } ok 13530 padding-line-between-statements valid export let a = 1; export let b = 2; ok 13531 padding-line-between-statements valid export let a = 1; export let b = 2; ok 13532 padding-line-between-statements valid export var a = 1; export var b = 2; ok 13533 padding-line-between-statements valid export var a = 1; export var b = 2; ok 13534 padding-line-between-statements valid export const a = 1; export const b = 2; ok 13535 padding-line-between-statements valid export const a = 1; export const b = 2; ok 13536 padding-line-between-statements valid function example() { var greet = 'hello' } ok 13537 padding-line-between-statements valid function example() { var greet = 'hello' } ok 13538 padding-line-between-statements valid function example() { var greet = 'hello'; console.log(greet); } ok 13539 padding-line-between-statements valid var f = function() { var greet = 'hello' }; ok 13540 padding-line-between-statements valid var f = function() { var greet = 'hello' }; ok 13541 padding-line-between-statements valid var f = function() { var greet = 'hello'; console.log(greet); }; ok 13542 padding-line-between-statements valid () => { var greet = 'hello'; } ok 13543 padding-line-between-statements valid () => { var greet = 'hello'; } ok 13544 padding-line-between-statements valid () => { var greet = 'hello'; console.log(greet); } ok 13545 padding-line-between-statements valid { var foo; } ok 13546 padding-line-between-statements valid { var foo; } ok 13547 padding-line-between-statements valid if(true) { var foo; } ok 13548 padding-line-between-statements valid if(true) { var foo; } ok 13549 padding-line-between-statements valid switch(a) { case 0: var foo; } ok 13550 padding-line-between-statements valid switch(a) { case 0: var foo; } ok 13551 padding-line-between-statements valid switch(a) { case 0: var foo; case 1:} ok 13552 padding-line-between-statements valid switch(a) { case 0: var foo; case 1:} ok 13553 padding-line-between-statements valid var a = 1 ;(b || c).doSomething() ok 13554 padding-line-between-statements valid var a = 1 ;(b || c).doSomething() ok 13555 padding-line-between-statements valid var a = 1 ; (b || c).doSomething(); ok 13556 padding-line-between-statements valid switch(a) { case 0: var foo; case 1:} ok 13557 padding-line-between-statements valid switch(a) { case 0: var foo; case 1:} ok 13558 padding-line-between-statements valid var a = 1 ; (b || c).doSomething(); ok 13559 padding-line-between-statements valid function a() { return; } ok 13560 padding-line-between-statements valid function a() { return; } ok 13561 padding-line-between-statements valid function a() { var b; return; } ok 13562 padding-line-between-statements valid function a() { if (b) return; } ok 13563 padding-line-between-statements valid function a() { if (b) { return; } } ok 13564 padding-line-between-statements valid function a() { if (b) { return; } } ok 13565 padding-line-between-statements valid function a() { if (b) { return; } } ok 13566 padding-line-between-statements valid function a() { if (b) { return; } return c; } ok 13567 padding-line-between-statements valid function a() { if (b) { return; } return c; } ok 13568 padding-line-between-statements valid function a() { if (!b) { return; } else { return b; } } ok 13569 padding-line-between-statements valid function a() { if (!b) { return; } else { return b; } } ok 13570 padding-line-between-statements valid function a() { if (b) { return b; } else if (c) { return c; } } ok 13571 padding-line-between-statements valid function a() { if (b) { return b; } else if (c) { return c; } else { return d; } } ok 13572 padding-line-between-statements valid function a() { if (b) { return b; } else if (c) { return c; } else { return d; } return a; } ok 13573 padding-line-between-statements valid function a() { if (b) return b; else if (c) return c; else return d; } ok 13574 padding-line-between-statements valid function a() { if (b) return b; else if (c) return c; else { return d; } } ok 13575 padding-line-between-statements valid function a() { if (b) return b; else if (c) return c; else { e(); return d; } } ok 13576 padding-line-between-statements valid function a() { while (b) return; } ok 13577 padding-line-between-statements valid function a() { while (b) return; } ok 13578 padding-line-between-statements valid function a() { while (b) { return; } } ok 13579 padding-line-between-statements valid function a() { while (b) { return; } } ok 13580 padding-line-between-statements valid function a() { while (b) { c(); return; } } ok 13581 padding-line-between-statements valid function a() { var c; while (b) { c = d; //comment } return c; } ok 13582 padding-line-between-statements valid function a() { do return; while (b); } ok 13583 padding-line-between-statements valid function a() { do return; while (b); } ok 13584 padding-line-between-statements valid function a() { do { return; } while (b); } ok 13585 padding-line-between-statements valid function a() { do { return; } while (b); } ok 13586 padding-line-between-statements valid function a() { do { return; } while (b); } ok 13587 padding-line-between-statements valid function a() { do { c(); return; } while (b); } ok 13588 padding-line-between-statements valid function a() { for (var b; b < c; b++) return; } ok 13589 padding-line-between-statements valid function a() { for (var b; b < c; b++) return; } ok 13590 padding-line-between-statements valid function a() { for (var b; b < c; b++) { return; } } ok 13591 padding-line-between-statements valid function a() { for (var b; b < c; b++) { c(); return; } } ok 13592 padding-line-between-statements valid function a() { for (var b; b < c; b++) { if (d) { break; //comment } return; } } ok 13593 padding-line-between-statements valid function a() { for (b in c) return; } ok 13594 padding-line-between-statements valid function a() { for (b in c) { return; } } ok 13595 padding-line-between-statements valid function a() { for (b in c) { return; } } ok 13596 padding-line-between-statements valid function a() { for (b in c) { d(); return; } } ok 13597 padding-line-between-statements valid function a() { for (b of c) return; } ok 13598 padding-line-between-statements valid function a() { for (b of c) return; } ok 13599 padding-line-between-statements valid function a() { for (b of c) { return; } } ok 13600 padding-line-between-statements valid function a() { for (b of c) { d(); return; } } ok 13601 padding-line-between-statements valid function a() { switch (b) { case 'b': return; } } ok 13602 padding-line-between-statements valid function a() { switch (b) { case 'b': return; } } ok 13603 padding-line-between-statements valid function a() { switch (b) { case 'b': { return; } } } ok 13604 padding-line-between-statements valid function a() { //comment return b; } ok 13605 padding-line-between-statements valid function a() { { //comment } return } ok 13606 padding-line-between-statements valid function a() { var b = { //comment }; return; } ok 13607 padding-line-between-statements valid function a() {/*multi-line comment*/return b; } ok 13608 padding-line-between-statements valid function a() { /*comment comment*/ //comment return b; } ok 13609 padding-line-between-statements valid function a() { /*comment comment*/ //comment if (b) return; } ok 13610 padding-line-between-statements valid function a() { /*comment comment*/ //comment if (b) { c(); return b; } else { //comment return d; } /*multi-line comment*/ return e; } ok 13611 padding-line-between-statements valid function a() { if (b) { //comment return; } return c; } ok 13612 padding-line-between-statements valid function a() { if (b) { return; } //comment return c; } ok 13613 padding-line-between-statements valid function a() { if (b) { return; } /*multi-line comment*/ return c; } ok 13614 padding-line-between-statements valid function a() { if (b) { return; } /*multi-line comment*/ return c; } ok 13615 padding-line-between-statements valid return; ok 13616 padding-line-between-statements valid var a; return; ok 13617 padding-line-between-statements valid // comment return; ok 13618 padding-line-between-statements valid /* comment */ return; ok 13619 padding-line-between-statements valid /* multi-line comment */ return; ok 13620 padding-line-between-statements valid if(true){} ok 13621 padding-line-between-statements valid if(true){} ok 13622 padding-line-between-statements valid if(true){} var a = 2; ok 13623 padding-line-between-statements valid if(true){ if(true) {} } ok 13624 padding-line-between-statements valid var a = { foo: function() { }, bar: function() { }} ok 13625 padding-line-between-statements valid (function(){ })() var a = 2; ok 13626 padding-line-between-statements valid if(true) { } else { } ok 13627 padding-line-between-statements valid if(true) { } else { var a = 2; } ok 13628 padding-line-between-statements valid if(true) { } else if(true) { } else { } ok 13629 padding-line-between-statements valid do{ } while(true) ok 13630 padding-line-between-statements valid try{ } catch(e) {} ok 13631 padding-line-between-statements valid try{ } finally {} ok 13632 padding-line-between-statements valid try{ } catch(e) { } finally { } ok 13633 padding-line-between-statements valid [].map(function() {}) .filter(function(){}) ok 13634 padding-line-between-statements valid var a = 2; module.exports = a; ok 13635 padding-line-between-statements valid module.exports = 2; ok 13636 padding-line-between-statements valid var a = 2; // foo module.exports = a; ok 13637 padding-line-between-statements valid var a = 2; foo.exports = a; ok 13638 padding-line-between-statements valid var a = 2; module.foo = a; ok 13639 padding-line-between-statements valid var a = 2; foo = a; ok 13640 padding-line-between-statements valid {} ok 13641 padding-line-between-statements valid if(true){} ok 13642 padding-line-between-statements valid if(true){} ok 13643 padding-line-between-statements valid if(true){} var a = 2; ok 13644 padding-line-between-statements valid if(true){} var a = 2; ok 13645 padding-line-between-statements valid if(true){ if(true) {} } ok 13646 padding-line-between-statements valid var a = { foo: function() { }, bar: function() { }} ok 13647 padding-line-between-statements valid (function(){ })() var a = 2; ok 13648 padding-line-between-statements valid if(true) { } else { } ok 13649 padding-line-between-statements valid if(true) { } else { var a = 2; } ok 13650 padding-line-between-statements valid if(true) { } else if(true) { } else { } ok 13651 padding-line-between-statements valid do{ } while(true) ok 13652 padding-line-between-statements valid try{ } catch(e) {} ok 13653 padding-line-between-statements valid try{ } finally {} ok 13654 padding-line-between-statements valid try{ } catch(e) { } finally { } ok 13655 padding-line-between-statements valid [].map(function() {}) .filter(function(){}) ok 13656 padding-line-between-statements valid func( 2, 3, function() { } ) ok 13657 padding-line-between-statements valid [ 2, 3, function() { } ] ok 13658 padding-line-between-statements valid a(res => { }) .b(); ok 13659 padding-line-between-statements valid var foo = ( <div ref={function() { }} > foo </div> ); ok 13660 padding-line-between-statements valid var i = 0; while (i < 100) { if(i % 2 === 0) {continue;} ++i; } ok 13661 padding-line-between-statements valid var i = 0; while (i < 100) { if(i % 2 === 0) {if(i === 4) {continue;}} ++i; } ok 13662 padding-line-between-statements valid module.exports = 2; ok 13663 padding-line-between-statements valid var a = 2; module.exports = a; ok 13664 padding-line-between-statements valid var a = 2; foo.exports = a; ok 13665 padding-line-between-statements valid var a = 2; module.foo = a; ok 13666 padding-line-between-statements valid if (true) { module.exports = a; } ok 13667 padding-line-between-statements valid function x() { return; } ok 13668 padding-line-between-statements valid if (true) {} else if (false) {} ok 13669 padding-line-between-statements valid function x() { var a = true; do { a = !a; } while (a); } ok 13670 padding-line-between-statements valid function x() { if (true) return; } ok 13671 padding-line-between-statements valid function test() {}; ok 13672 padding-line-between-statements invalid foo(); foo(); ok 13673 padding-line-between-statements invalid foo(); //comment foo(); ok 13674 padding-line-between-statements invalid foo(); //comment foo(); ok 13675 padding-line-between-statements invalid if (a) {} for (;;) {} ok 13676 padding-line-between-statements invalid foo(); foo(); ok 13677 padding-line-between-statements invalid function a() {} do {} while (a) ok 13678 padding-line-between-statements invalid foo();//trailing-comment //comment //comment foo(); ok 13679 padding-line-between-statements invalid {} foo() ok 13680 padding-line-between-statements invalid {} foo() ok 13681 padding-line-between-statements invalid if(a){} foo() ok 13682 padding-line-between-statements invalid if(a){}else{} foo() ok 13683 padding-line-between-statements invalid if(a){}else if(b){} foo() ok 13684 padding-line-between-statements invalid if(a){}else if(b){}else{} foo() ok 13685 padding-line-between-statements invalid switch(a){} foo() ok 13686 padding-line-between-statements invalid switch(a){case 0:} foo() ok 13687 padding-line-between-statements invalid try{}catch(e){} foo() ok 13688 padding-line-between-statements invalid try{}finally{} foo() ok 13689 padding-line-between-statements invalid try{}catch(e){}finally{} foo() ok 13690 padding-line-between-statements invalid while(a){} foo() ok 13691 padding-line-between-statements invalid do{}while(a) foo() ok 13692 padding-line-between-statements invalid for(;;){} foo() ok 13693 padding-line-between-statements invalid for(a in b){} foo() ok 13694 padding-line-between-statements invalid for(a of b){} foo() ok 13695 padding-line-between-statements invalid a=function(){} foo() ok 13696 padding-line-between-statements invalid a=()=>{} foo() ok 13697 padding-line-between-statements invalid function a(){} foo() ok 13698 padding-line-between-statements invalid let a=function(){} foo() ok 13699 padding-line-between-statements invalid module.exports=1 foo() ok 13700 padding-line-between-statements invalid module.exports=1 foo() ok 13701 padding-line-between-statements invalid module.exports.foo=1 foo() ok 13702 padding-line-between-statements invalid module.exports[foo]=1 foo() ok 13703 padding-line-between-statements invalid exports.foo=1 foo() ok 13704 padding-line-between-statements invalid exports[foo]=1 foo() ok 13705 padding-line-between-statements invalid const foo=require("foo") foo() ok 13706 padding-line-between-statements invalid const foo=require("foo") foo() ok 13707 padding-line-between-statements invalid const foo=require("foo").Foo foo() ok 13708 padding-line-between-statements invalid const foo=require("foo")[a] foo() ok 13709 padding-line-between-statements invalid "use strict" foo() ok 13710 padding-line-between-statements invalid "use strict" foo() ok 13711 padding-line-between-statements invalid 'use strict' foo() ok 13712 padding-line-between-statements invalid 'use asm' foo() ok 13713 padding-line-between-statements invalid { } foo() ok 13714 padding-line-between-statements invalid { } foo() ok 13715 padding-line-between-statements invalid if(a){ } foo() ok 13716 padding-line-between-statements invalid if(a){ }else{ } foo() ok 13717 padding-line-between-statements invalid if(a){ }else if(b){ } foo() ok 13718 padding-line-between-statements invalid if(a){ }else if(b){ }else{ } foo() ok 13719 padding-line-between-statements invalid switch(a){ } foo() ok 13720 padding-line-between-statements invalid try{ }catch(e){ } foo() ok 13721 padding-line-between-statements invalid try{ }finally{ } foo() ok 13722 padding-line-between-statements invalid try{ }catch(e){ }finally{ } foo() ok 13723 padding-line-between-statements invalid while(a){ } foo() ok 13724 padding-line-between-statements invalid do{ }while(a) foo() ok 13725 padding-line-between-statements invalid for(;;){ } foo() ok 13726 padding-line-between-statements invalid for(a in b){ } foo() ok 13727 padding-line-between-statements invalid for(a of b){ } foo() ok 13728 padding-line-between-statements invalid a=function(){ } foo() ok 13729 padding-line-between-statements invalid a=()=>{ } foo() ok 13730 padding-line-between-statements invalid function a(){ } foo() ok 13731 padding-line-between-statements invalid let a=function(){ } foo() ok 13732 padding-line-between-statements invalid {} foo() ok 13733 padding-line-between-statements invalid {} foo() ok 13734 padding-line-between-statements invalid ; foo() ok 13735 padding-line-between-statements invalid ; foo() ok 13736 padding-line-between-statements invalid foo() foo() ok 13737 padding-line-between-statements invalid foo() foo() ok 13738 padding-line-between-statements invalid foo() foo( x, y ) ok 13739 padding-line-between-statements invalid foo() foo( x, y ) ok 13740 padding-line-between-statements invalid () => { someArray.forEach( x => doSomething(x) ); return theThing; } ok 13741 padding-line-between-statements invalid while(a){break foo()} ok 13742 padding-line-between-statements invalid switch(a){case 0:break foo()} ok 13743 padding-line-between-statements invalid while(a){break foo()} ok 13744 padding-line-between-statements invalid switch(a){case 0:break foo()} ok 13745 padding-line-between-statements invalid switch(a){case 0: foo() default:} ok 13746 padding-line-between-statements invalid switch(a){case 0: foo() default:} ok 13747 padding-line-between-statements invalid class A{} foo() ok 13748 padding-line-between-statements invalid class A{} foo() ok 13749 padding-line-between-statements invalid const a=1 foo() ok 13750 padding-line-between-statements invalid const a=1 foo() ok 13751 padding-line-between-statements invalid while(a){continue foo()} ok 13752 padding-line-between-statements invalid while(a){continue foo()} ok 13753 padding-line-between-statements invalid debugger foo() ok 13754 padding-line-between-statements invalid debugger foo() ok 13755 padding-line-between-statements invalid switch(a){default: foo() case 0:} ok 13756 padding-line-between-statements invalid switch(a){default: foo() case 0:} ok 13757 padding-line-between-statements invalid do;while(a) foo() ok 13758 padding-line-between-statements invalid do;while(a) foo() ok 13759 padding-line-between-statements invalid export default 1 foo() ok 13760 padding-line-between-statements invalid export let a=1 foo() ok 13761 padding-line-between-statements invalid var a = 0;export {a} foo() ok 13762 padding-line-between-statements invalid export default 1 foo() ok 13763 padding-line-between-statements invalid export let a=1 foo() ok 13764 padding-line-between-statements invalid var a = 0;export {a} foo() ok 13765 padding-line-between-statements invalid for(;;); foo() ok 13766 padding-line-between-statements invalid for(a in b); foo() ok 13767 padding-line-between-statements invalid for(a of b); foo() ok 13768 padding-line-between-statements invalid for(;;); foo() ok 13769 padding-line-between-statements invalid for(a in b); foo() ok 13770 padding-line-between-statements invalid for(a of b); foo() ok 13771 padding-line-between-statements invalid function foo(){} foo() ok 13772 padding-line-between-statements invalid function foo(){} foo() ok 13773 padding-line-between-statements invalid async function foo(){} foo() ok 13774 padding-line-between-statements invalid if(a); foo() ok 13775 padding-line-between-statements invalid if(a);else; foo() ok 13776 padding-line-between-statements invalid if(a); foo() ok 13777 padding-line-between-statements invalid if(a);else; foo() ok 13778 padding-line-between-statements invalid (function(){ })() var a = 2; ok 13779 padding-line-between-statements invalid +(function(){ })() var a = 2; ok 13780 padding-line-between-statements invalid (function(){ })() var a = 2; ok 13781 padding-line-between-statements invalid +(function(){ })() var a = 2; ok 13782 padding-line-between-statements invalid import a from 'a' foo() ok 13783 padding-line-between-statements invalid import * as a from 'a' foo() ok 13784 padding-line-between-statements invalid import {a} from 'a' foo() ok 13785 padding-line-between-statements invalid import a from 'a' foo() ok 13786 padding-line-between-statements invalid import * as a from 'a' foo() ok 13787 padding-line-between-statements invalid import {a} from 'a' foo() ok 13788 padding-line-between-statements invalid let a foo() ok 13789 padding-line-between-statements invalid let a foo() ok 13790 padding-line-between-statements invalid function foo(){return foo()} ok 13791 padding-line-between-statements invalid function foo(){return foo()} ok 13792 padding-line-between-statements invalid switch(a){} foo() ok 13793 padding-line-between-statements invalid switch(a){} foo() ok 13794 padding-line-between-statements invalid throw a foo() ok 13795 padding-line-between-statements invalid throw a foo() ok 13796 padding-line-between-statements invalid try{}catch(e){} foo() ok 13797 padding-line-between-statements invalid try{}finally{} foo() ok 13798 padding-line-between-statements invalid try{}catch(e){}finally{} foo() ok 13799 padding-line-between-statements invalid try{}catch(e){} foo() ok 13800 padding-line-between-statements invalid try{}finally{} foo() ok 13801 padding-line-between-statements invalid try{}catch(e){}finally{} foo() ok 13802 padding-line-between-statements invalid var a foo() ok 13803 padding-line-between-statements invalid var a foo() ok 13804 padding-line-between-statements invalid while(a); foo() ok 13805 padding-line-between-statements invalid while(a); foo() ok 13806 padding-line-between-statements invalid with(a); foo() ok 13807 padding-line-between-statements invalid with(a); foo() ok 13808 padding-line-between-statements invalid const a={ b:1, c:2 } const d=3 ok 13809 padding-line-between-statements invalid const a={ b:1, c:2 } const d=3 ok 13810 padding-line-between-statements invalid const a=1 const b={ c:2, d:3 } ok 13811 padding-line-between-statements invalid const a=1 const b={ c:2, d:3 } ok 13812 padding-line-between-statements invalid let a={ b:1, c:2 } let d=3 ok 13813 padding-line-between-statements invalid let a={ b:1, c:2 } let d=3 ok 13814 padding-line-between-statements invalid let a=1 let b={ c:2, d:3 } ok 13815 padding-line-between-statements invalid let a=1 let b={ c:2, d:3 } ok 13816 padding-line-between-statements invalid var a={ b:1, c:2 } var d=3 ok 13817 padding-line-between-statements invalid var a={ b:1, c:2 } var d=3 ok 13818 padding-line-between-statements invalid var a=1 var b={ c:2, d:3 } ok 13819 padding-line-between-statements invalid var a=1 var b={ c:2, d:3 } ok 13820 padding-line-between-statements invalid const a=1 const b=2 ok 13821 padding-line-between-statements invalid const a=1 const b=2 ok 13822 padding-line-between-statements invalid const a=1 const b=2 ok 13823 padding-line-between-statements invalid const a=1 const b=2 ok 13824 padding-line-between-statements invalid let a=1 let b=2 ok 13825 padding-line-between-statements invalid let a=1 let b=2 ok 13826 padding-line-between-statements invalid let a=1 let b=2 ok 13827 padding-line-between-statements invalid let a=1 let b=2 ok 13828 padding-line-between-statements invalid var a=1 var b=2 ok 13829 padding-line-between-statements invalid var a=1 var b=2 ok 13830 padding-line-between-statements invalid var a=1 var b=2 ok 13831 padding-line-between-statements invalid var a=1 var b=2 ok 13832 padding-line-between-statements invalid var greet = 'hello';console.log(greet); ok 13833 padding-line-between-statements invalid var greet = 'hello';var name = 'world';console.log(greet, name); ok 13834 padding-line-between-statements invalid var greet = 'hello', name = 'world';console.log(greet, name); ok 13835 padding-line-between-statements invalid var greet = 'hello'; console.log(greet); ok 13836 padding-line-between-statements invalid var greet = 'hello'; console.log(greet); ok 13837 padding-line-between-statements invalid var greet = 'hello'; // inline comment console.log(greet); ok 13838 padding-line-between-statements invalid var greet = 'hello'; var name = 'world'; console.log(greet, name); ok 13839 padding-line-between-statements invalid var greet = 'hello', name = 'world'; console.log(greet, name); ok 13840 padding-line-between-statements invalid var greet = 'hello', name = 'world'; console.log(greet, name); ok 13841 padding-line-between-statements invalid let greet = 'hello'; console.log(greet); ok 13842 padding-line-between-statements invalid const greet = 'hello'; console.log(greet); ok 13843 padding-line-between-statements invalid function example() { var greet = 'hello'; console.log(greet); } ok 13844 padding-line-between-statements invalid var f = function() { var greet = 'hello'; console.log(greet); }; ok 13845 padding-line-between-statements invalid () => { var greet = 'hello'; console.log(greet); } ok 13846 padding-line-between-statements invalid var greet = 'hello'; console.log(greet); ok 13847 padding-line-between-statements invalid var greet = 'hello'; console.log(greet); ok 13848 padding-line-between-statements invalid var greet = 'hello'; console.log(greet); ok 13849 padding-line-between-statements invalid var greet = 'hello'; console.log(greet); ok 13850 padding-line-between-statements invalid var greet = 'hello'; // inline comment console.log(greet); ok 13851 padding-line-between-statements invalid var greet = 'hello'; var name = 'world'; console.log(greet, name); ok 13852 padding-line-between-statements invalid var greet = 'hello', name = 'world'; console.log(greet, name); ok 13853 padding-line-between-statements invalid var greet = 'hello', name = 'world'; console.log(greet, name); ok 13854 padding-line-between-statements invalid var greet = 'hello', // inline comment name = 'world'; // inline comment console.log(greet, name); ok 13855 padding-line-between-statements invalid let greet = 'hello'; console.log(greet); ok 13856 padding-line-between-statements invalid const greet = 'hello'; console.log(greet); ok 13857 padding-line-between-statements invalid var greet = 'hello'; // next-line comment console.log(greet); ok 13858 padding-line-between-statements invalid var greet = 'hello'; /* block comment block comment */ console.log(greet); ok 13859 padding-line-between-statements invalid var greet = 'hello', name = 'world'; // next-line comment console.log(greet); ok 13860 padding-line-between-statements invalid var greet = 'hello', name = 'world'; /* block comment block comment */ console.log(greet); ok 13861 padding-line-between-statements invalid var greet = 'hello'; // next-line comment // second-line comment console.log(greet); ok 13862 padding-line-between-statements invalid var greet = 'hello'; // next-line comment /* block comment block comment */ console.log(greet); ok 13863 padding-line-between-statements invalid var a = 1 ;(b || c).doSomething() ok 13864 padding-line-between-statements invalid var a = 1 ;(b || c).doSomething() ok 13865 padding-line-between-statements invalid function a() { var b; return; } ok 13866 padding-line-between-statements invalid function a() { var b; return; } ok 13867 padding-line-between-statements invalid function a() { if (b) return b; else if (c) return c; else { e(); return d; } } ok 13868 padding-line-between-statements invalid function a() { if (b) return b; else if (c) return c; else { e(); return d; } } ok 13869 padding-line-between-statements invalid function a() { while (b) { c(); return; } } ok 13870 padding-line-between-statements invalid function a() { do { c(); return; } while (b); } ok 13871 padding-line-between-statements invalid function a() { for (var b; b < c; b++) { c(); return; } } ok 13872 padding-line-between-statements invalid function a() { for (b in c) { d(); return; } } ok 13873 padding-line-between-statements invalid function a() { for (b of c) { d(); return; } } ok 13874 padding-line-between-statements invalid function a() { if (b) { c(); } //comment return b; } ok 13875 padding-line-between-statements invalid function a() { /*comment comment*/ if (b) { c(); return b; } else { //comment return d; } /*multi-line comment*/ return e; } ok 13876 padding-line-between-statements invalid function a() { if (b) { return; } //comment return c; } ok 13877 padding-line-between-statements invalid function a() { if (b) { return; } /*multi-line comment*/ return c; } ok 13878 padding-line-between-statements invalid function a() { if (b) { return; } /*multi-line comment*/ return c; } ok 13879 padding-line-between-statements invalid function a() { if (b) { return; } /*multi-line comment*/ return c; } ok 13880 padding-line-between-statements invalid var a; return; ok 13881 padding-line-between-statements invalid var a; return; ok 13882 padding-line-between-statements invalid function a() { { //comment } return } ok 13883 padding-line-between-statements invalid function a() { { //comment } return } ok 13884 padding-line-between-statements invalid function a() { var c; while (b) { c = d; //comment } return c; } ok 13885 padding-line-between-statements invalid function a() { for (var b; b < c; b++) { if (d) { break; //comment } return; } } ok 13886 padding-line-between-statements invalid function a() { var b; /*multi-line comment*/ return c; } ok 13887 padding-line-between-statements invalid function a() { var b; /*multi-line comment*/ return c; } ok 13888 padding-line-between-statements invalid function a() { var b; /*multi-line comment*/ return c; } ok 13889 padding-line-between-statements invalid function a() { var b; //comment return; } ok 13890 padding-line-between-statements invalid function a() { var b; //comment return; } ok 13891 padding-line-between-statements invalid function a() { var b; /* comment */ return; } ok 13892 padding-line-between-statements invalid function a() { var b; //comment /* comment */ return; } ok 13893 padding-line-between-statements invalid function a() { var b; /* comment */ return; } ok 13894 padding-line-between-statements invalid function a() { var b; /* comment */ return; } ok 13895 padding-line-between-statements invalid function a() { var b; return; //comment } ok 13896 padding-line-between-statements invalid function a() { var b; return; //comment } ok 13897 padding-line-between-statements invalid if(true){} var a = 2; ok 13898 padding-line-between-statements invalid if(true){ if(true) {} var a = 2;} ok 13899 padding-line-between-statements invalid (function(){ })() var a = 2; ok 13900 padding-line-between-statements invalid +(function(){ })() var a = 2; ok 13901 padding-line-between-statements invalid var a = function() {}; var b = 2; ok 13902 padding-line-between-statements invalid var a = 2; module.exports = a; ok 13903 padding-line-between-statements invalid function x() { var a; return; } ok 13904 padding-line-between-statements invalid function x() { var a = true; if (a) { a = !a; }; } ok 13905 padding-line-between-statements invalid function x() { var a = true; for (var i = 0; i < 10; i++) { a = !a; }; } ok 13906 padding-line-between-statements invalid function x() { var y = true; switch ("Oranges") { case "Oranges": y = !y; break; case "Apples": y = !y; break; default: y = !y; } } ok 13907 padding-line-between-statements invalid function x() {try { var a; throw 0; } catch (e) { var b = 0; throw e; } } ok 13908 padding-line-between-statements invalid function x(a) { var b = 0; if (!a) { return false; }; for (var i = 0; i < b; i++) { if (!a[i]) return false; } return true; } ok 13909 padding-line-between-statements invalid if(true){} var a = 2; ok 13910 padding-line-between-statements invalid var a = function() { }; var b = 2; ok 13911 padding-line-between-statements invalid if(true){ if(true) {} var a = 2;} ok 13912 padding-line-between-statements invalid (function(){ })() var a = 2; ok 13913 padding-line-between-statements invalid var a = function() { }; var b = 2; ok 13914 padding-line-between-statements invalid (function(){ })() var a = 2; ok 13915 padding-line-between-statements invalid var a = 2; module.exports = a; ok 13916 padding-line-between-statements invalid function x() { var a; return; } ok 13917 padding-line-between-statements invalid function x() { var a = true; for (var i = 0; i < 10; i++) { a = !a; }; } ok 13918 padding-line-between-statements invalid function x() { var y = true; switch ("Oranges") { case "Oranges": y = !y; break; case "Apples": y = !y; break; default: y = !y; } } ok 13919 padding-line-between-statements invalid function x() { var a = true; while (!a) { a = !a; }; } ok 13920 padding-line-between-statements invalid function x() {try { var a; throw 0; } catch (e) { var b = 0; throw e; } } ok 13921 padding-line-between-statements invalid function x(a) { var b = 0; if (!a) { return false; }; for (var i = 0; i < b; i++) { if (!a[i]) return false; } return true; } ok 13922 prefer-arrow-callback valid foo(a => a); ok 13923 prefer-arrow-callback valid foo(function*() {}); ok 13924 prefer-arrow-callback valid foo(function() { this; }); ok 13925 prefer-arrow-callback valid foo(function bar() {}); ok 13926 prefer-arrow-callback valid foo(function() { (() => this); }); ok 13927 prefer-arrow-callback valid foo(function() { this; }.bind(obj)); ok 13928 prefer-arrow-callback valid foo(function() { this; }.call(this)); ok 13929 prefer-arrow-callback valid foo(a => { (function() {}); }); ok 13930 prefer-arrow-callback valid var foo = function foo() {}; ok 13931 prefer-arrow-callback valid (function foo() {})(); ok 13932 prefer-arrow-callback valid foo(function bar() { bar; }); ok 13933 prefer-arrow-callback valid foo(function bar() { arguments; }); ok 13934 prefer-arrow-callback valid foo(function bar() { arguments; }.bind(this)); ok 13935 prefer-arrow-callback valid foo(function bar() { new.target; }); ok 13936 prefer-arrow-callback valid foo(function bar() { new.target; }.bind(this)); ok 13937 prefer-arrow-callback valid foo(function bar() { this; }.bind(this, somethingElse)); ok 13938 prefer-arrow-callback invalid foo(function bar() {}); ok 13939 prefer-arrow-callback invalid foo(function() {}); ok 13940 prefer-arrow-callback invalid foo(function bar() {}); ok 13941 prefer-arrow-callback invalid foo(function() {}); ok 13942 prefer-arrow-callback invalid foo(nativeCb || function() {}); ok 13943 prefer-arrow-callback invalid foo(bar ? function() {} : function() {}); ok 13944 prefer-arrow-callback invalid foo(function() { (function() { this; }); }); ok 13945 prefer-arrow-callback invalid foo(function() { this; }.bind(this)); ok 13946 prefer-arrow-callback invalid foo(bar || function() { this; }.bind(this)); ok 13947 prefer-arrow-callback invalid foo(function() { (() => this); }.bind(this)); ok 13948 prefer-arrow-callback invalid foo(function bar(a) { a; }); ok 13949 prefer-arrow-callback invalid foo(function(a) { a; }); ok 13950 prefer-arrow-callback invalid foo(function(arguments) { arguments; }); ok 13951 prefer-arrow-callback invalid foo(function() { this; }); ok 13952 prefer-arrow-callback invalid foo(function() { (() => this); }); ok 13953 prefer-arrow-callback invalid qux(function(foo, bar, baz) { return foo * 2; }) ok 13954 prefer-arrow-callback invalid qux(function(foo, bar, baz) { return foo * bar; }.bind(this)) ok 13955 prefer-arrow-callback invalid qux(function(foo, bar, baz) { return foo * this.qux; }.bind(this)) ok 13956 prefer-arrow-callback invalid foo(function() {}.bind(this, somethingElse)) ok 13957 prefer-arrow-callback invalid qux(function(foo = 1, [bar = 2] = [], {qux: baz = 3} = {foo: 'bar'}) { return foo + bar; }); ok 13958 prefer-arrow-callback invalid qux(function(baz, baz) { }) ok 13959 prefer-arrow-callback invalid qux(function( /* no params */ ) { }) ok 13960 prefer-arrow-callback invalid qux(function( /* a */ foo /* b */ , /* c */ bar /* d */ , /* e */ baz /* f */ ) { return foo; }) ok 13961 prefer-arrow-callback invalid qux(async function (foo = 1, bar = 2, baz = 3) { return baz; }) ok 13962 prefer-arrow-callback invalid qux(async function (foo = 1, bar = 2, baz = 3) { return this; }.bind(this)) ok 13963 prefer-const valid var x = 0; ok 13964 prefer-const valid let x; ok 13965 prefer-const valid let x; { x = 0; } foo(x); ok 13966 prefer-const valid let x = 0; x = 1; ok 13967 prefer-const valid const x = 0; ok 13968 prefer-const valid for (let i = 0, end = 10; i < end; ++i) {} ok 13969 prefer-const valid for (let i in [1,2,3]) { i = 0; } ok 13970 prefer-const valid for (let x of [1,2,3]) { x = 0; } ok 13971 prefer-const valid (function() { var x = 0; })(); ok 13972 prefer-const valid (function() { let x; })(); ok 13973 prefer-const valid (function() { let x; { x = 0; } foo(x); })(); ok 13974 prefer-const valid (function() { let x = 0; x = 1; })(); ok 13975 prefer-const valid (function() { const x = 0; })(); ok 13976 prefer-const valid (function() { for (let i = 0, end = 10; i < end; ++i) {} })(); ok 13977 prefer-const valid (function() { for (let i in [1,2,3]) { i = 0; } })(); ok 13978 prefer-const valid (function() { for (let x of [1,2,3]) { x = 0; } })(); ok 13979 prefer-const valid (function(x = 0) { })(); ok 13980 prefer-const valid let a; while (a = foo()); ok 13981 prefer-const valid let a; do {} while (a = foo()); ok 13982 prefer-const valid let a; for (; a = foo(); ); ok 13983 prefer-const valid let a; for (;; ++a); ok 13984 prefer-const valid let a; for (const {b = ++a} in foo()); ok 13985 prefer-const valid let a; for (const {b = ++a} of foo()); ok 13986 prefer-const valid let a; for (const x of [1,2,3]) { if (a) {} a = foo(); } ok 13987 prefer-const valid let a; for (const x of [1,2,3]) { a = a || foo(); bar(a); } ok 13988 prefer-const valid let a; for (const x of [1,2,3]) { foo(++a); } ok 13989 prefer-const valid let a; function foo() { if (a) {} a = bar(); } ok 13990 prefer-const valid let a; function foo() { a = a || bar(); baz(a); } ok 13991 prefer-const valid let a; function foo() { bar(++a); } ok 13992 prefer-const valid let id; function foo() { if (typeof id !== 'undefined') { return; } id = setInterval(() => {}, 250); } foo(); ok 13993 prefer-const valid /*exported a*/ let a; function init() { a = foo(); } ok 13994 prefer-const valid /*exported a*/ let a = 1 ok 13995 prefer-const valid let a; if (true) a = 0; foo(a); ok 13996 prefer-const valid (function (a) { let b; ({ a, b } = obj); })(); ok 13997 prefer-const valid (function (a) { let b; ([ a, b ] = obj); })(); ok 13998 prefer-const valid var a; { var b; ({ a, b } = obj); } ok 13999 prefer-const valid let a; { let b; ({ a, b } = obj); } ok 14000 prefer-const valid var a; { var b; ([ a, b ] = obj); } ok 14001 prefer-const valid let a; { let b; ([ a, b ] = obj); } ok 14002 prefer-const valid let x; { x = 0; foo(x); } ok 14003 prefer-const valid (function() { let x; { x = 0; foo(x); } })(); ok 14004 prefer-const valid let x; for (const a of [1,2,3]) { x = foo(); bar(x); } ok 14005 prefer-const valid (function() { let x; for (const a of [1,2,3]) { x = foo(); bar(x); } })(); ok 14006 prefer-const valid let x; for (x of array) { x; } ok 14007 prefer-const valid let {a, b} = obj; b = 0; ok 14008 prefer-const valid let a, b; ({a, b} = obj); b++; ok 14009 prefer-const valid let { name, ...otherStuff } = obj; otherStuff = {}; ok 14010 prefer-const valid let { name, ...otherStuff } = obj; otherStuff = {}; ok 14011 prefer-const valid let predicate; [typeNode.returnType, predicate] = foo(); ok 14012 prefer-const valid let predicate; [typeNode.returnType, ...predicate] = foo(); ok 14013 prefer-const valid let predicate; [typeNode.returnType,, predicate] = foo(); ok 14014 prefer-const valid let predicate; [typeNode.returnType=5, predicate] = foo(); ok 14015 prefer-const valid let predicate; [[typeNode.returnType=5], predicate] = foo(); ok 14016 prefer-const valid let predicate; [[typeNode.returnType, predicate]] = foo(); ok 14017 prefer-const valid let predicate; [typeNode.returnType, [predicate]] = foo(); ok 14018 prefer-const valid let predicate; [, [typeNode.returnType, predicate]] = foo(); ok 14019 prefer-const valid let predicate; [, {foo:typeNode.returnType, predicate}] = foo(); ok 14020 prefer-const valid let predicate; [, {foo:typeNode.returnType, ...predicate}] = foo(); ok 14021 prefer-const valid let a; const b = {}; ({ a, c: b.c } = func()); ok 14022 prefer-const valid let x; function foo() { bar(x); } x = 0; ok 14023 prefer-const valid const x = [1,2]; let y; [,y] = x; y = 0; ok 14024 prefer-const valid const x = [1,2,3]; let y, z; [y,,z] = x; y = 0; z = 0; ok 14025 prefer-const invalid let x = 1; foo(x); ok 14026 prefer-const invalid for (let i in [1,2,3]) { foo(i); } ok 14027 prefer-const invalid for (let x of [1,2,3]) { foo(x); } ok 14028 prefer-const invalid let [x = -1, y] = [1,2]; y = 0; ok 14029 prefer-const invalid let {a: x = -1, b: y} = {a:1,b:2}; y = 0; ok 14030 prefer-const invalid (function() { let x = 1; foo(x); })(); ok 14031 prefer-const invalid (function() { for (let i in [1,2,3]) { foo(i); } })(); ok 14032 prefer-const invalid (function() { for (let x of [1,2,3]) { foo(x); } })(); ok 14033 prefer-const invalid (function() { let [x = -1, y] = [1,2]; y = 0; })(); ok 14034 prefer-const invalid let f = (function() { let g = x; })(); f = 1; ok 14035 prefer-const invalid (function() { let {a: x = -1, b: y} = {a:1,b:2}; y = 0; })(); ok 14036 prefer-const invalid let x = 0; { let x = 1; foo(x); } x = 0; ok 14037 prefer-const invalid for (let i = 0; i < 10; ++i) { let x = 1; foo(x); } ok 14038 prefer-const invalid for (let i in [1,2,3]) { let x = 1; foo(x); } ok 14039 prefer-const invalid var foo = function() { for (const b of c) { let a; a = 1; } }; ok 14040 prefer-const invalid var foo = function() { for (const b of c) { let a; ({a} = 1); } }; ok 14041 prefer-const invalid let x; x = 0; ok 14042 prefer-const invalid switch (a) { case 0: let x; x = 0; } ok 14043 prefer-const invalid (function() { let x; x = 1; })(); ok 14044 prefer-const invalid let {a = 0, b} = obj; b = 0; foo(a, b); ok 14045 prefer-const invalid let {a: {b, c}} = {a: {b: 1, c: 2}}; b = 3; ok 14046 prefer-const invalid let {a: {b, c}} = {a: {b: 1, c: 2}} ok 14047 prefer-const invalid let a, b; ({a = 0, b} = obj); b = 0; foo(a, b); ok 14048 prefer-const invalid let {a = 0, b} = obj; foo(a, b); ok 14049 prefer-const invalid let [a] = [1] ok 14050 prefer-const invalid let {a} = obj ok 14051 prefer-const invalid let a, b; ({a = 0, b} = obj); foo(a, b); ok 14052 prefer-const invalid let {a = 0, b} = obj, c = a; b = a; ok 14053 prefer-const invalid let {a = 0, b} = obj, c = a; b = a; ok 14054 prefer-const invalid let { name, ...otherStuff } = obj; otherStuff = {}; ok 14055 prefer-const invalid let { name, ...otherStuff } = obj; otherStuff = {}; ok 14056 prefer-const invalid let x; function foo() { bar(x); } x = 0; ok 14057 prefer-const invalid /*eslint use-x:error*/ let x = 1 ok 14058 prefer-const invalid /*eslint use-x:error*/ { let x = 1 } ok 14059 prefer-const invalid let { foo, bar } = baz; ok 14060 prefer-const invalid const x = [1,2]; let [,y] = x; ok 14061 prefer-const invalid const x = [1,2,3]; let [y,,z] = x; ok 14062 prefer-const invalid let predicate; [, {foo:returnType, predicate}] = foo(); ok 14063 prefer-const invalid let predicate; [, {foo:returnType, predicate}, ...bar ] = foo(); ok 14064 prefer-const invalid let predicate; [, {foo:returnType, ...predicate} ] = foo(); ok 14065 prefer-const invalid let x = 'x', y = 'y'; ok 14066 prefer-const invalid let x = 'x', y = 'y'; x = 1 ok 14067 prefer-const invalid let x = 1, y = 'y'; let z = 1; ok 14068 prefer-const invalid let { a, b, c} = obj; let { x, y, z} = anotherObj; x = 2; ok 14069 prefer-const invalid let x = 'x', y = 'y'; function someFunc() { let a = 1, b = 2; foo(a, b) } ok 14070 prefer-const invalid let someFunc = () => { let a = 1, b = 2; foo(a, b) } ok 14071 prefer-destructuring valid var [foo] = array; ok 14072 prefer-destructuring valid var { foo } = object; ok 14073 prefer-destructuring valid var foo; ok 14074 prefer-destructuring valid var foo = object.bar; ok 14075 prefer-destructuring valid var foo = object.bar; ok 14076 prefer-destructuring valid var foo = object.bar; ok 14077 prefer-destructuring valid var foo = object.bar; ok 14078 prefer-destructuring valid var foo = object['bar']; ok 14079 prefer-destructuring valid var foo = object[bar]; ok 14080 prefer-destructuring valid var { bar: foo } = object; ok 14081 prefer-destructuring valid var { bar: foo } = object; ok 14082 prefer-destructuring valid var { [bar]: foo } = object; ok 14083 prefer-destructuring valid var { [bar]: foo } = object; ok 14084 prefer-destructuring valid var foo = array[0]; ok 14085 prefer-destructuring valid var foo = array[0]; ok 14086 prefer-destructuring valid var foo = object.foo; ok 14087 prefer-destructuring valid var foo = object['foo']; ok 14088 prefer-destructuring valid ({ foo } = object); ok 14089 prefer-destructuring valid var foo = array[0]; ok 14090 prefer-destructuring valid var foo = array[0]; ok 14091 prefer-destructuring valid [foo] = array; ok 14092 prefer-destructuring valid foo += array[0] ok 14093 prefer-destructuring valid foo += bar.foo ok 14094 prefer-destructuring valid foo = object.foo; ok 14095 prefer-destructuring valid foo = object.foo; ok 14096 prefer-destructuring valid foo = array[0]; ok 14097 prefer-destructuring valid foo = array[0]; ok 14098 prefer-destructuring valid foo = array[0]; ok 14099 prefer-destructuring valid var foo = array[0]; ok 14100 prefer-destructuring valid foo = object.foo; ok 14101 prefer-destructuring valid var foo = object.foo; ok 14102 prefer-destructuring valid class Foo extends Bar { static foo() {var foo = super.foo} } ok 14103 prefer-destructuring valid foo = bar[foo]; ok 14104 prefer-destructuring valid var foo = bar[foo]; ok 14105 prefer-destructuring valid var {foo: {bar}} = object; ok 14106 prefer-destructuring valid var {bar} = object.foo; ok 14107 prefer-destructuring invalid var foo = array[0]; ok 14108 prefer-destructuring invalid foo = array[0]; ok 14109 prefer-destructuring invalid var foo = object.foo; ok 14110 prefer-destructuring invalid var foo = object.bar.foo; ok 14111 prefer-destructuring invalid var foobar = object.bar; ok 14112 prefer-destructuring invalid var foobar = object.bar; ok 14113 prefer-destructuring invalid var foo = object[bar]; ok 14114 prefer-destructuring invalid var foo = object[bar]; ok 14115 prefer-destructuring invalid var foo = object['foo']; ok 14116 prefer-destructuring invalid foo = object.foo; ok 14117 prefer-destructuring invalid foo = object['foo']; ok 14118 prefer-destructuring invalid var foo = array[0]; ok 14119 prefer-destructuring invalid foo = array[0]; ok 14120 prefer-destructuring invalid var foo = array[0]; ok 14121 prefer-destructuring invalid var foo = array[0]; ok 14122 prefer-destructuring invalid foo = array[0]; ok 14123 prefer-destructuring invalid foo = object.foo; ok 14124 prefer-destructuring invalid class Foo extends Bar { static foo() {var bar = super.foo.bar} } ok 14125 prefer-named-capture-group valid /normal_regex/ ok 14126 prefer-named-capture-group valid /(?:[0-9]{4})/ ok 14127 prefer-named-capture-group valid /(?<year>[0-9]{4})/ ok 14128 prefer-named-capture-group valid /\u{1F680}/u ok 14129 prefer-named-capture-group valid new RegExp() ok 14130 prefer-named-capture-group valid new RegExp(foo) ok 14131 prefer-named-capture-group valid new RegExp('') ok 14132 prefer-named-capture-group valid new RegExp('(?<year>[0-9]{4})') ok 14133 prefer-named-capture-group valid RegExp() ok 14134 prefer-named-capture-group valid RegExp(foo) ok 14135 prefer-named-capture-group valid RegExp('') ok 14136 prefer-named-capture-group valid RegExp('(?<year>[0-9]{4})') ok 14137 prefer-named-capture-group valid RegExp('(') ok 14138 prefer-named-capture-group valid RegExp('\\u{1F680}', 'u') ok 14139 prefer-named-capture-group invalid /([0-9]{4})/ ok 14140 prefer-named-capture-group invalid new RegExp('([0-9]{4})') ok 14141 prefer-named-capture-group invalid RegExp('([0-9]{4})') ok 14142 prefer-named-capture-group invalid /([0-9]{4})-(\w{5})/ ok 14143 prefer-numeric-literals valid parseInt(1); ok 14144 prefer-numeric-literals valid parseInt(1, 3); ok 14145 prefer-numeric-literals valid Number.parseInt(1); ok 14146 prefer-numeric-literals valid Number.parseInt(1, 3); ok 14147 prefer-numeric-literals valid 0b111110111 === 503; ok 14148 prefer-numeric-literals valid 0o767 === 503; ok 14149 prefer-numeric-literals valid 0x1F7 === 503; ok 14150 prefer-numeric-literals valid a[parseInt](1,2); ok 14151 prefer-numeric-literals valid parseInt(foo); ok 14152 prefer-numeric-literals valid parseInt(foo, 2); ok 14153 prefer-numeric-literals valid Number.parseInt(foo); ok 14154 prefer-numeric-literals valid Number.parseInt(foo, 2); ok 14155 prefer-numeric-literals invalid parseInt("111110111", 2) === 503; ok 14156 prefer-numeric-literals invalid parseInt("767", 8) === 503; ok 14157 prefer-numeric-literals invalid parseInt("1F7", 16) === 255; ok 14158 prefer-numeric-literals invalid Number.parseInt("111110111", 2) === 503; ok 14159 prefer-numeric-literals invalid Number.parseInt("767", 8) === 503; ok 14160 prefer-numeric-literals invalid Number.parseInt("1F7", 16) === 255; ok 14161 prefer-numeric-literals invalid parseInt('7999', 8); ok 14162 prefer-numeric-literals invalid parseInt('1234', 2); ok 14163 prefer-numeric-literals invalid parseInt('1234.5', 8); ok 14164 prefer-numeric-literals invalid parseInt('1️⃣3️⃣3️⃣7️⃣', 16); ok 14165 prefer-numeric-literals invalid Number.parseInt('7999', 8); ok 14166 prefer-numeric-literals invalid Number.parseInt('1234', 2); ok 14167 prefer-numeric-literals invalid Number.parseInt('1234.5', 8); ok 14168 prefer-numeric-literals invalid Number.parseInt('1️⃣3️⃣3️⃣7️⃣', 16); ok 14169 prefer-object-spread valid Object.assign() ok 14170 prefer-object-spread valid let a = Object.assign(a, b) ok 14171 prefer-object-spread valid Object.assign(a, b) ok 14172 prefer-object-spread valid let a = Object.assign(b, { c: 1 }) ok 14173 prefer-object-spread valid const bar = { ...foo } ok 14174 prefer-object-spread valid Object.assign(...foo) ok 14175 prefer-object-spread valid Object.assign(foo, { bar: baz }) ok 14176 prefer-object-spread valid Object.assign({}, ...objects) ok 14177 prefer-object-spread valid foo({ foo: 'bar' }) ok 14178 prefer-object-spread valid const Object = {}; Object.assign({}, foo); ok 14179 prefer-object-spread valid Object = {}; Object.assign({}, foo); ok 14180 prefer-object-spread valid const Object = {}; Object.assign({ foo: 'bar' }); ok 14181 prefer-object-spread valid Object = {}; Object.assign({ foo: 'bar' }); ok 14182 prefer-object-spread valid const Object = require('foo'); Object.assign({ foo: 'bar' }); ok 14183 prefer-object-spread valid import Object from 'foo'; Object.assign({ foo: 'bar' }); ok 14184 prefer-object-spread valid import { Something as Object } from 'foo'; Object.assign({ foo: 'bar' }); ok 14185 prefer-object-spread valid import { Object, Array } from 'globals'; Object.assign({ foo: 'bar' }); ok 14186 prefer-object-spread invalid Object.assign({}, foo) ok 14187 prefer-object-spread invalid Object.assign({}, { foo: 'bar' }) ok 14188 prefer-object-spread invalid Object.assign({}, baz, { foo: 'bar' }) ok 14189 prefer-object-spread invalid Object.assign({}, { foo: 'bar', baz: 'foo' }) ok 14190 prefer-object-spread invalid Object.assign({ foo: 'bar' }, baz) ok 14191 prefer-object-spread invalid Object.assign({ foo: 'bar' }, cats, dogs, trees, birds) ok 14192 prefer-object-spread invalid Object.assign({ foo: 'bar' }, Object.assign({ bar: 'foo' }, baz)) ok 14193 prefer-object-spread invalid Object.assign({ foo: 'bar' }, Object.assign({ bar: 'foo' }, Object.assign({}, { superNested: 'butwhy' }))) ok 14194 prefer-object-spread invalid Object.assign({foo: 'bar', ...bar}, baz) ok 14195 prefer-object-spread invalid Object.assign({}, { foo, bar, baz }) ok 14196 prefer-object-spread invalid Object.assign({}, { [bar]: 'foo' }) ok 14197 prefer-object-spread invalid Object.assign({ ...bar }, { ...baz }) ok 14198 prefer-object-spread invalid Object.assign({ ...bar }, { // this is a bar foo: 'bar', baz: "cats" }) ok 14199 prefer-object-spread invalid Object.assign({ boo: "lol", // I'm a comment dog: "cat" }, { // this is a bar foo: 'bar', baz: "cats" }) ok 14200 prefer-object-spread invalid const test = Object.assign({ ...bar }, { <!-- html comment foo: 'bar', baz: "cats" --> weird }) ok 14201 prefer-object-spread invalid const test = Object.assign({ ...bar }, { foo: 'bar', // inline comment baz: "cats" }) ok 14202 prefer-object-spread invalid const test = Object.assign({ ...bar }, { /** * foo */ foo: 'bar', baz: "cats" }) ok 14203 prefer-object-spread invalid Object.assign({}) ok 14204 prefer-object-spread invalid Object.assign({ foo: bar }) ok 14205 prefer-object-spread invalid const foo = 'bar'; Object.assign({ foo: bar }) ok 14206 prefer-object-spread invalid foo = 'bar'; Object.assign({ foo: bar }) ok 14207 prefer-object-spread invalid let a = Object.assign({}) ok 14208 prefer-object-spread invalid let a = Object.assign({}, a) ok 14209 prefer-object-spread invalid let a = Object.assign({ a: 1 }, b) ok 14210 prefer-object-spread invalid Object.assign( {}, a, b, ) ok 14211 prefer-object-spread invalid Object.assign({}, a ? b : {}, b => c, a = 2) ok 14212 prefer-object-spread invalid const someVar = 'foo'; Object.assign({}, a ? b : {}, b => c, a = 2) ok 14213 prefer-object-spread invalid someVar = 'foo'; Object.assign({}, a ? b : {}, b => c, a = 2) ok 14214 prefer-object-spread invalid [1, 2, Object.assign({}, a)] ok 14215 prefer-object-spread invalid const foo = Object.assign({}, a) ok 14216 prefer-object-spread invalid function foo() { return Object.assign({}, a) } ok 14217 prefer-object-spread invalid foo(Object.assign({}, a)); ok 14218 prefer-object-spread invalid const x = { foo: 'bar', baz: Object.assign({}, a) } ok 14219 prefer-object-spread invalid import Foo from 'foo'; Object.assign({ foo: Foo }); ok 14220 prefer-object-spread invalid import Foo from 'foo'; Object.assign({}, Foo); ok 14221 prefer-object-spread invalid const Foo = require('foo'); Object.assign({ foo: Foo }); ok 14222 prefer-object-spread invalid import { Something as somethingelse } from 'foo'; Object.assign({}, somethingelse); ok 14223 prefer-object-spread invalid import { foo } from 'foo'; Object.assign({ foo: Foo }); ok 14224 prefer-object-spread invalid const Foo = require('foo'); Object.assign({}, Foo); ok 14225 prefer-object-spread invalid const actions = Object.assign( { onChangeInput: this.handleChangeInput, }, this.props.actions ); ok 14226 prefer-object-spread invalid const actions = Object.assign( { onChangeInput: this.handleChangeInput, // }, this.props.actions ); ok 14227 prefer-object-spread invalid const actions = Object.assign( { onChangeInput: this.handleChangeInput // }, this.props.actions ); ok 14228 prefer-object-spread invalid const actions = Object.assign( ( { onChangeInput: this.handleChangeInput } ), ( this.props.actions ) ); ok 14229 prefer-object-spread invalid eventData = Object.assign({}, eventData, { outsideLocality: `${originLocality} - ${destinationLocality}` }) ok 14230 prefer-object-spread invalid Object.assign({ }); ok 14231 prefer-object-spread invalid Object.assign({ }); ok 14232 prefer-promise-reject-errors valid Promise.resolve(5) ok 14233 prefer-promise-reject-errors valid Foo.reject(5) ok 14234 prefer-promise-reject-errors valid Promise.reject(foo) ok 14235 prefer-promise-reject-errors valid Promise.reject(foo.bar) ok 14236 prefer-promise-reject-errors valid Promise.reject(foo.bar()) ok 14237 prefer-promise-reject-errors valid Promise.reject(new Error()) ok 14238 prefer-promise-reject-errors valid Promise.reject(new TypeError) ok 14239 prefer-promise-reject-errors valid Promise.reject(new Error('foo')) ok 14240 prefer-promise-reject-errors valid new Foo((resolve, reject) => reject(5)) ok 14241 prefer-promise-reject-errors valid new Promise(function(resolve, reject) { return function(reject) { reject(5) } }) ok 14242 prefer-promise-reject-errors valid new Promise(function(resolve, reject) { if (foo) { const reject = somethingElse; reject(5) } }) ok 14243 prefer-promise-reject-errors valid new Promise(function(resolve, {apply}) { apply(5) }) ok 14244 prefer-promise-reject-errors valid new Promise(function(resolve, reject) { resolve(5, reject) }) ok 14245 prefer-promise-reject-errors valid async function foo() { Promise.reject(await foo); } ok 14246 prefer-promise-reject-errors valid Promise.reject() ok 14247 prefer-promise-reject-errors valid new Promise(function(resolve, reject) { reject() }) ok 14248 prefer-promise-reject-errors invalid Promise.reject(5) ok 14249 prefer-promise-reject-errors invalid Promise.reject('foo') ok 14250 prefer-promise-reject-errors invalid Promise.reject(`foo`) ok 14251 prefer-promise-reject-errors invalid Promise.reject(!foo) ok 14252 prefer-promise-reject-errors invalid Promise.reject(void foo) ok 14253 prefer-promise-reject-errors invalid Promise.reject() ok 14254 prefer-promise-reject-errors invalid Promise.reject(undefined) ok 14255 prefer-promise-reject-errors invalid Promise.reject({ foo: 1 }) ok 14256 prefer-promise-reject-errors invalid Promise.reject([1, 2, 3]) ok 14257 prefer-promise-reject-errors invalid Promise.reject() ok 14258 prefer-promise-reject-errors invalid new Promise(function(resolve, reject) { reject() }) ok 14259 prefer-promise-reject-errors invalid Promise.reject(undefined) ok 14260 prefer-promise-reject-errors invalid Promise.reject('foo', somethingElse) ok 14261 prefer-promise-reject-errors invalid new Promise(function(resolve, reject) { reject(5) }) ok 14262 prefer-promise-reject-errors invalid new Promise((resolve, reject) => { reject(5) }) ok 14263 prefer-promise-reject-errors invalid new Promise((resolve, reject) => reject(5)) ok 14264 prefer-promise-reject-errors invalid new Promise((resolve, reject) => reject()) ok 14265 prefer-promise-reject-errors invalid new Promise(function(yes, no) { no(5) }) ok 14266 prefer-promise-reject-errors invalid new Promise((resolve, reject) => { fs.readFile('foo.txt', (err, file) => { if (err) reject('File not found') else resolve(file) }) }) ok 14267 prefer-promise-reject-errors invalid new Promise(({foo, bar, baz}, reject) => reject(5)) ok 14268 prefer-promise-reject-errors invalid new Promise(function(reject, reject) { reject(5) }) ok 14269 prefer-promise-reject-errors invalid new Promise(function(foo, arguments) { arguments(5) }) ok 14270 prefer-promise-reject-errors invalid new Promise((foo, arguments) => arguments(5)) ok 14271 prefer-promise-reject-errors invalid new Promise(function({}, reject) { reject(5) }) ok 14272 prefer-promise-reject-errors invalid new Promise(({}, reject) => reject(5)) ok 14273 prefer-promise-reject-errors invalid new Promise((resolve, reject, somethingElse = reject(5)) => {}) ok 14274 prefer-reflect valid Reflect.apply(function(){}, null, 1, 2); ok 14275 prefer-reflect valid Reflect.apply(function(){}, null, 1, 2); ok 14276 prefer-reflect valid (function(){}).apply(null, [1, 2]); ok 14277 prefer-reflect valid (function(){}).call(null, 1, 2); ok 14278 prefer-reflect valid Reflect.defineProperty({}, 'foo', {value: 1}) ok 14279 prefer-reflect valid Reflect.defineProperty({}, 'foo', {value: 1}) ok 14280 prefer-reflect valid Object.defineProperty({}, 'foo', {value: 1}) ok 14281 prefer-reflect valid Reflect.getOwnPropertyDescriptor({}, 'foo'); ok 14282 prefer-reflect valid Reflect.getOwnPropertyDescriptor({}, 'foo'); ok 14283 prefer-reflect valid Object.getOwnPropertyDescriptor({}, 'foo'); ok 14284 prefer-reflect valid Reflect.getPrototypeOf({}); ok 14285 prefer-reflect valid Reflect.getPrototypeOf({}); ok 14286 prefer-reflect valid Object.getPrototypeOf({}); ok 14287 prefer-reflect valid Reflect.setPrototypeOf({}, Object.prototype); ok 14288 prefer-reflect valid Reflect.setPrototypeOf({}, Object.prototype); ok 14289 prefer-reflect valid Object.setPrototypeOf({}, Object.prototype); ok 14290 prefer-reflect valid Reflect.isExtensible({}); ok 14291 prefer-reflect valid Reflect.isExtensible({}); ok 14292 prefer-reflect valid Object.isExtensible({}); ok 14293 prefer-reflect valid Reflect.getOwnPropertyNames({}); ok 14294 prefer-reflect valid Reflect.getOwnPropertyNames({}); ok 14295 prefer-reflect valid Object.getOwnPropertyNames({}); ok 14296 prefer-reflect valid Reflect.preventExtensions({}); ok 14297 prefer-reflect valid Reflect.preventExtensions({}); ok 14298 prefer-reflect valid Object.preventExtensions({}); ok 14299 prefer-reflect valid Reflect.deleteProperty({}, 'foo'); ok 14300 prefer-reflect valid Reflect.deleteProperty({}, 'foo'); ok 14301 prefer-reflect valid delete foo; ok 14302 prefer-reflect valid delete ({}).foo ok 14303 prefer-reflect invalid (function(){}).apply(null, [1, 2]) ok 14304 prefer-reflect invalid (function(){}).apply(null, [1, 2]) ok 14305 prefer-reflect invalid (function(){}).call(null, 1, 2) ok 14306 prefer-reflect invalid (function(){}).call(null, 1, 2) ok 14307 prefer-reflect invalid Object.defineProperty({}, 'foo', { value: 1 }) ok 14308 prefer-reflect invalid Object.defineProperty({}, 'foo', { value: 1 }) ok 14309 prefer-reflect invalid Object.getOwnPropertyDescriptor({}, 'foo') ok 14310 prefer-reflect invalid Object.getOwnPropertyDescriptor({}, 'foo') ok 14311 prefer-reflect invalid Object.getPrototypeOf({}) ok 14312 prefer-reflect invalid Object.getPrototypeOf({}) ok 14313 prefer-reflect invalid Object.setPrototypeOf({}, Object.prototype) ok 14314 prefer-reflect invalid Object.setPrototypeOf({}, Object.prototype) ok 14315 prefer-reflect invalid Object.isExtensible({}) ok 14316 prefer-reflect invalid Object.isExtensible({}) ok 14317 prefer-reflect invalid Object.getOwnPropertyNames({}) ok 14318 prefer-reflect invalid Object.getOwnPropertyNames({}) ok 14319 prefer-reflect invalid Object.preventExtensions({}) ok 14320 prefer-reflect invalid Object.preventExtensions({}) ok 14321 prefer-reflect invalid delete ({}).foo ok 14322 prefer-reflect invalid delete ({}).foo ok 14323 prefer-rest-params valid arguments; ok 14324 prefer-rest-params valid function foo(arguments) { arguments; } ok 14325 prefer-rest-params valid function foo() { var arguments; arguments; } ok 14326 prefer-rest-params valid var foo = () => arguments; ok 14327 prefer-rest-params valid function foo(...args) { args; } ok 14328 prefer-rest-params valid function foo() { arguments.length; } ok 14329 prefer-rest-params valid function foo() { arguments.callee; } ok 14330 prefer-rest-params invalid function foo() { arguments; } ok 14331 prefer-rest-params invalid function foo() { arguments[0]; } ok 14332 prefer-rest-params invalid function foo() { arguments[1]; } ok 14333 prefer-rest-params invalid function foo() { arguments[Symbol.iterator]; } ok 14334 prefer-spread valid foo.apply(obj, args); ok 14335 prefer-spread valid obj.foo.apply(null, args); ok 14336 prefer-spread valid obj.foo.apply(otherObj, args); ok 14337 prefer-spread valid a.b(x, y).c.foo.apply(a.b(x, z).c, args); ok 14338 prefer-spread valid a.b.foo.apply(a.b.c, args); ok 14339 prefer-spread valid foo.apply(undefined, [1, 2]); ok 14340 prefer-spread valid foo.apply(null, [1, 2]); ok 14341 prefer-spread valid obj.foo.apply(obj, [1, 2]); ok 14342 prefer-spread valid var apply; foo[apply](null, args); ok 14343 prefer-spread valid foo.apply(); ok 14344 prefer-spread valid obj.foo.apply(); ok 14345 prefer-spread valid obj.foo.apply(obj, ...args) ok 14346 prefer-spread invalid foo.apply(undefined, args); ok 14347 prefer-spread invalid foo.apply(void 0, args); ok 14348 prefer-spread invalid foo.apply(null, args); ok 14349 prefer-spread invalid obj.foo.apply(obj, args); ok 14350 prefer-spread invalid a.b.c.foo.apply(a.b.c, args); ok 14351 prefer-spread invalid a.b(x, y).c.foo.apply(a.b(x, y).c, args); ok 14352 prefer-spread invalid [].concat.apply([ ], args); ok 14353 prefer-spread invalid [].concat.apply([ /*empty*/ ], args); ok 14354 prefer-template valid 'use strict'; ok 14355 prefer-template valid var foo = 'foo' + '\0'; ok 14356 prefer-template valid var foo = 'bar'; ok 14357 prefer-template valid var foo = 'bar' + 'baz'; ok 14358 prefer-template valid var foo = foo + +'100'; ok 14359 prefer-template valid var foo = `bar`; ok 14360 prefer-template valid var foo = `hello, ${name}!`; ok 14361 prefer-template valid var foo = `foo` + `bar` + "hoge"; ok 14362 prefer-template valid var foo = `foo` + `bar` + "hoge"; ok 14363 prefer-template invalid var foo = 'hello, ' + name + '!'; ok 14364 prefer-template invalid var foo = bar + 'baz'; ok 14365 prefer-template invalid var foo = bar + `baz`; ok 14366 prefer-template invalid var foo = +100 + 'yen'; ok 14367 prefer-template invalid var foo = 'bar' + baz; ok 14368 prefer-template invalid var foo = '¥' + (n * 1000) + '-' ok 14369 prefer-template invalid var foo = 'aaa' + aaa; var bar = 'bbb' + bbb; ok 14370 prefer-template invalid var string = (number + 1) + 'px'; ok 14371 prefer-template invalid var foo = 'bar' + baz + 'qux'; ok 14372 prefer-template invalid var foo = '0 backslashes: ${bar}' + baz; ok 14373 prefer-template invalid var foo = '1 backslash: \${bar}' + baz; ok 14374 prefer-template invalid var foo = '2 backslashes: \\${bar}' + baz; ok 14375 prefer-template invalid var foo = '3 backslashes: \\\${bar}' + baz; ok 14376 prefer-template invalid var foo = bar + 'this is a backtick: `' + baz; ok 14377 prefer-template invalid var foo = bar + 'this is a backtick preceded by a backslash: \`' + baz; ok 14378 prefer-template invalid var foo = bar + 'this is a backtick preceded by two backslashes: \\`' + baz; ok 14379 prefer-template invalid var foo = bar + `${baz}foo`; ok 14380 prefer-template invalid var foo = 'favorites: ' + favorites.map(f => { return f.name; }) + ';'; ok 14381 prefer-template invalid var foo = bar + baz + 'qux'; ok 14382 prefer-template invalid var foo = 'favorites: ' + favorites.map(f => { return f.name; }) + ';'; ok 14383 prefer-template invalid var foo = /* a */ 'bar' /* b */ + /* c */ baz /* d */ + 'qux' /* e */ ; ok 14384 prefer-template invalid var foo = bar + ('baz') + 'qux' + (boop); ok 14385 prefer-template invalid foo + 'unescapes an escaped single quote in a single-quoted string: \'' ok 14386 prefer-template invalid foo + "unescapes an escaped double quote in a double-quoted string: \"" ok 14387 prefer-template invalid foo + 'does not unescape an escaped double quote in a single-quoted string: \"' ok 14388 prefer-template invalid foo + "does not unescape an escaped single quote in a double-quoted string: \'" ok 14389 prefer-template invalid foo + 'handles unicode escapes correctly: \x27' ok 14390 prefer-template invalid foo + 'does not autofix octal escape sequence' + '\033' ok 14391 prefer-template invalid foo + '\n other text \033' ok 14392 prefer-template invalid foo + '\\033' ok 14393 prefer-template invalid foo + '\0' ok 14394 quote-props valid ({ '0': 0 }) ok 14395 quote-props valid ({ 'a': 0 }) ok 14396 quote-props valid ({ "a": 0 }) ok 14397 quote-props valid ({ 'null': 0 }) ok 14398 quote-props valid ({ 'true': 0 }) ok 14399 quote-props valid ({ 'a-b': 0 }) ok 14400 quote-props valid ({ 'if': 0 }) ok 14401 quote-props valid ({ '@': 0 }) ok 14402 quote-props valid ({ 'a': 0, b(){} }) ok 14403 quote-props valid ({ [x]: 0 }); ok 14404 quote-props valid ({ x }); ok 14405 quote-props valid ({ a: 0, b(){} }) ok 14406 quote-props valid ({ a: 0, [x]: 1 }) ok 14407 quote-props valid ({ a: 0, x }) ok 14408 quote-props valid ({ '@': 0, [x]: 1 }) ok 14409 quote-props valid ({ '@': 0, x }) ok 14410 quote-props valid ({ a: 0, b: 0 }) ok 14411 quote-props valid ({ a: 0, 0: 0 }) ok 14412 quote-props valid ({ a: 0, true: 0 }) ok 14413 quote-props valid ({ a: 0, null: 0 }) ok 14414 quote-props valid ({ a: 0, if: 0 }) ok 14415 quote-props valid ({ a: 0, while: 0 }) ok 14416 quote-props valid ({ a: 0, volatile: 0 }) ok 14417 quote-props valid ({ a: 0, '-b': 0 }) ok 14418 quote-props valid ({ a: 0, '@': 0 }) ok 14419 quote-props valid ({ a: 0, '0x0': 0 }) ok 14420 quote-props valid ({ ' 0': 0, '0x0': 0 }) ok 14421 quote-props valid ({ '0 ': 0 }) ok 14422 quote-props valid ({ 'hey//meh': 0 }) ok 14423 quote-props valid ({ 'hey/*meh': 0 }) ok 14424 quote-props valid ({ 'hey/*meh*/': 0 }) ok 14425 quote-props valid ({ 'a': 0, '-b': 0 }) ok 14426 quote-props valid ({ 'true': 0, 'b': 0 }) ok 14427 quote-props valid ({ null: 0, a: 0 }) ok 14428 quote-props valid ({ a: 0, b: 0 }) ok 14429 quote-props valid ({ 'a': 1, [x]: 0 }); ok 14430 quote-props valid ({ 'a': 1, x }); ok 14431 quote-props valid ({ a: 0, b: 0 }) ok 14432 quote-props valid ({ a: 0, null: 0 }) ok 14433 quote-props valid ({ 'a': 0, '-b': 0 }) ok 14434 quote-props valid ({ '@': 0, 'B': 0 }) ok 14435 quote-props valid ({ 'while': 0, 'B': 0 }) ok 14436 quote-props valid ({ '@': 0, 'B': 0 }) ok 14437 quote-props valid ({ '@': 1, [x]: 0 }); ok 14438 quote-props valid ({ '@': 1, x }); ok 14439 quote-props valid ({ a: 1, [x]: 0 }); ok 14440 quote-props valid ({ a: 1, x }); ok 14441 quote-props valid ({ a: 0, 'if': 0 }) ok 14442 quote-props valid ({ a: 0, 'while': 0 }) ok 14443 quote-props valid ({ a: 0, 'volatile': 0 }) ok 14444 quote-props valid ({'unnecessary': 1, 'if': 0}) ok 14445 quote-props valid ({'1': 1}) ok 14446 quote-props valid ({1: 1, x: 2}) ok 14447 quote-props valid ({1: 1, x: 2}) ok 14448 quote-props valid ({ ...x }) ok 14449 quote-props valid ({ ...x }) ok 14450 quote-props valid ({ ...x }) ok 14451 quote-props invalid ({ a: 0 }) ok 14452 quote-props invalid ({ 0: '0' }) ok 14453 quote-props invalid ({ 'a': 0 }) ok 14454 quote-props invalid ({ 'null': 0 }) ok 14455 quote-props invalid ({ 'true': 0 }) ok 14456 quote-props invalid ({ '0': 0 }) ok 14457 quote-props invalid ({ '-a': 0, b: 0 }) ok 14458 quote-props invalid ({ a: 0, 'b': 0 }) ok 14459 quote-props invalid ({ '-a': 0, b: 0 }) ok 14460 quote-props invalid ({ 'a': 0, 'b': 0 }) ok 14461 quote-props invalid ({ 'a': 0, [x]: 0 }) ok 14462 quote-props invalid ({ 'a': 0, x }) ok 14463 quote-props invalid ({ 'true': 0, 'null': 0 }) ok 14464 quote-props invalid ({ true: 0, 'null': 0 }) ok 14465 quote-props invalid ({ 'a': 0, 'b': 0 }) ok 14466 quote-props invalid ({ while: 0, b: 0 }) ok 14467 quote-props invalid ({ while: 0, 'b': 0 }) ok 14468 quote-props invalid ({ foo: 0, 'bar': 0 }) ok 14469 quote-props invalid ({ /* a */ 'prop1' /* b */ : /* c */ value1 /* d */ , /* e */ prop2 /* f */ : /* g */ value2 /* h */, /* i */ "prop3" /* j */ : /* k */ value3 /* l */ }) ok 14470 quote-props invalid ({ /* a */ "foo" /* b */ : /* c */ value1 /* d */ , /* e */ "bar" /* f */ : /* g */ value2 /* h */, /* i */ "baz" /* j */ : /* k */ value3 /* l */ }) ok 14471 quote-props invalid ({'if': 0}) ok 14472 quote-props invalid ({'synchronized': 0}) ok 14473 quote-props invalid ({while: 0}) ok 14474 quote-props invalid ({'unnecessary': 1, if: 0}) ok 14475 quote-props invalid ({1: 1}) ok 14476 quote-props invalid ({1: 1}) ok 14477 quote-props invalid ({0x123: 1}) ok 14478 quote-props invalid ({1e2: 1}) ok 14479 quote-props invalid ({5.: 1}) ok 14480 quotes valid var foo = "bar"; ok 14481 quotes valid var foo = 'bar'; ok 14482 quotes valid var foo = "bar"; ok 14483 quotes valid var foo = 1; ok 14484 quotes valid var foo = 1; ok 14485 quotes valid var foo = "'"; ok 14486 quotes valid var foo = '"'; ok 14487 quotes valid var foo = <>Hello world</>; ok 14488 quotes valid var foo = <>Hello world</>; ok 14489 quotes valid var foo = <>Hello world</>; ok 14490 quotes valid var foo = <>Hello world</>; ok 14491 quotes valid var foo = <div>Hello world</div>; ok 14492 quotes valid var foo = <div id="foo"></div>; ok 14493 quotes valid var foo = <div>Hello world</div>; ok 14494 quotes valid var foo = <div>Hello world</div>; ok 14495 quotes valid var foo = `bar`; ok 14496 quotes valid var foo = `bar 'baz'`; ok 14497 quotes valid var foo = `bar "baz"`; ok 14498 quotes valid var foo = 1; ok 14499 quotes valid var foo = "a string containing `backtick` quotes"; ok 14500 quotes valid var foo = <div id="foo"></div>; ok 14501 quotes valid var foo = <div>Hello world</div>; ok 14502 quotes valid var foo = `back tick`; ok 14503 quotes valid var foo = `back tick`; ok 14504 quotes valid var foo = `back
tick`; ok 14505 quotes valid var foo = `back
tick`; ok 14506 quotes valid var foo = `back\\ tick`; ok 14507 quotes valid var foo = `back\\\\ tick`; ok 14508 quotes valid var foo = ` `; ok 14509 quotes valid var foo = `back${x}tick`; ok 14510 quotes valid var foo = tag`backtick`; ok 14511 quotes valid var foo = `bar 'foo' baz` + 'bar'; ok 14512 quotes valid var foo = `bar 'foo' baz` + "bar"; ok 14513 quotes valid var foo = `bar 'foo' baz` + `bar`; ok 14514 quotes valid "use strict"; var foo = `backtick`; ok 14515 quotes valid "use strict"; 'use strong'; "use asm"; var foo = `backtick`; ok 14516 quotes valid function foo() { "use strict"; "use strong"; "use asm"; var foo = `backtick`; } ok 14517 quotes valid (function() { 'use strict'; 'use strong'; 'use asm'; var foo = `backtick`; })(); ok 14518 quotes valid (() => { "use strict"; "use strong"; "use asm"; var foo = `backtick`; })(); ok 14519 quotes valid import "a"; import 'b'; ok 14520 quotes valid import a from "a"; import b from 'b'; ok 14521 quotes valid export * from "a"; export * from 'b'; ok 14522 quotes valid var obj = {"key0": 0, 'key1': 1}; ok 14523 quotes valid class Foo { 'bar'(){} } ok 14524 quotes valid class Foo { static ''(){} } ok 14525 quotes invalid var foo = 'bar'; ok 14526 quotes invalid var foo = "bar"; ok 14527 quotes invalid var foo = `bar`; ok 14528 quotes invalid var foo = 'don\'t'; ok 14529 quotes invalid var msg = "Plugin '" + name + "' not found" ok 14530 quotes invalid var foo = 'bar'; ok 14531 quotes invalid var foo = `bar`; ok 14532 quotes invalid var foo = "bar"; ok 14533 quotes invalid var foo = 'bar'; ok 14534 quotes invalid var foo = '\\'; ok 14535 quotes invalid var foo = "bar"; ok 14536 quotes invalid var foo = 'bar'; ok 14537 quotes invalid var foo = 'bar'; ok 14538 quotes invalid var foo = 'b${x}a$r'; ok 14539 quotes invalid var foo = "bar"; ok 14540 quotes invalid var foo = "bar"; ok 14541 quotes invalid var foo = 'bar'; ok 14542 quotes invalid var foo = `backtick`; "use strict"; ok 14543 quotes invalid { "use strict"; var foo = `backtick`; } ok 14544 quotes invalid if (1) { "use strict"; var foo = `backtick`; } ok 14545 quotes invalid var obj = {["key0"]: 0, ['key1']: 1}; ok 14546 quotes invalid class Foo { ['a'](){} static ['b'](){} } ok 14547 quotes invalid <div blah={"blah"} /> ok 14548 quotes invalid <div blah={'blah'} /> ok 14549 quotes invalid <div blah={'blah'} /> ok 14550 quotes invalid `use strict`; ok 14551 quotes invalid function foo() { `use strict`; foo(); } ok 14552 quotes invalid foo = function() { `use strict`; foo(); } ok 14553 quotes invalid () => { `use strict`; foo(); } ok 14554 quotes invalid () => { foo(); `use strict`; } ok 14555 quotes invalid foo(); `use strict`; ok 14556 quotes invalid var foo = `foo\nbar`; ok 14557 quotes invalid var foo = `foo\ bar`; ok 14558 quotes invalid var foo = `foo\\\ bar`; ok 14559 quotes invalid ```` ok 14560 radix valid parseInt("10", 10); ok 14561 radix valid parseInt("10", foo); ok 14562 radix valid Number.parseInt("10", foo); ok 14563 radix valid parseInt("10", 10); ok 14564 radix valid parseInt("10"); ok 14565 radix valid parseInt("10", 8); ok 14566 radix valid parseInt("10", foo); ok 14567 radix valid parseInt ok 14568 radix valid Number.foo(); ok 14569 radix valid Number[parseInt](); ok 14570 radix valid var parseInt; parseInt(); ok 14571 radix valid var parseInt; parseInt(foo); ok 14572 radix valid var parseInt; parseInt(foo, 10); ok 14573 radix valid var Number; Number.parseInt(); ok 14574 radix valid var Number; Number.parseInt(foo); ok 14575 radix valid var Number; Number.parseInt(foo, 10); ok 14576 radix invalid parseInt(); ok 14577 radix invalid parseInt(); ok 14578 radix invalid parseInt("10"); ok 14579 radix invalid parseInt("10", null); ok 14580 radix invalid parseInt("10", undefined); ok 14581 radix invalid parseInt("10", true); ok 14582 radix invalid parseInt("10", "foo"); ok 14583 radix invalid parseInt("10", "123"); ok 14584 radix invalid Number.parseInt(); ok 14585 radix invalid Number.parseInt(); ok 14586 radix invalid Number.parseInt("10"); ok 14587 radix invalid parseInt("10", 10); ok 14588 require-atomic-updates valid let foo; async function x() { foo += bar; } ok 14589 require-atomic-updates valid let foo; async function x() { foo = foo + bar; } ok 14590 require-atomic-updates valid let foo; async function x() { foo = await bar + foo; } ok 14591 require-atomic-updates valid async function x() { let foo; foo += await bar; } ok 14592 require-atomic-updates valid let foo; async function x() { foo = (await result)(foo); } ok 14593 require-atomic-updates valid let foo; async function x() { foo = bar(await something, foo) } ok 14594 require-atomic-updates valid function* x() { let foo; foo += yield bar; } ok 14595 require-atomic-updates valid const foo = {}; async function x() { foo.bar = await baz; } ok 14596 require-atomic-updates valid const foo = []; async function x() { foo[x] += 1; } ok 14597 require-atomic-updates valid let foo; function* x() { foo = bar + foo; } ok 14598 require-atomic-updates valid async function x() { let foo; bar(() => baz += 1); foo += await amount; } ok 14599 require-atomic-updates valid let foo; async function x() { foo = condition ? foo : await bar; } ok 14600 require-atomic-updates valid async function x() { let foo; bar(() => { let foo; blah(foo); }); foo += await result; } ok 14601 require-atomic-updates valid let foo; async function x() { foo = foo + 1; await bar; } ok 14602 require-atomic-updates valid async function foo() { if (1); if (2); if (3); if (4); if (5); if (6); if (7); if (8); if (9); if (10); if (11); if (12); if (13); if (14); if (15); if (16); if (17); if (18); if (19); if (20); } ok 14603 require-atomic-updates valid async function foo() { return [ 1 ? a : b, 2 ? a : b, 3 ? a : b, 4 ? a : b, 5 ? a : b, 6 ? a : b, 7 ? a : b, 8 ? a : b, 9 ? a : b, 10 ? a : b, 11 ? a : b, 12 ? a : b, 13 ? a : b, 14 ? a : b, 15 ? a : b, 16 ? a : b, 17 ? a : b, 18 ? a : b, 19 ? a : b, 20 ? a : b ]; } ok 14604 require-atomic-updates invalid let foo; async function x() { foo += await amount; } ok 14605 require-atomic-updates invalid if (1); let foo; async function x() { foo += await amount; } ok 14606 require-atomic-updates invalid let foo; async function x() { while (condition) { foo += await amount; } } ok 14607 require-atomic-updates invalid let foo; async function x() { foo = foo + await amount; } ok 14608 require-atomic-updates invalid let foo; async function x() { foo = foo + (bar ? baz : await amount); } ok 14609 require-atomic-updates invalid let foo; async function x() { foo = foo + (bar ? await amount : baz); } ok 14610 require-atomic-updates invalid let foo; async function x() { foo = condition ? foo + await amount : somethingElse; } ok 14611 require-atomic-updates invalid let foo; async function x() { foo = (condition ? foo : await bar) + await bar; } ok 14612 require-atomic-updates invalid let foo; async function x() { foo += bar + await amount; } ok 14613 require-atomic-updates invalid async function x() { let foo; bar(() => foo); foo += await amount; } ok 14614 require-atomic-updates invalid let foo; function* x() { foo += yield baz } ok 14615 require-atomic-updates invalid let foo; async function x() { foo = bar(foo, await something) } ok 14616 require-atomic-updates invalid const foo = {}; async function x() { foo.bar += await baz } ok 14617 require-atomic-updates invalid const foo = []; async function x() { foo[bar].baz += await result; } ok 14618 require-atomic-updates invalid let foo; async function* x() { foo = (yield foo) + await bar; } ok 14619 require-atomic-updates invalid let foo; async function x() { foo = foo + await result(foo); } ok 14620 require-atomic-updates invalid let foo; async function x() { foo = await result(foo, await somethingElse); } ok 14621 require-atomic-updates invalid function* x() { let foo; yield async function y() { foo += await bar; } } ok 14622 require-atomic-updates invalid let foo; async function* x() { foo = await foo + (yield bar); } ok 14623 require-atomic-updates invalid let foo; async function x() { foo = bar + await foo; } ok 14624 require-atomic-updates invalid let foo = {}; async function x() { foo[bar].baz = await (foo.bar += await foo[bar].baz) } ok 14625 require-atomic-updates invalid async function x() { foo += await bar; } ok 14626 require-atomic-updates invalid let foo = 0; async function x() { foo = (a ? b : foo) + await bar; if (baz); } ok 14627 require-atomic-updates invalid let foo = 0; async function x() { foo = (a ? b ? c ? d ? foo : e : f : g : h) + await bar; if (baz); } ok 14628 require-jsdoc valid var array = [1,2,3]; array.forEach(function() {}); ok 14629 require-jsdoc valid /** @class MyClass */ function MyClass() {} ok 14630 require-jsdoc valid /** Function doing something */ function myFunction() {} ok 14631 require-jsdoc valid /** Function doing something */ var myFunction = function() {}; ok 14632 require-jsdoc valid /** Function doing something */ Object.myFunction = function () {}; ok 14633 require-jsdoc valid var obj = { /** Function doing something */ myFunction: function () {} }; ok 14634 require-jsdoc valid /** @func myFunction */ function myFunction() {} ok 14635 require-jsdoc valid /** @method myFunction */ function myFunction() {} ok 14636 require-jsdoc valid /** @function myFunction */ function myFunction() {} ok 14637 require-jsdoc valid /** @func myFunction */ var myFunction = function () {} ok 14638 require-jsdoc valid /** @method myFunction */ var myFunction = function () {} ok 14639 require-jsdoc valid /** @function myFunction */ var myFunction = function () {} ok 14640 require-jsdoc valid /** @func myFunction */ Object.myFunction = function() {} ok 14641 require-jsdoc valid /** @method myFunction */ Object.myFunction = function() {} ok 14642 require-jsdoc valid /** @function myFunction */ Object.myFunction = function() {} ok 14643 require-jsdoc valid (function(){})(); ok 14644 require-jsdoc valid var object = { /** @func myFunction - Some function */ myFunction: function() {} } ok 14645 require-jsdoc valid var object = { /** @method myFunction - Some function */ myFunction: function() {} } ok 14646 require-jsdoc valid var object = { /** @function myFunction - Some function */ myFunction: function() {} } ok 14647 require-jsdoc valid var array = [1,2,3]; array.filter(function() {}); ok 14648 require-jsdoc valid Object.keys(this.options.rules || {}).forEach(function(name) {}.bind(this)); ok 14649 require-jsdoc valid var object = { name: 'key'}; Object.keys(object).forEach(function() {}) ok 14650 require-jsdoc valid function myFunction() {} ok 14651 require-jsdoc valid var myFunction = function() {} ok 14652 require-jsdoc valid /** * Description for A. */ class A { /** * Description for constructor. * @param {object[]} xs - xs */ constructor(xs) { this.a = xs; } } ok 14653 require-jsdoc valid /** * Description for A. */ class App extends Component { /** * Description for constructor. * @param {object[]} xs - xs */ constructor(xs) { this.a = xs; } } ok 14654 require-jsdoc valid /** * Description for A. */ export default class App extends Component { /** * Description for constructor. * @param {object[]} xs - xs */ constructor(xs) { this.a = xs; } } ok 14655 require-jsdoc valid /** * Description for A. */ export class App extends Component { /** * Description for constructor. * @param {object[]} xs - xs */ constructor(xs) { this.a = xs; } } ok 14656 require-jsdoc valid class A { constructor(xs) { this.a = xs; } } ok 14657 require-jsdoc valid /** Function doing something */ var myFunction = () => {} ok 14658 require-jsdoc valid /** Function doing something */ var myFunction = () => () => {} ok 14659 require-jsdoc valid setTimeout(() => {}, 10); ok 14660 require-jsdoc valid /** JSDoc Block */ var foo = function() {} ok 14661 require-jsdoc valid const foo = {/** JSDoc Block */ bar() {}} ok 14662 require-jsdoc valid var foo = {/** JSDoc Block */ bar: function() {}} ok 14663 require-jsdoc valid var foo = { [function() {}]: 1 }; ok 14664 require-jsdoc invalid function myFunction() {} ok 14665 require-jsdoc invalid /** * Description for A. */ class A { constructor(xs) { this.a = xs; } } ok 14666 require-jsdoc invalid class A { /** * Description for constructor. * @param {object[]} xs - xs */ constructor(xs) { this.a = xs; } } ok 14667 require-jsdoc invalid class A extends B { /** * Description for constructor. * @param {object[]} xs - xs */ constructor(xs) { this.a = xs; } } ok 14668 require-jsdoc invalid export class A extends B { /** * Description for constructor. * @param {object[]} xs - xs */ constructor(xs) { this.a = xs; } } ok 14669 require-jsdoc invalid export default class A extends B { /** * Description for constructor. * @param {object[]} xs - xs */ constructor(xs) { this.a = xs; } } ok 14670 require-jsdoc invalid var myFunction = () => {} ok 14671 require-jsdoc invalid var myFunction = () => () => {} ok 14672 require-jsdoc invalid var foo = function() {} ok 14673 require-jsdoc invalid const foo = {bar() {}} ok 14674 require-jsdoc invalid var foo = {bar: function() {}} ok 14675 require-unicode-regexp valid /foo/u ok 14676 require-unicode-regexp valid /foo/gimuy ok 14677 require-unicode-regexp valid RegExp('', 'u') ok 14678 require-unicode-regexp valid new RegExp('', 'u') ok 14679 require-unicode-regexp valid RegExp('', 'gimuy') ok 14680 require-unicode-regexp valid new RegExp('', 'gimuy') ok 14681 require-unicode-regexp valid const flags = 'u'; new RegExp('', flags) ok 14682 require-unicode-regexp valid const flags = 'g'; new RegExp('', flags + 'u') ok 14683 require-unicode-regexp valid const flags = 'gimu'; new RegExp('foo', flags[3]) ok 14684 require-unicode-regexp valid new RegExp('', flags) ok 14685 require-unicode-regexp valid function f(flags) { return new RegExp('', flags) } ok 14686 require-unicode-regexp valid function f(RegExp) { return new RegExp('foo') } ok 14687 require-unicode-regexp invalid /foo/ ok 14688 require-unicode-regexp invalid /foo/gimy ok 14689 require-unicode-regexp invalid RegExp('foo') ok 14690 require-unicode-regexp invalid RegExp('foo', '') ok 14691 require-unicode-regexp invalid RegExp('foo', 'gimy') ok 14692 require-unicode-regexp invalid new RegExp('foo') ok 14693 require-unicode-regexp invalid new RegExp('foo', '') ok 14694 require-unicode-regexp invalid new RegExp('foo', 'gimy') ok 14695 require-unicode-regexp invalid const flags = 'gi'; new RegExp('foo', flags) ok 14696 require-unicode-regexp invalid const flags = 'gimu'; new RegExp('foo', flags[0]) ok 14697 require-unicode-regexp invalid new window.RegExp('foo') ok 14698 require-unicode-regexp invalid new global.RegExp('foo') ok 14699 require-yield valid function foo() { return 0; } ok 14700 require-yield valid function* foo() { yield 0; } ok 14701 require-yield valid function* foo() { } ok 14702 require-yield valid (function* foo() { yield 0; })(); ok 14703 require-yield valid (function* foo() { })(); ok 14704 require-yield valid var obj = { *foo() { yield 0; } }; ok 14705 require-yield valid var obj = { *foo() { } }; ok 14706 require-yield valid class A { *foo() { yield 0; } }; ok 14707 require-yield valid class A { *foo() { } }; ok 14708 require-yield invalid function* foo() { return 0; } ok 14709 require-yield invalid (function* foo() { return 0; })(); ok 14710 require-yield invalid var obj = { *foo() { return 0; } } ok 14711 require-yield invalid class A { *foo() { return 0; } } ok 14712 require-yield invalid function* foo() { function* bar() { yield 0; } } ok 14713 require-yield invalid function* foo() { function* bar() { return 0; } yield 0; } ok 14714 rest-spread-spacing valid fn(...args) ok 14715 rest-spread-spacing valid fn(...(args)) ok 14716 rest-spread-spacing valid fn(...( args )) ok 14717 rest-spread-spacing valid fn(...args) ok 14718 rest-spread-spacing valid fn(... args) ok 14719 rest-spread-spacing valid fn(... args) ok 14720 rest-spread-spacing valid fn(... args) ok 14721 rest-spread-spacing valid [...arr, 4, 5, 6] ok 14722 rest-spread-spacing valid [...(arr), 4, 5, 6] ok 14723 rest-spread-spacing valid [...( arr ), 4, 5, 6] ok 14724 rest-spread-spacing valid [...arr, 4, 5, 6] ok 14725 rest-spread-spacing valid [... arr, 4, 5, 6] ok 14726 rest-spread-spacing valid [... arr, 4, 5, 6] ok 14727 rest-spread-spacing valid [... arr, 4, 5, 6] ok 14728 rest-spread-spacing valid let [a, b, ...arr] = [1, 2, 3, 4, 5]; ok 14729 rest-spread-spacing valid let [a, b, ...arr] = [1, 2, 3, 4, 5]; ok 14730 rest-spread-spacing valid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 14731 rest-spread-spacing valid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 14732 rest-spread-spacing valid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 14733 rest-spread-spacing valid let n = { x, y, ...z }; ok 14734 rest-spread-spacing valid let n = { x, y, ...(z) }; ok 14735 rest-spread-spacing valid let n = { x, y, ...( z ) }; ok 14736 rest-spread-spacing valid let n = { x, y, ...z }; ok 14737 rest-spread-spacing valid let n = { x, y, ... z }; ok 14738 rest-spread-spacing valid let n = { x, y, ... z }; ok 14739 rest-spread-spacing valid let n = { x, y, ... z }; ok 14740 rest-spread-spacing valid let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14741 rest-spread-spacing valid let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14742 rest-spread-spacing valid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14743 rest-spread-spacing valid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14744 rest-spread-spacing valid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14745 rest-spread-spacing invalid fn(... args) ok 14746 rest-spread-spacing invalid fn(... args) ok 14747 rest-spread-spacing invalid fn(... args) ok 14748 rest-spread-spacing invalid fn(... args) ok 14749 rest-spread-spacing invalid fn(... args) ok 14750 rest-spread-spacing invalid fn(... args) ok 14751 rest-spread-spacing invalid fn(...args) ok 14752 rest-spread-spacing invalid fn(... (args)) ok 14753 rest-spread-spacing invalid fn(... ( args )) ok 14754 rest-spread-spacing invalid fn(...(args)) ok 14755 rest-spread-spacing invalid fn(...( args )) ok 14756 rest-spread-spacing invalid [... arr, 4, 5, 6] ok 14757 rest-spread-spacing invalid [... arr, 4, 5, 6] ok 14758 rest-spread-spacing invalid [... arr, 4, 5, 6] ok 14759 rest-spread-spacing invalid [... arr, 4, 5, 6] ok 14760 rest-spread-spacing invalid [... arr, 4, 5, 6] ok 14761 rest-spread-spacing invalid [... arr, 4, 5, 6] ok 14762 rest-spread-spacing invalid [...arr, 4, 5, 6] ok 14763 rest-spread-spacing invalid [... (arr), 4, 5, 6] ok 14764 rest-spread-spacing invalid [... ( arr ), 4, 5, 6] ok 14765 rest-spread-spacing invalid [...(arr), 4, 5, 6] ok 14766 rest-spread-spacing invalid [...( arr ), 4, 5, 6] ok 14767 rest-spread-spacing invalid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 14768 rest-spread-spacing invalid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 14769 rest-spread-spacing invalid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 14770 rest-spread-spacing invalid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 14771 rest-spread-spacing invalid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 14772 rest-spread-spacing invalid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 14773 rest-spread-spacing invalid let [a, b, ...arr] = [1, 2, 3, 4, 5]; ok 14774 rest-spread-spacing invalid let n = { x, y, ... z }; ok 14775 rest-spread-spacing invalid let n = { x, y, ... z }; ok 14776 rest-spread-spacing invalid let n = { x, y, ... z }; ok 14777 rest-spread-spacing invalid let n = { x, y, ... z }; ok 14778 rest-spread-spacing invalid let n = { x, y, ... z }; ok 14779 rest-spread-spacing invalid let n = { x, y, ... z }; ok 14780 rest-spread-spacing invalid let n = { x, y, ...z }; ok 14781 rest-spread-spacing invalid let n = { x, y, ... (z) }; ok 14782 rest-spread-spacing invalid let n = { x, y, ... ( z ) }; ok 14783 rest-spread-spacing invalid let n = { x, y, ...(z) }; ok 14784 rest-spread-spacing invalid let n = { x, y, ...( z ) }; ok 14785 rest-spread-spacing invalid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14786 rest-spread-spacing invalid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14787 rest-spread-spacing invalid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14788 rest-spread-spacing invalid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14789 rest-spread-spacing invalid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14790 rest-spread-spacing invalid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14791 rest-spread-spacing invalid let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; ok 14792 semi-spacing valid var a = 'b'; ok 14793 semi-spacing valid var a = 'b ; c'; ok 14794 semi-spacing valid var a = 'b', c = 'd'; ok 14795 semi-spacing valid var a = function() {}; ok 14796 semi-spacing valid ;(function(){}()); ok 14797 semi-spacing valid var a = 'b' ;(function(){}()) ok 14798 semi-spacing valid debugger ;(function(){}()) ok 14799 semi-spacing valid while (true) { break; } ok 14800 semi-spacing valid while (true) { continue; } ok 14801 semi-spacing valid debugger; ok 14802 semi-spacing valid function foo() { return; } ok 14803 semi-spacing valid throw new Error('foo'); ok 14804 semi-spacing valid for (var i = 0; i < 10; i++) {} ok 14805 semi-spacing valid for (;;) {} ok 14806 semi-spacing valid var a = 'b' ; ok 14807 semi-spacing valid var a = 'b';c = 'd'; ok 14808 semi-spacing valid for (var i = 0 ;i < 10 ;i++) {} ok 14809 semi-spacing valid for (var i = 0 ; i < 10 ; i++) {} ok 14810 semi-spacing valid function foo(){return 2;} ok 14811 semi-spacing valid for(var i = 0; i < results.length;) {} ok 14812 semi-spacing valid function foo() { return 2; } ok 14813 semi-spacing valid for ( var i = 0;i < results.length; ) {} ok 14814 semi-spacing invalid var a = 'b' ; ok 14815 semi-spacing invalid var a = 'b', c = 'd' ; ok 14816 semi-spacing invalid var a = function() {} ; ok 14817 semi-spacing invalid var a = function() { } ; ok 14818 semi-spacing invalid /^a$/.test('b') ; ok 14819 semi-spacing invalid ;(function(){}()) ; ok 14820 semi-spacing invalid while (true) { break ; } ok 14821 semi-spacing invalid while (true) { continue ; } ok 14822 semi-spacing invalid debugger ; ok 14823 semi-spacing invalid function foo() { return ; } ok 14824 semi-spacing invalid throw new Error('foo') ; ok 14825 semi-spacing invalid for (var i = 0 ; i < 10 ; i++) {} ok 14826 semi-spacing invalid var a = 'b';c = 'd'; ok 14827 semi-spacing invalid var a = 'b'; ok 14828 semi-spacing invalid var a = 'b'; c = 'd'; ok 14829 semi-spacing invalid for (var i = 0;i < 10;i++) {} ok 14830 semi-spacing invalid for (var i = 0; i < 10; i++) {} ok 14831 semi-spacing invalid for (var i = 0; i < 10; i++) {} ok 14832 semi-spacing invalid import Foo from 'bar' ; ok 14833 semi-spacing invalid import * as foo from 'bar' ; ok 14834 semi-spacing invalid var foo = 0; export {foo} ; ok 14835 semi-spacing invalid export * from 'foo' ; ok 14836 semi-spacing invalid export default foo ; ok 14837 semi-style valid ; ok 14838 semi-style valid ;foo;bar;baz; ok 14839 semi-style valid foo; bar; ok 14840 semi-style valid for(a;b;c); ok 14841 semi-style valid for(a; b; c); ok 14842 semi-style valid for((a ); (b ); (c)); ok 14843 semi-style valid if(a)foo; bar ok 14844 semi-style valid ; ok 14845 semi-style valid ;foo;bar;baz; ok 14846 semi-style valid foo; bar; ok 14847 semi-style valid for(a;b;c); ok 14848 semi-style valid for(a; b; c); ok 14849 semi-style valid for((a ); (b ); (c)); ok 14850 semi-style valid if(a)foo; bar ok 14851 semi-style valid ; ok 14852 semi-style valid ;foo;bar;baz; ok 14853 semi-style valid foo ;bar; ok 14854 semi-style valid for(a;b;c); ok 14855 semi-style valid for(a; b; c); ok 14856 semi-style valid for((a ); (b ); (c)); ok 14857 semi-style valid { ; } ok 14858 semi-style valid while (a) ; foo ok 14859 semi-style valid do ; while (a) ok 14860 semi-style valid do foo; while (a) ok 14861 semi-style valid if (a) foo; else bar ok 14862 semi-style valid if (a) foo ;bar ok 14863 semi-style valid { ; } ok 14864 semi-style valid switch (a) { case 1: ;foo } ok 14865 semi-style valid while (a) ; foo ok 14866 semi-style valid do ; while (a) ok 14867 semi-style invalid foo ;bar ok 14868 semi-style invalid if(a)foo ;bar ok 14869 semi-style invalid var foo ;bar ok 14870 semi-style invalid foo ; bar ok 14871 semi-style invalid for(a ;b;c)d ok 14872 semi-style invalid for(a;b ;c)d ok 14873 semi-style invalid do;while(a) ;b ok 14874 semi-style invalid foo ;bar ok 14875 semi-style invalid if(a)foo ;bar ok 14876 semi-style invalid var foo ;bar ok 14877 semi-style invalid foo ; bar ok 14878 semi-style invalid for(a ;b;c)d ok 14879 semi-style invalid for(a;b ;c)d ok 14880 semi-style invalid foo() ; ok 14881 semi-style invalid foo; bar ok 14882 semi-style invalid if(a)foo; bar ok 14883 semi-style invalid var foo; bar ok 14884 semi-style invalid foo ; bar ok 14885 semi-style invalid for(a ;b;c)d ok 14886 semi-style invalid for(a;b ;c)d ok 14887 semi-style invalid foo ;/**/bar ok 14888 semi-style invalid foo /**/;bar ok 14889 semi-style invalid foo; /**/bar ok 14890 semi-style invalid foo/**/; bar ok 14891 semi valid var x = 5; ok 14892 semi valid var x =5, y; ok 14893 semi valid foo(); ok 14894 semi valid x = foo(); ok 14895 semi valid setTimeout(function() {foo = "bar"; }); ok 14896 semi valid setTimeout(function() {foo = "bar";}); ok 14897 semi valid for (var a in b){} ok 14898 semi valid for (var i;;){} ok 14899 semi valid if (true) {} ;[global, extended].forEach(function(){}); ok 14900 semi valid throw new Error('foo'); ok 14901 semi valid throw new Error('foo') ok 14902 semi valid var x = 5 ok 14903 semi valid var x =5, y ok 14904 semi valid foo() ok 14905 semi valid debugger ok 14906 semi valid for (var a in b){} ok 14907 semi valid for (var i;;){} ok 14908 semi valid x = foo() ok 14909 semi valid if (true) {} ;[global, extended].forEach(function(){}) ok 14910 semi valid (function bar() {}) ;(function foo(){}) ok 14911 semi valid ;/foo/.test('bar') ok 14912 semi valid ;+5 ok 14913 semi valid ;-foo() ok 14914 semi valid a++ b++ ok 14915 semi valid a++; b++ ok 14916 semi valid for (let thing of {}) { console.log(thing); } ok 14917 semi valid do{}while(true) ok 14918 semi valid do{}while(true); ok 14919 semi valid if (foo) { bar() } ok 14920 semi valid if (foo) { bar(); baz() } ok 14921 semi valid class A { a() {} b() {} } ok 14922 semi valid var A = class { a() {} b() {} }; ok 14923 semi valid import theDefault, { named1, named2 } from 'src/mylib'; ok 14924 semi valid import theDefault, { named1, named2 } from 'src/mylib' ok 14925 semi valid export * from 'foo'; ok 14926 semi valid export { foo } from 'foo'; ok 14927 semi valid var foo = 0;export { foo }; ok 14928 semi valid export var foo; ok 14929 semi valid export function foo () { } ok 14930 semi valid export function* foo () { } ok 14931 semi valid export class Foo { } ok 14932 semi valid export let foo; ok 14933 semi valid export const FOO = 42; ok 14934 semi valid export default function() { } ok 14935 semi valid export default function* () { } ok 14936 semi valid export default class { } ok 14937 semi valid export default foo || bar; ok 14938 semi valid export default (foo) => foo.bar(); ok 14939 semi valid export default foo = 42; ok 14940 semi valid export default foo += 42; ok 14941 semi valid export * from 'foo' ok 14942 semi valid export { foo } from 'foo' ok 14943 semi valid var foo = 0; export { foo } ok 14944 semi valid export var foo ok 14945 semi valid export function foo () { } ok 14946 semi valid export function* foo () { } ok 14947 semi valid export class Foo { } ok 14948 semi valid export let foo ok 14949 semi valid export const FOO = 42 ok 14950 semi valid export default function() { } ok 14951 semi valid export default function* () { } ok 14952 semi valid export default class { } ok 14953 semi valid export default foo || bar ok 14954 semi valid export default (foo) => foo.bar() ok 14955 semi valid export default foo = 42 ok 14956 semi valid export default foo += 42 ok 14957 semi valid ++ foo; ok 14958 semi valid var a = b; + c ok 14959 semi valid var a = b; /foo/.test(c) ok 14960 semi valid var a = b; `foo` ok 14961 semi valid do; while(a); [1,2,3].forEach(doSomething) ok 14962 semi valid do; while(a) [1,2,3].forEach(doSomething) ok 14963 semi valid import a from "a"; [1,2,3].forEach(doSomething) ok 14964 semi valid var a = 0; export {a}; [a] = b ok 14965 semi valid function wrap() { return; ({a} = b) } ok 14966 semi valid while (true) { break; +i } ok 14967 semi valid while (true) { continue; [1,2,3].forEach(doSomething) } ok 14968 semi valid do; while(a); [1,2,3].forEach(doSomething) ok 14969 semi valid const f = () => {}; [1,2,3].forEach(doSomething) ok 14970 semi valid import a from "a" [1,2,3].forEach(doSomething) ok 14971 semi valid var a = 0; export {a} [a] = b ok 14972 semi valid function wrap() { return ({a} = b) } ok 14973 semi valid while (true) { break +i } ok 14974 semi valid while (true) { continue [1,2,3].forEach(doSomething) } ok 14975 semi valid do; while(a) [1,2,3].forEach(doSomething) ok 14976 semi valid const f = () => {} [1,2,3].forEach(doSomething) ok 14977 semi invalid import * as utils from './utils' ok 14978 semi invalid import { square, diag } from 'lib' ok 14979 semi invalid import { default as foo } from 'lib' ok 14980 semi invalid import 'src/mylib' ok 14981 semi invalid import theDefault, { named1, named2 } from 'src/mylib' ok 14982 semi invalid function foo() { return [] } ok 14983 semi invalid while(true) { break } ok 14984 semi invalid while(true) { continue } ok 14985 semi invalid let x = 5 ok 14986 semi invalid var x = 5 ok 14987 semi invalid var x = 5, y ok 14988 semi invalid debugger ok 14989 semi invalid foo() ok 14990 semi invalid for (var a in b) var i ok 14991 semi invalid for (;;){var i} ok 14992 semi invalid for (;;) var i ok 14993 semi invalid for (var j;;) {var i} ok 14994 semi invalid var foo = { bar: baz } ok 14995 semi invalid var foo var bar; ok 14996 semi invalid throw new Error('foo') ok 14997 semi invalid do{}while(true) ok 14998 semi invalid throw new Error('foo'); ok 14999 semi invalid function foo() { return []; } ok 15000 semi invalid while(true) { break; } ok 15001 semi invalid while(true) { continue; } ok 15002 semi invalid let x = 5; ok 15003 semi invalid var x = 5; ok 15004 semi invalid var x = 5, y; ok 15005 semi invalid debugger; ok 15006 semi invalid foo(); ok 15007 semi invalid for (var a in b) var i; ok 15008 semi invalid for (;;){var i;} ok 15009 semi invalid for (;;) var i; ok 15010 semi invalid for (var j;;) {var i;} ok 15011 semi invalid var foo = { bar: baz }; ok 15012 semi invalid import theDefault, { named1, named2 } from 'src/mylib'; ok 15013 semi invalid do{}while(true); ok 15014 semi invalid if (foo) { bar() } ok 15015 semi invalid if (foo) { bar() } ok 15016 semi invalid if (foo) { bar(); baz() } ok 15017 semi invalid if (foo) { bar(); } ok 15018 semi invalid export * from 'foo' ok 15019 semi invalid export { foo } from 'foo' ok 15020 semi invalid var foo = 0;export { foo } ok 15021 semi invalid export var foo ok 15022 semi invalid export let foo ok 15023 semi invalid export const FOO = 42 ok 15024 semi invalid export default foo || bar ok 15025 semi invalid export default (foo) => foo.bar() ok 15026 semi invalid export default foo = 42 ok 15027 semi invalid export default foo += 42 ok 15028 semi invalid export * from 'foo'; ok 15029 semi invalid export { foo } from 'foo'; ok 15030 semi invalid var foo = 0;export { foo }; ok 15031 semi invalid export var foo; ok 15032 semi invalid export let foo; ok 15033 semi invalid export const FOO = 42; ok 15034 semi invalid export default foo || bar; ok 15035 semi invalid export default (foo) => foo.bar(); ok 15036 semi invalid export default foo = 42; ok 15037 semi invalid export default foo += 42; ok 15038 semi invalid a; ++b ok 15039 semi invalid /*eslint no-extra-semi: error */ foo(); ;[0,1,2].forEach(bar) ok 15040 semi invalid import a from "a" [1,2,3].forEach(doSomething) ok 15041 semi invalid var a = 0; export {a} [a] = b ok 15042 semi invalid function wrap() { return ({a} = b) } ok 15043 semi invalid while (true) { break +i } ok 15044 semi invalid while (true) { continue [1,2,3].forEach(doSomething) } ok 15045 semi invalid do; while(a) [1,2,3].forEach(doSomething) ok 15046 semi invalid const f = () => {} [1,2,3].forEach(doSomething) ok 15047 semi invalid import a from "a"; [1,2,3].forEach(doSomething) ok 15048 semi invalid var a = 0; export {a}; [a] = b ok 15049 semi invalid function wrap() { return; ({a} = b) } ok 15050 semi invalid while (true) { break; +i } ok 15051 semi invalid while (true) { continue; [1,2,3].forEach(doSomething) } ok 15052 semi invalid do; while(a); [1,2,3].forEach(doSomething) ok 15053 semi invalid const f = () => {}; [1,2,3].forEach(doSomething) ok 15054 semi invalid import a from "a" ;[1,2,3].forEach(doSomething) ok 15055 semi invalid var a = 0; export {a} ;[1,2,3].forEach(doSomething) ok 15056 semi invalid function wrap() { return ;[1,2,3].forEach(doSomething) } ok 15057 semi invalid while (true) { break ;[1,2,3].forEach(doSomething) } ok 15058 semi invalid while (true) { continue ;[1,2,3].forEach(doSomething) } ok 15059 semi invalid do; while(a) ;[1,2,3].forEach(doSomething) ok 15060 semi invalid const f = () => {} ;[1,2,3].forEach(doSomething) ok 15061 sort-imports valid import a from 'foo.js'; import b from 'bar.js'; import c from 'baz.js'; ok 15062 sort-imports valid import * as B from 'foo.js'; import A from 'bar.js'; ok 15063 sort-imports valid import * as B from 'foo.js'; import {a, b} from 'bar.js'; ok 15064 sort-imports valid import {b, c} from 'bar.js'; import A from 'foo.js'; ok 15065 sort-imports valid import A from 'bar.js'; import {b, c} from 'foo.js'; ok 15066 sort-imports valid import {a, b} from 'bar.js'; import {c, d} from 'foo.js'; ok 15067 sort-imports valid import A from 'foo.js'; import B from 'bar.js'; ok 15068 sort-imports valid import A from 'foo.js'; import a from 'bar.js'; ok 15069 sort-imports valid import a, * as b from 'foo.js'; import c from 'bar.js'; ok 15070 sort-imports valid import 'foo.js'; import a from 'bar.js'; ok 15071 sort-imports valid import B from 'foo.js'; import a from 'bar.js'; ok 15072 sort-imports valid import a from 'foo.js'; import B from 'bar.js'; ok 15073 sort-imports valid import {a, b, c, d} from 'foo.js'; ok 15074 sort-imports valid import a from 'foo.js'; import B from 'bar.js'; ok 15075 sort-imports valid import {b, A, C, d} from 'foo.js'; ok 15076 sort-imports valid import {B, a, C, d} from 'foo.js'; ok 15077 sort-imports valid import {a, B, c, D} from 'foo.js'; ok 15078 sort-imports valid import a, * as b from 'foo.js'; ok 15079 sort-imports valid import * as a from 'foo.js'; import b from 'bar.js'; ok 15080 sort-imports valid import * as bar from 'bar.js'; import * as foo from 'foo.js'; ok 15081 sort-imports valid import 'foo'; import bar from 'bar'; ok 15082 sort-imports valid import React, {Component} from 'react'; ok 15083 sort-imports invalid import a from 'foo.js'; import A from 'bar.js'; ok 15084 sort-imports invalid import b from 'foo.js'; import a from 'bar.js'; ok 15085 sort-imports invalid import {b, c} from 'foo.js'; import {a, d} from 'bar.js'; ok 15086 sort-imports invalid import * as foo from 'foo.js'; import * as bar from 'bar.js'; ok 15087 sort-imports invalid import a from 'foo.js'; import {b, c} from 'bar.js'; ok 15088 sort-imports invalid import a from 'foo.js'; import * as b from 'bar.js'; ok 15089 sort-imports invalid import a from 'foo.js'; import 'bar.js'; ok 15090 sort-imports invalid import b from 'bar.js'; import * as a from 'foo.js'; ok 15091 sort-imports invalid import {b, a, d, c} from 'foo.js'; ok 15092 sort-imports invalid import {b, a, d, c} from 'foo.js'; import {e, f, g, h} from 'bar.js'; ok 15093 sort-imports invalid import {a, B, c, D} from 'foo.js'; ok 15094 sort-imports invalid import {zzzzz, /* comment */ aaaaa} from 'foo.js'; ok 15095 sort-imports invalid import {zzzzz /* comment */, aaaaa} from 'foo.js'; ok 15096 sort-imports invalid import {/* comment */ zzzzz, aaaaa} from 'foo.js'; ok 15097 sort-imports invalid import {zzzzz, aaaaa /* comment */} from 'foo.js'; ok 15098 sort-imports invalid import { boop, foo, zoo, baz as qux, bar, beep } from 'foo.js'; ok 15099 sort-keys valid var obj = {_:2, a:1, b:3} // default ok 15100 sort-keys valid var obj = {a:1, b:3, c:2} ok 15101 sort-keys valid var obj = {a:2, b:3, b_:1} ok 15102 sort-keys valid var obj = {C:3, b_:1, c:2} ok 15103 sort-keys valid var obj = {$:1, A:3, _:2, a:4} ok 15104 sort-keys valid var obj = {1:1, '11':2, 2:4, A:3} ok 15105 sort-keys valid var obj = {'':1, 'Z':2, À:3, è:4} ok 15106 sort-keys valid var obj = {a:1, b:3, [a + b]: -1, c:2} ok 15107 sort-keys valid var obj = {a:1, ...z, b:1} ok 15108 sort-keys valid var obj = {b:1, ...z, a:1} ok 15109 sort-keys valid var obj = {...a, b:1, ...c, d:1} ok 15110 sort-keys valid var obj = {...a, b:1, ...d, ...c, e:2, z:5} ok 15111 sort-keys valid var obj = {b:1, ...c, ...d, e:2} ok 15112 sort-keys valid var obj = {...z, a:1, b:1} ok 15113 sort-keys valid var obj = {...z, ...c, a:1, b:1} ok 15114 sort-keys valid var obj = {a:1, b:1, ...z} ok 15115 sort-keys valid var obj = {...z, ...x, a:1, ...c, ...d, f:5, e:4} ok 15116 sort-keys valid function fn(...args) { return [...args].length; } ok 15117 sort-keys valid function g() {}; function f(...args) { return g(...args); } ok 15118 sort-keys valid let {a, b} = {} ok 15119 sort-keys valid var obj = {a:1, b:{x:1, y:1}, c:1} ok 15120 sort-keys valid var obj = {_:2, a:1, b:3} // asc ok 15121 sort-keys valid var obj = {a:1, b:3, c:2} ok 15122 sort-keys valid var obj = {a:2, b:3, b_:1} ok 15123 sort-keys valid var obj = {C:3, b_:1, c:2} ok 15124 sort-keys valid var obj = {$:1, A:3, _:2, a:4} ok 15125 sort-keys valid var obj = {1:1, '11':2, 2:4, A:3} ok 15126 sort-keys valid var obj = {'':1, 'Z':2, À:3, è:4} ok 15127 sort-keys valid var obj = {_:2, a:1, b:3} // asc, insensitive ok 15128 sort-keys valid var obj = {a:1, b:3, c:2} ok 15129 sort-keys valid var obj = {a:2, b:3, b_:1} ok 15130 sort-keys valid var obj = {b_:1, C:3, c:2} ok 15131 sort-keys valid var obj = {b_:1, c:3, C:2} ok 15132 sort-keys valid var obj = {$:1, _:2, A:3, a:4} ok 15133 sort-keys valid var obj = {1:1, '11':2, 2:4, A:3} ok 15134 sort-keys valid var obj = {'':1, 'Z':2, À:3, è:4} ok 15135 sort-keys valid var obj = {_:2, a:1, b:3} // asc, natural ok 15136 sort-keys valid var obj = {a:1, b:3, c:2} ok 15137 sort-keys valid var obj = {a:2, b:3, b_:1} ok 15138 sort-keys valid var obj = {C:3, b_:1, c:2} ok 15139 sort-keys valid var obj = {$:1, _:2, A:3, a:4} ok 15140 sort-keys valid var obj = {1:1, 2:4, '11':2, A:3} ok 15141 sort-keys valid var obj = {'':1, 'Z':2, À:3, è:4} ok 15142 sort-keys valid var obj = {_:2, a:1, b:3} // asc, natural, insensitive ok 15143 sort-keys valid var obj = {a:1, b:3, c:2} ok 15144 sort-keys valid var obj = {a:2, b:3, b_:1} ok 15145 sort-keys valid var obj = {b_:1, C:3, c:2} ok 15146 sort-keys valid var obj = {b_:1, c:3, C:2} ok 15147 sort-keys valid var obj = {$:1, _:2, A:3, a:4} ok 15148 sort-keys valid var obj = {1:1, 2:4, '11':2, A:3} ok 15149 sort-keys valid var obj = {'':1, 'Z':2, À:3, è:4} ok 15150 sort-keys valid var obj = {b:3, a:1, _:2} // desc ok 15151 sort-keys valid var obj = {c:2, b:3, a:1} ok 15152 sort-keys valid var obj = {b_:1, b:3, a:2} ok 15153 sort-keys valid var obj = {c:2, b_:1, C:3} ok 15154 sort-keys valid var obj = {a:4, _:2, A:3, $:1} ok 15155 sort-keys valid var obj = {A:3, 2:4, '11':2, 1:1} ok 15156 sort-keys valid var obj = {è:4, À:3, 'Z':2, '':1} ok 15157 sort-keys valid var obj = {b:3, a:1, _:2} // desc, insensitive ok 15158 sort-keys valid var obj = {c:2, b:3, a:1} ok 15159 sort-keys valid var obj = {b_:1, b:3, a:2} ok 15160 sort-keys valid var obj = {c:2, C:3, b_:1} ok 15161 sort-keys valid var obj = {C:2, c:3, b_:1} ok 15162 sort-keys valid var obj = {a:4, A:3, _:2, $:1} ok 15163 sort-keys valid var obj = {A:3, 2:4, '11':2, 1:1} ok 15164 sort-keys valid var obj = {è:4, À:3, 'Z':2, '':1} ok 15165 sort-keys valid var obj = {b:3, a:1, _:2} // desc, natural ok 15166 sort-keys valid var obj = {c:2, b:3, a:1} ok 15167 sort-keys valid var obj = {b_:1, b:3, a:2} ok 15168 sort-keys valid var obj = {c:2, b_:1, C:3} ok 15169 sort-keys valid var obj = {a:4, A:3, _:2, $:1} ok 15170 sort-keys valid var obj = {A:3, '11':2, 2:4, 1:1} ok 15171 sort-keys valid var obj = {è:4, À:3, 'Z':2, '':1} ok 15172 sort-keys valid var obj = {b:3, a:1, _:2} // desc, natural, insensitive ok 15173 sort-keys valid var obj = {c:2, b:3, a:1} ok 15174 sort-keys valid var obj = {b_:1, b:3, a:2} ok 15175 sort-keys valid var obj = {c:2, C:3, b_:1} ok 15176 sort-keys valid var obj = {C:2, c:3, b_:1} ok 15177 sort-keys valid var obj = {a:4, A:3, _:2, $:1} ok 15178 sort-keys valid var obj = {A:3, '11':2, 2:4, 1:1} ok 15179 sort-keys valid var obj = {è:4, À:3, 'Z':2, '':1} ok 15180 sort-keys invalid var obj = {a:1, _:2, b:3} // default ok 15181 sort-keys invalid var obj = {a:1, c:2, b:3} ok 15182 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 15183 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 15184 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 15185 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 15186 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 15187 sort-keys invalid var obj = {...z, c:1, b:1} ok 15188 sort-keys invalid var obj = {...z, ...c, d:4, b:1, ...y, ...f, e:2, a:1} ok 15189 sort-keys invalid var obj = {c:1, b:1, ...a} ok 15190 sort-keys invalid var obj = {...z, ...a, c:1, b:1} ok 15191 sort-keys invalid var obj = {...z, b:1, a:1, ...d, ...c} ok 15192 sort-keys invalid var obj = {...z, a:2, b:0, ...x, ...c} ok 15193 sort-keys invalid var obj = {...z, a:2, b:0, ...x} ok 15194 sort-keys invalid var obj = {a:1, b:3, [a]: -1, c:2} ok 15195 sort-keys invalid var obj = {a:1, c:{y:1, x:1}, b:1} ok 15196 sort-keys invalid var obj = {a:1, _:2, b:3} // asc ok 15197 sort-keys invalid var obj = {a:1, c:2, b:3} ok 15198 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 15199 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 15200 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 15201 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 15202 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 15203 sort-keys invalid var obj = {a:1, _:2, b:3} // asc, insensitive ok 15204 sort-keys invalid var obj = {a:1, c:2, b:3} ok 15205 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 15206 sort-keys invalid var obj = {$:1, A:3, _:2, a:4} ok 15207 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 15208 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 15209 sort-keys invalid var obj = {a:1, _:2, b:3} // asc, natural ok 15210 sort-keys invalid var obj = {a:1, c:2, b:3} ok 15211 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 15212 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 15213 sort-keys invalid var obj = {$:1, A:3, _:2, a:4} ok 15214 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 15215 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 15216 sort-keys invalid var obj = {a:1, _:2, b:3} // asc, natural, insensitive ok 15217 sort-keys invalid var obj = {a:1, c:2, b:3} ok 15218 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 15219 sort-keys invalid var obj = {$:1, A:3, _:2, a:4} ok 15220 sort-keys invalid var obj = {1:1, '11':2, 2:4, A:3} ok 15221 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 15222 sort-keys invalid var obj = {a:1, _:2, b:3} // desc ok 15223 sort-keys invalid var obj = {a:1, c:2, b:3} ok 15224 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 15225 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 15226 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 15227 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 15228 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 15229 sort-keys invalid var obj = {a:1, _:2, b:3} // desc, insensitive ok 15230 sort-keys invalid var obj = {a:1, c:2, b:3} ok 15231 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 15232 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 15233 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 15234 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 15235 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 15236 sort-keys invalid var obj = {a:1, _:2, b:3} // desc, natural ok 15237 sort-keys invalid var obj = {a:1, c:2, b:3} ok 15238 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 15239 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 15240 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 15241 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 15242 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 15243 sort-keys invalid var obj = {a:1, _:2, b:3} // desc, natural, insensitive ok 15244 sort-keys invalid var obj = {a:1, c:2, b:3} ok 15245 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 15246 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 15247 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 15248 sort-keys invalid var obj = {1:1, 2:4, '11':2, A:3} ok 15249 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 15250 sort-vars valid var a=10, b=4, c='abc' ok 15251 sort-vars valid var a, b, c, d ok 15252 sort-vars valid var b; var a; var d; ok 15253 sort-vars valid var _a, a ok 15254 sort-vars valid var A, a ok 15255 sort-vars valid var A, b ok 15256 sort-vars valid var a, A; ok 15257 sort-vars valid var A, a; ok 15258 sort-vars valid var a, B, c; ok 15259 sort-vars valid var A, b, C; ok 15260 sort-vars valid var {a, b, c} = x; ok 15261 sort-vars valid var {A, b, C} = x; ok 15262 sort-vars valid var test = [1,2,3]; ok 15263 sort-vars valid var {a,b} = [1,2]; ok 15264 sort-vars valid var [a, B, c] = [1, 2, 3]; ok 15265 sort-vars valid var [A, B, c] = [1, 2, 3]; ok 15266 sort-vars valid var [A, b, C] = [1, 2, 3]; ok 15267 sort-vars valid let {a, b, c} = x; ok 15268 sort-vars valid let [a, b, c] = [1, 2, 3]; ok 15269 sort-vars valid const {a, b, c} = {a: 1, b: true, c: "Moo"}; ok 15270 sort-vars valid const [a, b, c] = [1, true, "Moo"]; ok 15271 sort-vars valid const [c, a, b] = [1, true, "Moo"]; ok 15272 sort-vars valid var {a, x: {b, c}} = {}; ok 15273 sort-vars valid var {c, x: {a, c}} = {}; ok 15274 sort-vars valid var {a, x: [b, c]} = {}; ok 15275 sort-vars valid var [a, {b, c}] = {}; ok 15276 sort-vars valid var [a, {x: {b, c}}] = {}; ok 15277 sort-vars valid var a = 42, {b, c } = {}; ok 15278 sort-vars valid var b = 42, {a, c } = {}; ok 15279 sort-vars valid var [b, {x: {a, c}}] = {}; ok 15280 sort-vars valid var [b, d, a, c] = {}; ok 15281 sort-vars valid var e, [a, c, d] = {}; ok 15282 sort-vars valid var a, [E, c, D] = []; ok 15283 sort-vars valid var a, f, [e, c, d] = [1,2,3]; ok 15284 sort-vars valid export default class { render () { let { b } = this, a, c; } } ok 15285 sort-vars valid var {} = 1, a ok 15286 sort-vars invalid var b, a ok 15287 sort-vars invalid var b , a ok 15288 sort-vars invalid var b, a; ok 15289 sort-vars invalid var b=10, a=20; ok 15290 sort-vars invalid var b=10, a=20, c=30; ok 15291 sort-vars invalid var all=10, a = 1 ok 15292 sort-vars invalid var b, c, a, d ok 15293 sort-vars invalid var c, d, a, b ok 15294 sort-vars invalid var a, A; ok 15295 sort-vars invalid var a, B; ok 15296 sort-vars invalid var a, B, c; ok 15297 sort-vars invalid var B, a; ok 15298 sort-vars invalid var B, A, c; ok 15299 sort-vars invalid var d, a, [b, c] = {}; ok 15300 sort-vars invalid var d, a, [b, {x: {c, e}}] = {}; ok 15301 sort-vars invalid var {} = 1, b, a ok 15302 sort-vars invalid var b=10, a=f(); ok 15303 sort-vars invalid var b=10, a=b; ok 15304 sort-vars invalid var b = 0, a = `${b}`; ok 15305 sort-vars invalid var b = 0, a = `${f()}` ok 15306 sort-vars invalid var b = 0, c = b, a; ok 15307 sort-vars invalid var b = 0, c = 0, a = b + c; ok 15308 sort-vars invalid var b = f(), c, d, a; ok 15309 sort-vars invalid var b = `${f()}`, c, d, a; ok 15310 sort-vars invalid var c, a = b = 0 ok 15311 space-before-blocks valid if(a) {} ok 15312 space-before-blocks valid if(a) {} ok 15313 space-before-blocks valid if(a){} ok 15314 space-before-blocks valid if(a){} ok 15315 space-before-blocks valid if(a) {} ok 15316 space-before-blocks valid if(a){ function b() {} } ok 15317 space-before-blocks valid if(a) { function b(){} } ok 15318 space-before-blocks valid if(a) {} ok 15319 space-before-blocks valid if(a) {} ok 15320 space-before-blocks valid if(a) {}else {} ok 15321 space-before-blocks valid if(a){}else{} ok 15322 space-before-blocks valid if(a){}else{} ok 15323 space-before-blocks valid if(a) {} else {} ok 15324 space-before-blocks valid if(a){ function b() {} }else{} ok 15325 space-before-blocks valid if(a) { function b(){} } else {} ok 15326 space-before-blocks valid function a() {} ok 15327 space-before-blocks valid function a(){} ok 15328 space-before-blocks valid export default class{} ok 15329 space-before-blocks valid export default class {} ok 15330 space-before-blocks valid export default function a() {} ok 15331 space-before-blocks valid export default function a(){} ok 15332 space-before-blocks valid export function a(){} ok 15333 space-before-blocks valid export function a() {} ok 15334 space-before-blocks valid function a(){} ok 15335 space-before-blocks valid function a() {} ok 15336 space-before-blocks valid function a(){ if(b) {} } ok 15337 space-before-blocks valid function a() { if(b){} } ok 15338 space-before-blocks valid switch(a.b(c < d)) { case 'foo': foo(); break; default: if (a) { bar(); } } ok 15339 space-before-blocks valid switch(a) { } ok 15340 space-before-blocks valid switch(a) {} ok 15341 space-before-blocks valid switch(a.b(c < d)){ case 'foo': foo(); break; default: if (a){ bar(); } } ok 15342 space-before-blocks valid switch(a.b(c < d)){ case 'foo': foo(); break; default: if (a){ bar(); } } ok 15343 space-before-blocks valid switch(a){} ok 15344 space-before-blocks valid switch(a){} ok 15345 space-before-blocks valid switch(a) {} ok 15346 space-before-blocks valid try {}catch(a) {} ok 15347 space-before-blocks valid try{}catch(a){} ok 15348 space-before-blocks valid try{}catch(a){} ok 15349 space-before-blocks valid try {} catch(a) {} ok 15350 space-before-blocks valid try{ function b() {} }catch(a){} ok 15351 space-before-blocks valid try { function b(){} } catch(a) {} ok 15352 space-before-blocks valid for(;;) {} ok 15353 space-before-blocks valid for(;;){} ok 15354 space-before-blocks valid for(;;){} ok 15355 space-before-blocks valid for(;;) {} ok 15356 space-before-blocks valid for(;;){ function a() {} } ok 15357 space-before-blocks valid for(;;) { function a(){} } ok 15358 space-before-blocks valid while(a) {} ok 15359 space-before-blocks valid while(a){} ok 15360 space-before-blocks valid while(a){} ok 15361 space-before-blocks valid while(a) {} ok 15362 space-before-blocks valid while(a){ function b() {} } ok 15363 space-before-blocks valid while(a) { function b(){} } ok 15364 space-before-blocks valid class test { constructor() {} } ok 15365 space-before-blocks valid class test { constructor(){} } ok 15366 space-before-blocks valid class test{ constructor() {} } ok 15367 space-before-blocks valid class test {} ok 15368 space-before-blocks valid class test{} ok 15369 space-before-blocks valid class test{} ok 15370 space-before-blocks valid class test {} ok 15371 space-before-blocks valid function a(){if(b) {}} ok 15372 space-before-blocks valid function a() {if(b) {}} ok 15373 space-before-blocks valid function a() {if(b){}} ok 15374 space-before-blocks valid function a() {if(b) {}} ok 15375 space-before-blocks valid class test { constructor(){if(a){}} } ok 15376 space-before-blocks valid class test { constructor() {if(a){}} } ok 15377 space-before-blocks valid class test { constructor(){if(a) {}} } ok 15378 space-before-blocks valid class test { constructor() {if(a) {}} } ok 15379 space-before-blocks valid function a(){if(b){}} ok 15380 space-before-blocks valid function a() {if(b){}} ok 15381 space-before-blocks valid function a(){if(b){}} ok 15382 space-before-blocks valid function a(){if(b) {}} ok 15383 space-before-blocks valid class test{ constructor(){if(a){}} } ok 15384 space-before-blocks valid class test{ constructor() {if(a){}} } ok 15385 space-before-blocks valid class test{ constructor(){if(a) {}} } ok 15386 space-before-blocks valid class test{ constructor() {if(a) {}} } ok 15387 space-before-blocks valid ()=>{}; ok 15388 space-before-blocks valid () => {}; ok 15389 space-before-blocks valid if(a) {}else{} ok 15390 space-before-blocks valid if(a){}else {} ok 15391 space-before-blocks valid try {}catch(a){} ok 15392 space-before-blocks valid export default class{} ok 15393 space-before-blocks invalid if(a){} ok 15394 space-before-blocks invalid if(a){} ok 15395 space-before-blocks invalid if(a) {} ok 15396 space-before-blocks invalid if(a) { function a() {} } ok 15397 space-before-blocks invalid if(a) { function a() {} } ok 15398 space-before-blocks invalid if(a) {} ok 15399 space-before-blocks invalid function a(){} ok 15400 space-before-blocks invalid function a() {} ok 15401 space-before-blocks invalid function a() {} ok 15402 space-before-blocks invalid function a(){ if (a){} } ok 15403 space-before-blocks invalid function a() { if (a) {} } ok 15404 space-before-blocks invalid function a(){} ok 15405 space-before-blocks invalid function a() {} ok 15406 space-before-blocks invalid switch(a){} ok 15407 space-before-blocks invalid switch(a) {} ok 15408 space-before-blocks invalid switch(a){} ok 15409 space-before-blocks invalid switch(a) {} ok 15410 space-before-blocks invalid switch(a.b()){ case 'foo': foo(); break; default: if (a) { bar(); } } ok 15411 space-before-blocks invalid switch(a.b()) { case 'foo': foo(); break; default: if (a){ bar(); } } ok 15412 space-before-blocks invalid try{}catch(a){} ok 15413 space-before-blocks invalid try {}catch(a) {} ok 15414 space-before-blocks invalid try {} catch(a){} ok 15415 space-before-blocks invalid try { function b() {} } catch(a) {} ok 15416 space-before-blocks invalid try{ function b(){} }catch(a){} ok 15417 space-before-blocks invalid for(;;){} ok 15418 space-before-blocks invalid for(;;) {} ok 15419 space-before-blocks invalid for(;;){} ok 15420 space-before-blocks invalid for(;;) {} ok 15421 space-before-blocks invalid for(;;){ function a(){} } ok 15422 space-before-blocks invalid for(;;) { function a() {} } ok 15423 space-before-blocks invalid while(a){} ok 15424 space-before-blocks invalid while(a) {} ok 15425 space-before-blocks invalid while(a){} ok 15426 space-before-blocks invalid while(a) {} ok 15427 space-before-blocks invalid while(a){ function a(){} } ok 15428 space-before-blocks invalid while(a) { function a() {} } ok 15429 space-before-blocks invalid export function a() { if(b) {} } ok 15430 space-before-blocks invalid export function a(){ if(b){} } ok 15431 space-before-blocks invalid export function a(){} ok 15432 space-before-blocks invalid export default function (a) {} ok 15433 space-before-blocks invalid export function a() {} ok 15434 space-before-blocks invalid class test{} ok 15435 space-before-blocks invalid class test{} ok 15436 space-before-blocks invalid class test{ constructor(){} } ok 15437 space-before-blocks invalid class test { constructor() {} } ok 15438 space-before-blocks invalid class test {} ok 15439 space-before-blocks invalid class test {} ok 15440 space-before-blocks invalid if(a){ function a(){} } ok 15441 space-before-blocks invalid if(a) { function a(){} } ok 15442 space-before-blocks invalid if(a){ function a(){} } ok 15443 space-before-blocks invalid if(a){ function a() {} } ok 15444 space-before-blocks invalid class test{ constructor(){} } ok 15445 space-before-blocks invalid class test{ constructor() {} } ok 15446 space-before-blocks invalid if(a){ function a() {} } ok 15447 space-before-blocks invalid if(a) { function a() {} } ok 15448 space-before-blocks invalid if(a) { function a(){} } ok 15449 space-before-blocks invalid if(a) { function a() {} } ok 15450 space-before-blocks invalid class test { constructor(){} } ok 15451 space-before-blocks invalid class test { constructor() {} } ok 15452 space-before-function-paren valid function foo () {} ok 15453 space-before-function-paren valid var foo = function () {} ok 15454 space-before-function-paren valid var bar = function foo () {} ok 15455 space-before-function-paren valid var obj = { get foo () {}, set foo (val) {} }; ok 15456 space-before-function-paren valid var obj = { foo () {} }; ok 15457 space-before-function-paren valid function* foo () {} ok 15458 space-before-function-paren valid var foo = function *() {}; ok 15459 space-before-function-paren valid function foo() {} ok 15460 space-before-function-paren valid var foo = function() {} ok 15461 space-before-function-paren valid var bar = function foo() {} ok 15462 space-before-function-paren valid var obj = { get foo() {}, set foo(val) {} }; ok 15463 space-before-function-paren valid var obj = { foo() {} }; ok 15464 space-before-function-paren valid function* foo() {} ok 15465 space-before-function-paren valid var foo = function*() {}; ok 15466 space-before-function-paren valid function foo() {} var bar = function () {} function* baz() {} var bat = function*() {}; var obj = { get foo() {}, set foo(val) {}, bar() {} }; ok 15467 space-before-function-paren valid function foo () {} var bar = function() {} function* baz () {} var bat = function* () {}; var obj = { get foo () {}, set foo (val) {}, bar () {} }; ok 15468 space-before-function-paren valid class Foo { constructor() {} *method() {} } ok 15469 space-before-function-paren valid class Foo { constructor () {} *method () {} } ok 15470 space-before-function-paren valid var foo = function() {} ok 15471 space-before-function-paren valid var foo = function () {} ok 15472 space-before-function-paren valid var bar = function foo() {} ok 15473 space-before-function-paren valid var bar = function foo () {} ok 15474 space-before-function-paren valid type TransformFunction = (el: ASTElement, code: string) => string; ok 15475 space-before-function-paren valid () => 1 ok 15476 space-before-function-paren valid async a => a ok 15477 space-before-function-paren valid async a => a ok 15478 space-before-function-paren valid async a => a ok 15479 space-before-function-paren valid async () => 1 ok 15480 space-before-function-paren valid async() => 1 ok 15481 space-before-function-paren valid async () => 1 ok 15482 space-before-function-paren valid async() => 1 ok 15483 space-before-function-paren valid async () => 1 ok 15484 space-before-function-paren valid async () => 1 ok 15485 space-before-function-paren valid async() => 1 ok 15486 space-before-function-paren invalid function foo() {} ok 15487 space-before-function-paren invalid function foo/* */() {} ok 15488 space-before-function-paren invalid var foo = function() {} ok 15489 space-before-function-paren invalid var bar = function foo() {} ok 15490 space-before-function-paren invalid var obj = { get foo() {}, set foo(val) {} }; ok 15491 space-before-function-paren invalid var obj = { foo() {} }; ok 15492 space-before-function-paren invalid function* foo() {} ok 15493 space-before-function-paren invalid function foo () {} ok 15494 space-before-function-paren invalid var foo = function () {} ok 15495 space-before-function-paren invalid var bar = function foo () {} ok 15496 space-before-function-paren invalid var obj = { get foo () {}, set foo (val) {} }; ok 15497 space-before-function-paren invalid var obj = { foo () {} }; ok 15498 space-before-function-paren invalid function* foo () {} ok 15499 space-before-function-paren invalid function foo () {} var bar = function() {} var obj = { get foo () {}, set foo (val) {}, bar () {} }; ok 15500 space-before-function-paren invalid class Foo { constructor () {} *method () {} } ok 15501 space-before-function-paren invalid var foo = { bar () {} } ok 15502 space-before-function-paren invalid function foo() {} var bar = function () {} var obj = { get foo() {}, set foo(val) {}, bar() {} }; ok 15503 space-before-function-paren invalid var foo = function() {} ok 15504 space-before-function-paren invalid var foo = function () {} ok 15505 space-before-function-paren invalid var bar = function foo() {} ok 15506 space-before-function-paren invalid var bar = function foo () {} ok 15507 space-before-function-paren invalid async() => 1 ok 15508 space-before-function-paren invalid async () => 1 ok 15509 space-before-function-paren invalid async() => 1 ok 15510 space-before-function-paren invalid async() => 1 ok 15511 space-before-function-paren invalid async () => 1 ok 15512 space-in-parens valid foo() ok 15513 space-in-parens valid foo( bar ) ok 15514 space-in-parens valid foo ( bar ) ok 15515 space-in-parens valid foo ( bar ) ok 15516 space-in-parens valid foo ( bar ) ok 15517 space-in-parens valid foo ( bar ) ok 15518 space-in-parens valid foo ( bar ) ok 15519 space-in-parens valid foo( bar ) ok 15520 space-in-parens valid foo ( bar ) ok 15521 space-in-parens valid var x = ( 1 + 2 ) * 3 ok 15522 space-in-parens valid var x = 'foo(bar)' ok 15523 space-in-parens valid var x = 'bar( baz )' ok 15524 space-in-parens valid var foo = `(bar)`; ok 15525 space-in-parens valid var foo = `(bar ${baz})`; ok 15526 space-in-parens valid var foo = `(bar ${( 1 + 2 )})`; ok 15527 space-in-parens valid bar() ok 15528 space-in-parens valid bar(baz) ok 15529 space-in-parens valid var x = (4 + 5) * 6 ok 15530 space-in-parens valid foo ( bar ) ok 15531 space-in-parens valid foo ( bar ) ok 15532 space-in-parens valid foo ( bar ) ok 15533 space-in-parens valid foo ( bar ) ok 15534 space-in-parens valid var foo = `( bar )`; ok 15535 space-in-parens valid var foo = `( bar ${baz} )`; ok 15536 space-in-parens valid var foo = `(bar ${(1 + 2)})`; ok 15537 space-in-parens valid foo( /* bar */ ) ok 15538 space-in-parens valid foo( /* bar */baz ) ok 15539 space-in-parens valid foo( /* bar */ baz ) ok 15540 space-in-parens valid foo( baz/* bar */ ) ok 15541 space-in-parens valid foo( baz /* bar */ ) ok 15542 space-in-parens valid foo(/* bar */) ok 15543 space-in-parens valid foo(/* bar */ baz) ok 15544 space-in-parens valid foo( //some comment bar ) ok 15545 space-in-parens valid foo(//some comment bar ) ok 15546 space-in-parens valid foo( //some comment bar ) ok 15547 space-in-parens valid foo({ bar: 'baz' }) ok 15548 space-in-parens valid foo( { bar: 'baz' } ) ok 15549 space-in-parens valid foo( 1, { bar: 'baz' }) ok 15550 space-in-parens valid foo({ bar: 'baz' }, 1 ) ok 15551 space-in-parens valid foo({ bar: 'baz', baz: 'bar' }) ok 15552 space-in-parens valid foo({ bar: 'baz' }) ok 15553 space-in-parens valid foo( { bar: 'baz' } ) ok 15554 space-in-parens valid foo(1, { bar: 'baz' } ) ok 15555 space-in-parens valid foo( { bar: 'baz' }, 1) ok 15556 space-in-parens valid foo( { bar: 'baz', baz: 'bar' } ) ok 15557 space-in-parens valid foo([ 1, 2 ]) ok 15558 space-in-parens valid foo( [ 1, 2 ] ) ok 15559 space-in-parens valid foo( 1, [ 1, 2 ]) ok 15560 space-in-parens valid foo([ 1, 2 ], 1 ) ok 15561 space-in-parens valid foo([ 1, 2 ]) ok 15562 space-in-parens valid foo([ 1, 2 ]) ok 15563 space-in-parens valid foo( [ 1, 2 ] ) ok 15564 space-in-parens valid foo(1, [ 1, 2 ] ) ok 15565 space-in-parens valid foo( [ 1, 2 ], 1) ok 15566 space-in-parens valid foo( [ 1, 2 ] ) ok 15567 space-in-parens valid foo(( 1 + 2 )) ok 15568 space-in-parens valid foo( ( 1 + 2 ) ) ok 15569 space-in-parens valid foo( 1 / ( 1 + 2 )) ok 15570 space-in-parens valid foo(( 1 + 2 ) / 1 ) ok 15571 space-in-parens valid foo(( 1 + 2 )) ok 15572 space-in-parens valid foo((1 + 2)) ok 15573 space-in-parens valid foo( (1 + 2) ) ok 15574 space-in-parens valid foo(1 / (1 + 2) ) ok 15575 space-in-parens valid foo( (1 + 2) / 1) ok 15576 space-in-parens valid foo( ( 1 + 2 ) ) ok 15577 space-in-parens valid foo() ok 15578 space-in-parens valid foo( ) ok 15579 space-in-parens valid foo( 1 + 2 ) ok 15580 space-in-parens valid foo() ok 15581 space-in-parens valid foo( ) ok 15582 space-in-parens valid foo( 1 + 2 ) ok 15583 space-in-parens valid foo({ bar: 'baz' }, [ 1, 2 ]) ok 15584 space-in-parens valid foo({ bar: 'baz' }, [ 1, 2 ]) ok 15585 space-in-parens valid foo(); bar({bar:'baz'}); baz([1,2]) ok 15586 space-in-parens valid foo( { bar: 'baz' }, [ 1, 2 ] ) ok 15587 space-in-parens valid foo( { bar: 'baz' }, [ 1, 2 ] ) ok 15588 space-in-parens valid foo( ); bar( {bar:'baz'} ); baz( [1,2] ) ok 15589 space-in-parens valid foo( { bar: 'baz' } ) ok 15590 space-in-parens valid foo( { bar: 'baz' } ) ok 15591 space-in-parens invalid foo( ) ok 15592 space-in-parens invalid foo( bar) ok 15593 space-in-parens invalid foo(bar) ok 15594 space-in-parens invalid var x = ( 1 + 2) * 3 ok 15595 space-in-parens invalid var x = (1 + 2 ) * 3 ok 15596 space-in-parens invalid foo (bar ) ok 15597 space-in-parens invalid bar(baz ) ok 15598 space-in-parens invalid bar( baz ) ok 15599 space-in-parens invalid var x = ( 4 + 5) * 6 ok 15600 space-in-parens invalid var x = (4 + 5 ) * 6 ok 15601 space-in-parens invalid foo(/* bar */) ok 15602 space-in-parens invalid foo(/* bar */baz ) ok 15603 space-in-parens invalid foo(/* bar */ baz ) ok 15604 space-in-parens invalid foo( baz/* bar */) ok 15605 space-in-parens invalid foo( baz /* bar */) ok 15606 space-in-parens invalid foo( /* bar */ ) ok 15607 space-in-parens invalid foo( /* bar */ baz) ok 15608 space-in-parens invalid foo({ bar: 'baz' }) ok 15609 space-in-parens invalid foo( { bar: 'baz' } ) ok 15610 space-in-parens invalid foo({ bar: 'baz' }) ok 15611 space-in-parens invalid foo( { bar: 'baz' } ) ok 15612 space-in-parens invalid foo( { bar: 'baz' }) ok 15613 space-in-parens invalid foo( { bar: 'baz' }) ok 15614 space-in-parens invalid foo({ bar: 'baz' } ) ok 15615 space-in-parens invalid foo({ bar: 'baz' } ) ok 15616 space-in-parens invalid foo([ 1, 2 ]) ok 15617 space-in-parens invalid foo( [ 1, 2 ] ) ok 15618 space-in-parens invalid foo([ 1, 2 ]) ok 15619 space-in-parens invalid foo( [ 1, 2 ] ) ok 15620 space-in-parens invalid foo([ 1, 2 ] ) ok 15621 space-in-parens invalid foo([ 1, 2 ] ) ok 15622 space-in-parens invalid foo( [ 1, 2 ]) ok 15623 space-in-parens invalid foo( [ 1, 2 ]) ok 15624 space-in-parens invalid (( 1 + 2 )) ok 15625 space-in-parens invalid ( ( 1 + 2 ) ) ok 15626 space-in-parens invalid ( ( 1 + 2 ) ) ok 15627 space-in-parens invalid ( ( 1 + 2 ) ) ok 15628 space-in-parens invalid ( ( 1 + 2 )) ok 15629 space-in-parens invalid ( (1 + 2)) ok 15630 space-in-parens invalid (( 1 + 2 ) ) ok 15631 space-in-parens invalid ((1 + 2) ) ok 15632 space-in-parens invalid var result = ( 1 / ( 1 + 2 ) ) + 3 ok 15633 space-in-parens invalid var result = (1 / (1 + 2)) + 3 ok 15634 space-in-parens invalid var result = ( 1 / ( 1 + 2)) + 3 ok 15635 space-in-parens invalid foo( ) ok 15636 space-in-parens invalid foo() ok 15637 space-in-parens invalid foo ( bar ) ok 15638 space-in-parens invalid var foo = `(bar ${(1 + 2 )})`; ok 15639 space-in-parens invalid var foo = `(bar ${(1 + 2 )})`; ok 15640 space-infix-ops valid a + b ok 15641 space-infix-ops valid a + ++b ok 15642 space-infix-ops valid a++ + b ok 15643 space-infix-ops valid a++ + ++b ok 15644 space-infix-ops valid a + b ok 15645 space-infix-ops valid (a) + (b) ok 15646 space-infix-ops valid ((a)) + ((b)) ok 15647 space-infix-ops valid (((a))) + (((b))) ok 15648 space-infix-ops valid a + +b ok 15649 space-infix-ops valid a + (b) ok 15650 space-infix-ops valid a + +(b) ok 15651 space-infix-ops valid a + (+(b)) ok 15652 space-infix-ops valid (a + b) + (c + d) ok 15653 space-infix-ops valid a = b ok 15654 space-infix-ops valid a ? b : c ok 15655 space-infix-ops valid var a = b ok 15656 space-infix-ops valid const my_object = {key: 'value'}; ok 15657 space-infix-ops valid var {a = 0} = bar; ok 15658 space-infix-ops valid function foo(a = 0) { } ok 15659 space-infix-ops valid a ** b ok 15660 space-infix-ops valid a|0 ok 15661 space-infix-ops valid a |0 ok 15662 space-infix-ops valid function foo(a: number = 0) { } ok 15663 space-infix-ops valid function foo(): Bar { } ok 15664 space-infix-ops valid var foo: Bar = ''; ok 15665 space-infix-ops valid const foo = function(a: number = 0): Bar { }; ok 15666 space-infix-ops valid type Foo<T> = T; ok 15667 space-infix-ops invalid a+b ok 15668 space-infix-ops invalid a +b ok 15669 space-infix-ops invalid a+ b ok 15670 space-infix-ops invalid a||b ok 15671 space-infix-ops invalid a ||b ok 15672 space-infix-ops invalid a|| b ok 15673 space-infix-ops invalid a=b ok 15674 space-infix-ops invalid a= b ok 15675 space-infix-ops invalid a =b ok 15676 space-infix-ops invalid a?b:c ok 15677 space-infix-ops invalid a?b : c ok 15678 space-infix-ops invalid a ? b:c ok 15679 space-infix-ops invalid a? b : c ok 15680 space-infix-ops invalid a ?b : c ok 15681 space-infix-ops invalid a ? b: c ok 15682 space-infix-ops invalid a ? b :c ok 15683 space-infix-ops invalid var a=b; ok 15684 space-infix-ops invalid var a= b; ok 15685 space-infix-ops invalid var a =b; ok 15686 space-infix-ops invalid var a = b, c=d; ok 15687 space-infix-ops invalid a| 0 ok 15688 space-infix-ops invalid var output = test || (test && test.value) ||(test2 && test2.value); ok 15689 space-infix-ops invalid var output = a ||(b && c.value) || (d && e.value); ok 15690 space-infix-ops invalid var output = a|| (b && c.value) || (d && e.value); ok 15691 space-infix-ops invalid const my_object={key: 'value'} ok 15692 space-infix-ops invalid var {a=0}=bar; ok 15693 space-infix-ops invalid function foo(a=0) { } ok 15694 space-infix-ops invalid a**b ok 15695 space-infix-ops invalid 'foo'in{} ok 15696 space-infix-ops invalid 'foo'instanceof{} ok 15697 space-infix-ops invalid var a: Foo= b; ok 15698 space-infix-ops invalid function foo(a: number=0): Foo { } ok 15699 space-unary-ops valid ++this.a ok 15700 space-unary-ops valid --this.a ok 15701 space-unary-ops valid this.a++ ok 15702 space-unary-ops valid this.a-- ok 15703 space-unary-ops valid foo .bar++ ok 15704 space-unary-ops valid foo.bar -- ok 15705 space-unary-ops valid delete foo.bar ok 15706 space-unary-ops valid delete foo["bar"] ok 15707 space-unary-ops valid delete foo.bar ok 15708 space-unary-ops valid delete(foo.bar) ok 15709 space-unary-ops valid new Foo ok 15710 space-unary-ops valid new Foo() ok 15711 space-unary-ops valid new [foo][0] ok 15712 space-unary-ops valid new[foo][0] ok 15713 space-unary-ops valid typeof foo ok 15714 space-unary-ops valid typeof{foo:true} ok 15715 space-unary-ops valid typeof {foo:true} ok 15716 space-unary-ops valid typeof (foo) ok 15717 space-unary-ops valid typeof(foo) ok 15718 space-unary-ops valid typeof!foo ok 15719 space-unary-ops valid void 0 ok 15720 space-unary-ops valid (void 0) ok 15721 space-unary-ops valid (void (0)) ok 15722 space-unary-ops valid void foo ok 15723 space-unary-ops valid void foo ok 15724 space-unary-ops valid void(foo) ok 15725 space-unary-ops valid -1 ok 15726 space-unary-ops valid !foo ok 15727 space-unary-ops valid !!foo ok 15728 space-unary-ops valid foo++ ok 15729 space-unary-ops valid foo ++ ok 15730 space-unary-ops valid ++foo ok 15731 space-unary-ops valid ++ foo ok 15732 space-unary-ops valid function *foo () { yield (0) } ok 15733 space-unary-ops valid function *foo() { yield +1 } ok 15734 space-unary-ops valid function *foo() { yield* 0 } ok 15735 space-unary-ops valid function *foo() { yield * 0 } ok 15736 space-unary-ops valid function *foo() { (yield)*0 } ok 15737 space-unary-ops valid function *foo() { (yield) * 0 } ok 15738 space-unary-ops valid function *foo() { yield*0 } ok 15739 space-unary-ops valid function *foo() { yield *0 } ok 15740 space-unary-ops valid async function foo() { await {foo: 1} } ok 15741 space-unary-ops valid async function foo() { await {bar: 2} } ok 15742 space-unary-ops valid async function foo() { await{baz: 3} } ok 15743 space-unary-ops valid async function foo() { await {qux: 4} } ok 15744 space-unary-ops valid async function foo() { await{foo: 5} } ok 15745 space-unary-ops valid foo++ ok 15746 space-unary-ops valid foo++ ok 15747 space-unary-ops valid ++foo ok 15748 space-unary-ops valid ++foo ok 15749 space-unary-ops valid !foo ok 15750 space-unary-ops valid !foo ok 15751 space-unary-ops valid new foo ok 15752 space-unary-ops valid new foo ok 15753 space-unary-ops valid function *foo () { yield(0) } ok 15754 space-unary-ops valid function *foo () { yield(0) } ok 15755 space-unary-ops invalid delete(foo.bar) ok 15756 space-unary-ops invalid delete(foo["bar"]); ok 15757 space-unary-ops invalid delete (foo.bar) ok 15758 space-unary-ops invalid new(Foo) ok 15759 space-unary-ops invalid new (Foo) ok 15760 space-unary-ops invalid new(Foo()) ok 15761 space-unary-ops invalid new [foo][0] ok 15762 space-unary-ops invalid typeof(foo) ok 15763 space-unary-ops invalid typeof (foo) ok 15764 space-unary-ops invalid typeof[foo] ok 15765 space-unary-ops invalid typeof [foo] ok 15766 space-unary-ops invalid typeof{foo:true} ok 15767 space-unary-ops invalid typeof {foo:true} ok 15768 space-unary-ops invalid typeof!foo ok 15769 space-unary-ops invalid void(0); ok 15770 space-unary-ops invalid void(foo); ok 15771 space-unary-ops invalid void[foo]; ok 15772 space-unary-ops invalid void{a:0}; ok 15773 space-unary-ops invalid void (foo) ok 15774 space-unary-ops invalid void [foo] ok 15775 space-unary-ops invalid ! foo ok 15776 space-unary-ops invalid !foo ok 15777 space-unary-ops invalid !! foo ok 15778 space-unary-ops invalid !!foo ok 15779 space-unary-ops invalid - 1 ok 15780 space-unary-ops invalid -1 ok 15781 space-unary-ops invalid foo++ ok 15782 space-unary-ops invalid foo ++ ok 15783 space-unary-ops invalid ++ foo ok 15784 space-unary-ops invalid ++foo ok 15785 space-unary-ops invalid foo .bar++ ok 15786 space-unary-ops invalid foo.bar -- ok 15787 space-unary-ops invalid + +foo ok 15788 space-unary-ops invalid + ++foo ok 15789 space-unary-ops invalid - -foo ok 15790 space-unary-ops invalid - --foo ok 15791 space-unary-ops invalid + -foo ok 15792 space-unary-ops invalid function *foo() { yield(0) } ok 15793 space-unary-ops invalid function *foo() { yield (0) } ok 15794 space-unary-ops invalid function *foo() { yield+0 } ok 15795 space-unary-ops invalid foo++ ok 15796 space-unary-ops invalid foo++ ok 15797 space-unary-ops invalid ++foo ok 15798 space-unary-ops invalid ++foo ok 15799 space-unary-ops invalid !foo ok 15800 space-unary-ops invalid !foo ok 15801 space-unary-ops invalid new(Foo) ok 15802 space-unary-ops invalid new(Foo) ok 15803 space-unary-ops invalid function *foo() { yield(0) } ok 15804 space-unary-ops invalid function *foo() { yield(0) } ok 15805 space-unary-ops invalid async function foo() { await{foo: 'bar'} } ok 15806 space-unary-ops invalid async function foo() { await{baz: 'qux'} } ok 15807 space-unary-ops invalid async function foo() { await {foo: 1} } ok 15808 space-unary-ops invalid async function foo() { await {bar: 2} } ok 15809 spaced-comment valid // A valid comment starting with space var a = 1; ok 15810 spaced-comment valid // A valid comment starting with tab var a = 1; ok 15811 spaced-comment valid //A valid comment NOT starting with space var a = 2; ok 15812 spaced-comment valid //----------------------- // A comment //----------------------- ok 15813 spaced-comment valid //----------------------- // A comment //----------------------- ok 15814 spaced-comment valid //=========== // A comment //************* ok 15815 spaced-comment valid // // A comment ok 15816 spaced-comment valid //!@!@!@ // A comment //!@ ok 15817 spaced-comment valid var a = 1; /**/ ok 15818 spaced-comment valid var a = 1; /**/ ok 15819 spaced-comment valid /***************** * A comment *****************/ ok 15820 spaced-comment valid /*++++++++++++++ * A comment +++++++++++++++++*/ ok 15821 spaced-comment valid /*++++++++++++++ + A comment * B comment - C comment ----------------*/ ok 15822 spaced-comment valid //!< docblock style comment ok 15823 spaced-comment valid //!< docblock style comment ok 15824 spaced-comment valid //---- // a comment //---- /// xmldoc style comment //!< docblock style comment ok 15825 spaced-comment valid /*
x*/ ok 15826 spaced-comment valid ///xmldoc style comment ok 15827 spaced-comment valid var a = 1; /* This is an example of a marker in a block comment subsequent lines do not count*/ ok 15828 spaced-comment valid /*! *comment */ ok 15829 spaced-comment valid /*! *comment */ ok 15830 spaced-comment valid /** *jsdoc */ ok 15831 spaced-comment valid /*global ABC*/ ok 15832 spaced-comment valid /*eslint-env node*/ ok 15833 spaced-comment valid /*eslint eqeqeq:0, curly: 2*/ ok 15834 spaced-comment valid /*eslint-disable no-alert, no-console */ alert() console.log() /*eslint-enable no-alert */ ok 15835 spaced-comment valid !/path/to/node var a = 3; ok 15836 spaced-comment valid !/path/to/node var a = 3; ok 15837 spaced-comment valid // ok 15838 spaced-comment valid // ok 15839 spaced-comment valid // space only at start; valid since balanced doesn't apply to line comments ok 15840 spaced-comment valid //space only at end; valid since balanced doesn't apply to line comments ok 15841 spaced-comment valid var a = 1; /* A valid comment starting with space */ ok 15842 spaced-comment valid var a = 1; /*A valid comment NOT starting with space */ ok 15843 spaced-comment valid function foo(/* height */a) { } ok 15844 spaced-comment valid function foo(/*height */a) { } ok 15845 spaced-comment valid function foo(a/* height */) { } ok 15846 spaced-comment valid /* * Test */ ok 15847 spaced-comment valid /* *Test */ ok 15848 spaced-comment valid /* *Test */ ok 15849 spaced-comment valid /* *Test */ ok 15850 spaced-comment valid /* *Test */ ok 15851 spaced-comment valid /** *jsdoc */ ok 15852 spaced-comment valid /** *jsdoc */ ok 15853 spaced-comment valid /** *jsdoc */ ok 15854 spaced-comment valid /** *jsdoc */ ok 15855 spaced-comment valid var a = 1; /* comment */ ok 15856 spaced-comment valid var a = 1; /*comment*/ ok 15857 spaced-comment valid function foo(/* height */a) { } ok 15858 spaced-comment valid function foo(/*height*/a) { } ok 15859 spaced-comment valid var a = 1; /**/ ok 15860 spaced-comment valid /***************** * A comment *****************/ ok 15861 spaced-comment valid /*! comment */ ok 15862 spaced-comment valid /*!comment*/ ok 15863 spaced-comment valid /*! *comment */ ok 15864 spaced-comment valid /*global ABC */ ok 15865 spaced-comment valid ///-------- /// test ///-------- ok 15866 spaced-comment valid ///-------- /// test ///-------- /* blah */ ok 15867 spaced-comment valid /***
*/ ok 15868 spaced-comment invalid //An invalid comment NOT starting with space var a = 1; ok 15869 spaced-comment invalid // An invalid comment starting with space var a = 2; ok 15870 spaced-comment invalid // An invalid comment starting with tab var a = 2; ok 15871 spaced-comment invalid //*********************- // Comment Block 3 //*********************** ok 15872 spaced-comment invalid //-=-=-=-=-=-= // A comment //-=-=-=-=-=-= ok 15873 spaced-comment invalid //!<docblock style comment ok 15874 spaced-comment invalid //!< docblock style comment ok 15875 spaced-comment invalid var a = 1; /* A valid comment starting with space */ ok 15876 spaced-comment invalid var a = 1; /**/ ok 15877 spaced-comment invalid var a = 1; /*A valid comment NOT starting with space */ ok 15878 spaced-comment invalid function foo(/* height */a) { } ok 15879 spaced-comment invalid function foo(/*height */a) { } ok 15880 spaced-comment invalid function foo(a/*height */) { } ok 15881 spaced-comment invalid /* *Test */ ok 15882 spaced-comment invalid //----------------------- // A comment //----------------------- ok 15883 spaced-comment invalid var a = 1; /**/ ok 15884 spaced-comment invalid //!< docblock style comment ok 15885 spaced-comment invalid /*! *comment */ ok 15886 spaced-comment invalid ///-------- /// test ///-------- /*/ blah *//*-----*/ ok 15887 spaced-comment invalid ///-------- /// test ///-------- /*/ blah */ /*-----*/ ok 15888 spaced-comment invalid var a = 1; /* A balanced comment starting with space*/ ok 15889 spaced-comment invalid var a = 1; /*A balanced comment NOT starting with space */ ok 15890 spaced-comment invalid function foo(/* height*/a) { } ok 15891 spaced-comment invalid function foo(/*height */a) { } ok 15892 spaced-comment invalid /*! comment*/ ok 15893 spaced-comment invalid /*!comment */ ok 15894 spaced-comment invalid !/path/to/node !/second/shebang var a = 3; ok 15895 spaced-comment invalid !/path/to/node !/second/shebang var a = 3; ok 15896 strict valid foo(); ok 15897 strict valid function foo() { return; } ok 15898 strict valid var foo = function() { return; }; ok 15899 strict valid foo(); 'use strict'; ok 15900 strict valid function foo() { bar(); 'use strict'; return; } ok 15901 strict valid var foo = function() { { 'use strict'; } return; }; ok 15902 strict valid (function() { bar('use strict'); return; }()); ok 15903 strict valid var fn = x => 1; ok 15904 strict valid var fn = x => { return; }; ok 15905 strict valid foo(); ok 15906 strict valid function foo() { return; } ok 15907 strict valid // Intentionally empty ok 15908 strict valid "use strict"; foo(); ok 15909 strict valid foo(); ok 15910 strict valid function foo() { return; } ok 15911 strict valid 'use strict'; function foo() { return; } ok 15912 strict valid 'use strict'; var foo = function() { return; }; ok 15913 strict valid 'use strict'; function foo() { bar(); 'use strict'; return; } ok 15914 strict valid 'use strict'; var foo = function() { bar(); 'use strict'; return; }; ok 15915 strict valid 'use strict'; function foo() { return function() { bar(); 'use strict'; return; }; } ok 15916 strict valid 'use strict'; var foo = () => { return () => { bar(); 'use strict'; return; }; } ok 15917 strict valid function foo() { 'use strict'; return; } ok 15918 strict valid function foo() { return; } ok 15919 strict valid function foo() { return; } ok 15920 strict valid var foo = function() { return; } ok 15921 strict valid var foo = function() { 'use strict'; return; } ok 15922 strict valid function foo() { 'use strict'; return; } var bar = function() { 'use strict'; bar(); }; ok 15923 strict valid var foo = function() { 'use strict'; function bar() { return; } bar(); }; ok 15924 strict valid var foo = () => { 'use strict'; var bar = () => 1; bar(); }; ok 15925 strict valid var foo = () => { var bar = () => 1; bar(); }; ok 15926 strict valid class A { constructor() { } } ok 15927 strict valid class A { foo() { } } ok 15928 strict valid class A { foo() { function bar() { } } } ok 15929 strict valid (function() { 'use strict'; function foo(a = 0) { } }()) ok 15930 strict valid function foo() { 'use strict'; return; } ok 15931 strict valid 'use strict'; function foo() { return; } ok 15932 strict valid function foo() { return; } ok 15933 strict valid function foo() { return; } ok 15934 strict valid function foo() { 'use strict'; return; } ok 15935 strict valid 'use strict'; function foo() { return; } ok 15936 strict valid function foo() { return; } ok 15937 strict valid function foo() { return; } ok 15938 strict invalid "use strict"; foo(); ok 15939 strict invalid function foo() { 'use strict'; return; } ok 15940 strict invalid var foo = function() { 'use strict'; return; }; ok 15941 strict invalid function foo() { return function() { 'use strict'; return; }; } ok 15942 strict invalid 'use strict'; function foo() { "use strict"; return; } ok 15943 strict invalid "use strict"; foo(); ok 15944 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15945 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15946 strict invalid foo(); ok 15947 strict invalid function foo() { 'use strict'; return; } ok 15948 strict invalid var foo = function() { 'use strict'; return; } ok 15949 strict invalid var foo = () => { 'use strict'; return () => 1; } ok 15950 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15951 strict invalid 'use strict'; var foo = function() { 'use strict'; return; }; ok 15952 strict invalid 'use strict'; 'use strict'; foo(); ok 15953 strict invalid 'use strict'; foo(); ok 15954 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15955 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15956 strict invalid 'use strict'; foo(); ok 15957 strict invalid 'use strict'; (function() { 'use strict'; return true; }()); ok 15958 strict invalid (function() { 'use strict'; function f() { 'use strict'; return } return true; }()); ok 15959 strict invalid (function() { return true; }()); ok 15960 strict invalid (() => { return true; })(); ok 15961 strict invalid (() => true)(); ok 15962 strict invalid var foo = function() { foo(); 'use strict'; return; }; function bar() { foo(); 'use strict'; } ok 15963 strict invalid function foo() { 'use strict'; 'use strict'; return; } ok 15964 strict invalid var foo = function() { 'use strict'; 'use strict'; return; } ok 15965 strict invalid var foo = function() { 'use strict'; return; } ok 15966 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15967 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15968 strict invalid function foo() { return function() { 'use strict'; return; }; } ok 15969 strict invalid var foo = function() { function bar() { 'use strict'; return; } return; } ok 15970 strict invalid function foo() { 'use strict'; return; } var bar = function() { return; }; ok 15971 strict invalid var foo = function() { 'use strict'; return; }; function bar() { return; }; ok 15972 strict invalid function foo() { 'use strict'; return function() { 'use strict'; 'use strict'; return; }; } ok 15973 strict invalid var foo = function() { 'use strict'; function bar() { 'use strict'; 'use strict'; return; } } ok 15974 strict invalid var foo = () => { return; }; ok 15975 strict invalid class A { constructor() { "use strict"; } } ok 15976 strict invalid class A { foo() { "use strict"; } } ok 15977 strict invalid class A { foo() { function bar() { "use strict"; } } } ok 15978 strict invalid 'use strict'; function foo() { return; } ok 15979 strict invalid function foo() { 'use strict'; return; } ok 15980 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15981 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15982 strict invalid 'use strict'; function foo() { return; } ok 15983 strict invalid function foo() { return; } ok 15984 strict invalid function foo() { 'use strict'; return; } ok 15985 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15986 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 15987 strict invalid function foo(a = 0) { 'use strict' } ok 15988 strict invalid (function() { 'use strict'; function foo(a = 0) { 'use strict' } }()) ok 15989 strict invalid function foo(a = 0) { 'use strict' } ok 15990 strict invalid 'use strict'; function foo(a = 0) { 'use strict' } ok 15991 strict invalid function foo(a = 0) { 'use strict' } ok 15992 strict invalid function foo(a = 0) { 'use strict' } ok 15993 strict invalid 'use strict'; function foo(a = 0) { 'use strict' } ok 15994 strict invalid function foo(a = 0) { 'use strict' } ok 15995 strict invalid (function() { 'use strict'; function foo(a = 0) { 'use strict' } }()) ok 15996 strict invalid function foo(a = 0) { } ok 15997 strict invalid (function() { function foo(a = 0) { } }()) ok 15998 switch-colon-spacing valid switch(a){} ok 15999 switch-colon-spacing valid ({foo:1,bar : 2}); ok 16000 switch-colon-spacing valid A:foo(); B : foo(); ok 16001 switch-colon-spacing valid switch(a){case 0: break;} ok 16002 switch-colon-spacing valid switch(a){case 0:} ok 16003 switch-colon-spacing valid switch(a){case 0 : break;} ok 16004 switch-colon-spacing valid switch(a){default: break;} ok 16005 switch-colon-spacing valid switch(a){default:} ok 16006 switch-colon-spacing valid switch(a){default : break;} ok 16007 switch-colon-spacing valid switch(a){case 0:break;} ok 16008 switch-colon-spacing valid switch(a){case 0:} ok 16009 switch-colon-spacing valid switch(a){case 0 : break;} ok 16010 switch-colon-spacing valid switch(a){default:break;} ok 16011 switch-colon-spacing valid switch(a){default:} ok 16012 switch-colon-spacing valid switch(a){default : break;} ok 16013 switch-colon-spacing valid switch(a){case 0: break;} ok 16014 switch-colon-spacing valid switch(a){case 0:} ok 16015 switch-colon-spacing valid switch(a){case 0 : break;} ok 16016 switch-colon-spacing valid switch(a){default: break;} ok 16017 switch-colon-spacing valid switch(a){default:} ok 16018 switch-colon-spacing valid switch(a){default : break;} ok 16019 switch-colon-spacing valid switch(a){case 0 :break;} ok 16020 switch-colon-spacing valid switch(a){case 0 :} ok 16021 switch-colon-spacing valid switch(a){case 0 : break;} ok 16022 switch-colon-spacing valid switch(a){default :break;} ok 16023 switch-colon-spacing valid switch(a){default :} ok 16024 switch-colon-spacing valid switch(a){default : break;} ok 16025 switch-colon-spacing valid switch(a){case 0 : break;} ok 16026 switch-colon-spacing valid switch(a){case 0 :} ok 16027 switch-colon-spacing valid switch(a){case 0 : break;} ok 16028 switch-colon-spacing valid switch(a){default : break;} ok 16029 switch-colon-spacing valid switch(a){default :} ok 16030 switch-colon-spacing valid switch(a){default : break;} ok 16031 switch-colon-spacing invalid switch(a){case 0 :break;} ok 16032 switch-colon-spacing invalid switch(a){default :break;} ok 16033 switch-colon-spacing invalid switch(a){case 0 : break;} ok 16034 switch-colon-spacing invalid switch(a){default : break;} ok 16035 switch-colon-spacing invalid switch(a){case 0 :break;} ok 16036 switch-colon-spacing invalid switch(a){default :break;} ok 16037 switch-colon-spacing invalid switch(a){case 0: break;} ok 16038 switch-colon-spacing invalid switch(a){default: break;} ok 16039 switch-colon-spacing invalid switch(a){case 0:break;} ok 16040 switch-colon-spacing invalid switch(a){default:break;} ok 16041 switch-colon-spacing invalid switch(a){case 0 /**/ :break;} ok 16042 switch-colon-spacing invalid switch(a){case 0 :/**/break;} ok 16043 switch-colon-spacing invalid switch(a){case (0) :break;} ok 16044 symbol-description valid Symbol("Foo"); ok 16045 symbol-description valid var foo = "foo"; Symbol(foo); ok 16046 symbol-description valid var Symbol = function () {}; Symbol(); ok 16047 symbol-description valid Symbol(); var Symbol = function () {}; ok 16048 symbol-description valid function bar() { var Symbol = function () {}; Symbol(); } ok 16049 symbol-description valid function bar(Symbol) { Symbol(); } ok 16050 symbol-description invalid Symbol(); ok 16051 symbol-description invalid Symbol(); Symbol = function () {}; ok 16052 template-curly-spacing valid { foo } ok 16053 template-curly-spacing valid `${foo} ${bar}` ok 16054 template-curly-spacing valid `${foo} ${bar} ${ baz }` ok 16055 template-curly-spacing valid `${ foo } ${ bar } ${ baz }` ok 16056 template-curly-spacing valid tag`${foo} ${bar}` ok 16057 template-curly-spacing valid tag`${foo} ${bar} ${ baz }` ok 16058 template-curly-spacing valid tag`${ foo } ${ bar } ${ baz }` ok 16059 template-curly-spacing invalid `${ foo } ${ bar }` ok 16060 template-curly-spacing invalid `${ foo } ${ bar }` ok 16061 template-curly-spacing invalid `${foo} ${bar}` ok 16062 template-curly-spacing invalid tag`${ foo } ${ bar }` ok 16063 template-curly-spacing invalid tag`${ foo } ${ bar }` ok 16064 template-curly-spacing invalid tag`${foo} ${bar}` ok 16065 template-tag-spacing valid tag`name` ok 16066 template-tag-spacing valid tag`name` ok 16067 template-tag-spacing valid tag `name` ok 16068 template-tag-spacing valid tag`hello ${name}` ok 16069 template-tag-spacing valid tag`hello ${name}` ok 16070 template-tag-spacing valid tag `hello ${name}` ok 16071 template-tag-spacing valid tag/*here's a comment*/`Hello world` ok 16072 template-tag-spacing valid tag/*here's a comment*/`Hello world` ok 16073 template-tag-spacing valid tag /*here's a comment*/`Hello world` ok 16074 template-tag-spacing valid tag/*here's a comment*/ `Hello world` ok 16075 template-tag-spacing valid new tag`name` ok 16076 template-tag-spacing valid new tag`name` ok 16077 template-tag-spacing valid new tag `name` ok 16078 template-tag-spacing valid new tag`hello ${name}` ok 16079 template-tag-spacing valid new tag`hello ${name}` ok 16080 template-tag-spacing valid new tag `hello ${name}` ok 16081 template-tag-spacing valid (tag)`name` ok 16082 template-tag-spacing valid (tag)`name` ok 16083 template-tag-spacing valid (tag) `name` ok 16084 template-tag-spacing valid (tag)`hello ${name}` ok 16085 template-tag-spacing valid (tag)`hello ${name}` ok 16086 template-tag-spacing valid (tag) `hello ${name}` ok 16087 template-tag-spacing valid new (tag)`name` ok 16088 template-tag-spacing valid new (tag)`name` ok 16089 template-tag-spacing valid new (tag) `name` ok 16090 template-tag-spacing valid new (tag)`hello ${name}` ok 16091 template-tag-spacing valid new (tag)`hello ${name}` ok 16092 template-tag-spacing valid new (tag) `hello ${name}` ok 16093 template-tag-spacing invalid tag `name` ok 16094 template-tag-spacing invalid tag `name` ok 16095 template-tag-spacing invalid tag`name` ok 16096 template-tag-spacing invalid tag /*here's a comment*/`Hello world` ok 16097 template-tag-spacing invalid tag/*here's a comment*/ `Hello world` ok 16098 template-tag-spacing invalid tag/*here's a comment*/`Hello world` ok 16099 template-tag-spacing invalid tag // here's a comment `bar` ok 16100 template-tag-spacing invalid tag // here's a comment `bar` ok 16101 template-tag-spacing invalid tag `hello ${name}` ok 16102 template-tag-spacing invalid tag `hello ${name}` ok 16103 template-tag-spacing invalid tag`hello ${name}` ok 16104 template-tag-spacing invalid new tag `name` ok 16105 template-tag-spacing invalid new tag `name` ok 16106 template-tag-spacing invalid new tag`name` ok 16107 template-tag-spacing invalid new tag `hello ${name}` ok 16108 template-tag-spacing invalid new tag `hello ${name}` ok 16109 template-tag-spacing invalid new tag`hello ${name}` ok 16110 template-tag-spacing invalid (tag) `name` ok 16111 template-tag-spacing invalid (tag) `name` ok 16112 template-tag-spacing invalid (tag)`name` ok 16113 template-tag-spacing invalid (tag) `hello ${name}` ok 16114 template-tag-spacing invalid (tag) `hello ${name}` ok 16115 template-tag-spacing invalid (tag)`hello ${name}` ok 16116 template-tag-spacing invalid new (tag) `name` ok 16117 template-tag-spacing invalid new (tag) `name` ok 16118 template-tag-spacing invalid new (tag)`name` ok 16119 template-tag-spacing invalid new (tag) `hello ${name}` ok 16120 template-tag-spacing invalid new (tag) `hello ${name}` ok 16121 template-tag-spacing invalid new (tag)`hello ${name}` ok 16122 unicode-bom valid  var a = 123; ok 16123 unicode-bom valid var a = 123; ok 16124 unicode-bom valid var a = 123;  ok 16125 unicode-bom invalid var a = 123; ok 16126 unicode-bom invalid // here's a comment var a = 123; ok 16127 unicode-bom invalid  var a = 123; ok 16128 unicode-bom invalid  var a = 123; ok 16129 use-isnan valid var x = NaN; ok 16130 use-isnan valid isNaN(NaN) === true; ok 16131 use-isnan valid isNaN(123) !== true; ok 16132 use-isnan valid Number.isNaN(NaN) === true; ok 16133 use-isnan valid Number.isNaN(123) !== true; ok 16134 use-isnan valid foo(NaN + 1); ok 16135 use-isnan valid foo(1 + NaN); ok 16136 use-isnan valid foo(NaN - 1) ok 16137 use-isnan valid foo(1 - NaN) ok 16138 use-isnan valid foo(NaN * 2) ok 16139 use-isnan valid foo(2 * NaN) ok 16140 use-isnan valid foo(NaN / 2) ok 16141 use-isnan valid foo(2 / NaN) ok 16142 use-isnan valid var x; if (x = NaN) { } ok 16143 use-isnan invalid 123 == NaN; ok 16144 use-isnan invalid 123 === NaN; ok 16145 use-isnan invalid NaN === "abc"; ok 16146 use-isnan invalid NaN == "abc"; ok 16147 use-isnan invalid 123 != NaN; ok 16148 use-isnan invalid 123 !== NaN; ok 16149 use-isnan invalid NaN !== "abc"; ok 16150 use-isnan invalid NaN != "abc"; ok 16151 use-isnan invalid NaN < "abc"; ok 16152 use-isnan invalid "abc" < NaN; ok 16153 use-isnan invalid NaN > "abc"; ok 16154 use-isnan invalid "abc" > NaN; ok 16155 use-isnan invalid NaN <= "abc"; ok 16156 use-isnan invalid "abc" <= NaN; ok 16157 use-isnan invalid NaN >= "abc"; ok 16158 use-isnan invalid "abc" >= NaN; ok 16159 valid-jsdoc valid /** * Description * @param {Object[]} screenings Array of screenings. * @param {Number} screenings[].timestamp its a time stamp @return {void} */ function foo(){} ok 16160 valid-jsdoc valid /** * Description */ var x = new Foo(function foo(){}) ok 16161 valid-jsdoc valid /** * Description * @returns {void} */ function foo(){} ok 16162 valid-jsdoc valid /** * Description * @returns {undefined} */ function foo(){} ok 16163 valid-jsdoc valid /** * Description * @alias Testtest * @returns {void} */ function foo(){} ok 16164 valid-jsdoc valid /** * Description *@extends MyClass * @returns {void} */ function foo(){} ok 16165 valid-jsdoc valid /** * Description * @constructor */ function Foo(){} ok 16166 valid-jsdoc valid /** * Description * @class */ function Foo(){} ok 16167 valid-jsdoc valid /** * Description * @param {string} p bar * @returns {string} desc */ function foo(p){} ok 16168 valid-jsdoc valid /** * Description * @arg {string} p bar * @returns {string} desc */ function foo(p){} ok 16169 valid-jsdoc valid /** * Description * @argument {string} p bar * @returns {string} desc */ function foo(p){} ok 16170 valid-jsdoc valid /** * Description * @param {string} [p] bar * @returns {string} desc */ function foo(p){} ok 16171 valid-jsdoc valid /** * Description * @param {Object} p bar * @param {string} p.name bar * @returns {string} desc */ Foo.bar = function(p){}; ok 16172 valid-jsdoc valid (function(){ /** * Description * @param {string} p bar * @returns {string} desc */ function foo(p){} }()) ok 16173 valid-jsdoc valid var o = { /** * Description * @param {string} p bar * @returns {string} desc */ foo: function(p){} }; ok 16174 valid-jsdoc valid /** * Description * @param {Object} p bar * @param {string[]} p.files qux * @param {Function} cb baz * @returns {void} */ function foo(p, cb){} ok 16175 valid-jsdoc valid /** * Description * @override */ function foo(arg1, arg2){ return ''; } ok 16176 valid-jsdoc valid /** * Description * @inheritdoc */ function foo(arg1, arg2){ return ''; } ok 16177 valid-jsdoc valid /** * Description * @inheritDoc */ function foo(arg1, arg2){ return ''; } ok 16178 valid-jsdoc valid /** * Description * @Returns {void} */ function foo(){} ok 16179 valid-jsdoc valid call( /** * Doc for a function expression in a call expression. * @param {string} argName This is the param description. * @return {string} This is the return description. */ function(argName) { return 'the return'; } ); ok 16180 valid-jsdoc valid /** * Create a new thing. */ var thing = new Thing({ foo: function() { return 'bar'; } }); ok 16181 valid-jsdoc valid /** * Create a new thing. */ var thing = new Thing({ /** * @return {string} A string. */ foo: function() { return 'bar'; } }); ok 16182 valid-jsdoc valid /** * Description * @return {void} */ function foo(){} ok 16183 valid-jsdoc valid /** * Description * @param {string} p bar */ Foo.bar = (p) => {}; ok 16184 valid-jsdoc valid /** * Description * @param {string} p bar */ Foo.bar = function({p}){}; ok 16185 valid-jsdoc valid /** * Description * @param {string} p bar */ Foo.bar = function(p){}; ok 16186 valid-jsdoc valid /** * Description * @param {string} p mytest */ Foo.bar = function(p){var t = function(){return p;}}; ok 16187 valid-jsdoc valid /** * Description * @param {string} p mytest */ Foo.bar = function(p){function func(){return p;}}; ok 16188 valid-jsdoc valid /** * Description * @param {string} p mytest */ Foo.bar = function(p){var t = false; if(t){ return; }}; ok 16189 valid-jsdoc valid /** * Description * @param {string} p mytest * @returns {void} */ Foo.bar = function(p){var t = false; if(t){ return; }}; ok 16190 valid-jsdoc valid /** * Description * @param {string} p mytest */ Foo.bar = function(p){var t = function(){function name(){return p;}}}; ok 16191 valid-jsdoc valid /** * Description * @param {string} p mytest */ Foo.bar = function(p){var t = function(){function name(){}; return name;}}; ok 16192 valid-jsdoc valid /** * Description * @param {string} p * @returns {void}*/ Foo.bar = function(p){var t = function(){function name(){}; return name;}}; ok 16193 valid-jsdoc valid /** * Description * @param {string} p mytest * @returns {Object}*/ Foo.bar = function(p){return name;}; ok 16194 valid-jsdoc valid var obj = { /** * Getter * @type {string} */ get location() { return this._location; } } ok 16195 valid-jsdoc valid var obj = { /** * Setter * @param {string} value The location */ set location(value) { this._location = value; } } ok 16196 valid-jsdoc valid /** * Description for A. */ class A { /** * Description for constructor. * @param {object[]} xs - xs */ constructor(xs) { /** * Description for this.xs; * @type {object[]} */ this.xs = xs.filter(x => x != null); } } ok 16197 valid-jsdoc valid /** @returns {object} foo */ var foo = () => bar(); ok 16198 valid-jsdoc valid /** @returns {object} foo */ var foo = () => { return bar(); }; ok 16199 valid-jsdoc valid /** foo */ var foo = () => { bar(); }; ok 16200 valid-jsdoc valid /** * Start with caps and end with period. * @return {void} */ function foo(){} ok 16201 valid-jsdoc valid /** Foo @return {void} Foo */ function foo(){} ok 16202 valid-jsdoc valid /** Foo @return Foo */ function foo(){} ok 16203 valid-jsdoc valid /** * Description * @param p bar * @returns {void}*/ Foo.bar = function(p){var t = function(){function name(){}; return name;}}; ok 16204 valid-jsdoc valid /** * A thing interface. * @interface */ function Thing() {} ok 16205 valid-jsdoc valid /** * Description for A. */ class A { /** * Description for constructor. * @param {object[]} xs - xs */ constructor(xs) { this.a = xs; } } ok 16206 valid-jsdoc valid /** * Description for A. */ class A { /** * Description for method. * @param {object[]} xs - xs */ print(xs) { this.a = xs; } } ok 16207 valid-jsdoc valid /** * Description for A. */ class A { /** * Description for constructor. * @param {object[]} xs - xs * @returns {void} */ constructor(xs) { this.a = xs; } /** * Description for method. * @param {object[]} xs - xs * @returns {void} */ print(xs) { this.a = xs; } } ok 16208 valid-jsdoc valid /** * Use of this with a 'namepath'. * @this some.name */ function foo() {} ok 16209 valid-jsdoc valid /** * Use of this with a type expression. * @this {some.name} */ function foo() {} ok 16210 valid-jsdoc valid /** * An async function. Options requires return. * @returns {Promise} that is empty */ async function a() {} ok 16211 valid-jsdoc valid /** * An async function. Options do not require return. * @returns {Promise} that is empty */ async function a() {} ok 16212 valid-jsdoc valid /** * An async function. Options do not require return. */ async function a() {} ok 16213 valid-jsdoc valid /** * Foo * @param {Array.<*>} hi - desc * @returns {*} returns a node */ function foo(hi){} ok 16214 valid-jsdoc valid /** * Foo * @param {string} hi - desc * @returns {ASTNode} returns a node */ function foo(hi){} ok 16215 valid-jsdoc valid /** * Foo * @param {{20:string}} hi - desc * @returns {Astnode} returns a node */ function foo(hi){} ok 16216 valid-jsdoc valid /** * Foo * @param {{String:foo}} hi - desc * @returns {ASTNode} returns a node */ function foo(hi){} ok 16217 valid-jsdoc valid /** * Foo * @param {String|number|Test} hi - desc * @returns {Astnode} returns a node */ function foo(hi){} ok 16218 valid-jsdoc valid /** * Foo * @param {Array.<string>} hi - desc * @returns {Astnode} returns a node */ function foo(hi){} ok 16219 valid-jsdoc valid /** * Test dash and slash. * @extends module:stb/emitter~Emitter */ function foo() {} ok 16220 valid-jsdoc valid /** * Test dash and slash. * @requires module:config * @requires module:modules/notifications */ function foo() {} ok 16221 valid-jsdoc valid /** * Foo * @module module-name */ function foo() {} ok 16222 valid-jsdoc valid /** * Foo * @alias module:module-name */ function foo() {} ok 16223 valid-jsdoc valid /** * Foo * @param {Array.<string>} hi - desc * @returns {Array.<string|number>} desc */ function foo(hi){} ok 16224 valid-jsdoc valid /** * Foo * @param {Array.<string|number>} hi - desc * @returns {Array.<string>} desc */ function foo(hi){} ok 16225 valid-jsdoc valid /** * Foo * @param {Array.<{id: number, votes: number}>} hi - desc * @returns {Array.<{summary: string}>} desc */ function foo(hi){} ok 16226 valid-jsdoc valid /** * Foo * @param {Array.<[string, number]>} hi - desc * @returns {Array.<[string, string]>} desc */ function foo(hi){} ok 16227 valid-jsdoc valid /** * Foo * @param {Object<string,Object<string, number>>} hi - because why not * @returns {Boolean} desc */ function foo(hi){} ok 16228 valid-jsdoc valid /** * Description * @param {string} a bar * @returns {string} desc */ function foo(a = 1){} ok 16229 valid-jsdoc valid /** * Description * @param {string} b bar * @param {string} a bar * @returns {string} desc */ function foo(b, a = 1){} ok 16230 valid-jsdoc valid /** * Description * @abstract * @returns {Number} desc */ function foo(){ throw new Error('Not Implemented'); } ok 16231 valid-jsdoc valid /** * Description * @return {Number} desc * @constructor * @override * @abstract * @interface * @param {string} hi - desc */ function foo(hi){ return 1; } ok 16232 valid-jsdoc valid /** * Description * @returns {Number} desc * @class * @inheritdoc * @virtual * @interface * @param {string} hi - desc */ function foo(hi){ return 1; } ok 16233 valid-jsdoc valid /** * Description * @return {Number} desc * @constructor * @override * @abstract * @interface * @arg {string} hi - desc */ function foo(hi){ return 1; } ok 16234 valid-jsdoc valid /** * Description * @returns {Number} desc * @class * @inheritdoc * @virtual * @interface * @arg {string} hi - desc */ function foo(hi){ return 1; } ok 16235 valid-jsdoc valid /** * Description * @return {Number} desc * @constructor * @override * @abstract * @interface * @argument {string} hi - desc */ function foo(hi){ return 1; } ok 16236 valid-jsdoc valid /** * Description * @returns {Number} desc * @class * @inheritdoc * @virtual * @interface * @argument {string} hi - desc */ function foo(hi){ return 1; } ok 16237 valid-jsdoc valid /** * Description * @constructor * @override * @abstract * @interface * @param {string} hi - desc * @return {Number} desc */ function foo(hi){ return 1; } ok 16238 valid-jsdoc valid /** * Description * @class * @inheritdoc * @virtual * @interface * @arg {string} hi - desc * @return {Number} desc */ function foo(hi){ return 1; } ok 16239 valid-jsdoc valid /** * Description * @argument {string} hi - desc * @return {Number} desc */ function foo(hi){ return 1; } ok 16240 valid-jsdoc valid /** * Description * @constructor * @override * @abstract * @interface * @param {string} hi - desc * @returns {Number} desc */ function foo(hi){ return 1; } ok 16241 valid-jsdoc valid /** * Description * @class * @inheritdoc * @virtual * @interface * @arg {string} hi - desc * @returns {Number} desc */ function foo(hi){ return 1; } ok 16242 valid-jsdoc valid /** * Description * @argument {string} hi - desc * @returns {Number} desc */ function foo(hi){ return 1; } ok 16243 valid-jsdoc valid /** * Description * @override * @abstract * @interface * @param {string} hi - desc * @return {Number} desc * @constructor */ function foo(hi){ return 1; } ok 16244 valid-jsdoc valid /** * Description * @inheritdoc * @virtual * @interface * @arg {string} hi - desc * @returns {Number} desc * @constructor */ function foo(hi){ return 1; } ok 16245 valid-jsdoc valid /** * Description * @argument {string} hi - desc * @constructor */ function foo(hi){} ok 16246 valid-jsdoc valid /** * Description * @override * @abstract * @interface * @param {string} hi - desc * @return {Number} desc * @class */ function foo(hi){ return 1; } ok 16247 valid-jsdoc valid /** * Description * @inheritdoc * @virtual * @interface * @arg {string} hi - desc * @returns {Number} desc * @class */ function foo(hi){ return 1; } ok 16248 valid-jsdoc valid /** * Description * @argument {string} hi - desc * @class */ function foo(hi){} ok 16249 valid-jsdoc valid /** * Description * @abstract * @interface * @param {string} hi - desc * @return {Number} desc * @constructor * @override */ function foo(hi){ return 1; } ok 16250 valid-jsdoc valid /** * Description * @virtual * @interface * @arg {string} hi - desc * @returns {Number} desc * @class * @override */ function foo(hi){ return 1; } ok 16251 valid-jsdoc valid /** * Description * @argument {string} hi - desc * @override */ function foo(hi){} ok 16252 valid-jsdoc valid /** * Description * @abstract * @interface * @param {string} hi - desc * @return {Number} desc * @constructor * @inheritdoc */ function foo(hi){ return 1; } ok 16253 valid-jsdoc valid /** * Description * @virtual * @interface * @arg {string} hi - desc * @returns {Number} desc * @class * @inheritdoc */ function foo(hi){ return 1; } ok 16254 valid-jsdoc valid /** * Description * @argument {string} hi - desc * @inheritdoc */ function foo(hi){} ok 16255 valid-jsdoc valid /** * Description * @interface * @param {string} hi - desc * @return {Number} desc * @constructor * @override * @abstract */ function foo(hi){ return 1; } ok 16256 valid-jsdoc valid /** * Description * @interface * @arg {string} hi - desc * @returns {Number} desc * @class * @override * @abstract */ function foo(hi){ return 1; } ok 16257 valid-jsdoc valid /** * Description * @argument {string} hi - desc * @abstract */ function foo(hi){} ok 16258 valid-jsdoc valid /** * Description * @interface * @param {string} hi - desc * @return {Number} desc * @constructor * @override * @virtual */ function foo(hi){ return 1; } ok 16259 valid-jsdoc valid /** * Description * @interface * @arg {string} hi - desc * @returns {Number} desc * @class * @override * @virtual */ function foo(hi){ return 1; } ok 16260 valid-jsdoc valid /** * Description * @argument {string} hi - desc * @virtual */ function foo(hi){} ok 16261 valid-jsdoc valid /** * Description * @param {string} hi - desc * @return {Number} desc * @constructor * @override * @abstract * @interface */ function foo(hi){ return 1; } ok 16262 valid-jsdoc valid /** * Description * @arg {string} hi - desc * @returns {Number} desc * @class * @override * @virtual * @interface */ function foo(hi){ return 1; } ok 16263 valid-jsdoc valid /** * Description * @argument {string} hi - desc * @interface */ function foo(hi){} ok 16264 valid-jsdoc valid /** * Description * @virtual * @returns {Number} desc */ function foo(){ throw new Error('Not Implemented'); } ok 16265 valid-jsdoc valid /** * Description * @abstract * @returns {Number} desc */ function foo(){ throw new Error('Not Implemented'); } ok 16266 valid-jsdoc valid /** * Description * @abstract * @returns {Number} desc */ function foo(){} ok 16267 valid-jsdoc valid /** * @param {string} a - a. * @param {object} [obj] - obj. * @param {string} obj.b - b. * @param {string} obj.c - c. * @returns {void} */ function foo(a, {b, c} = {}) { // empty } ok 16268 valid-jsdoc valid /** * @param {string} a - a. * @param {any[]} [list] - list. * @returns {void} */ function foo(a, [b, c] = []) { // empty } ok 16269 valid-jsdoc valid /** * Foo * @param {{foo}} hi - desc * @returns {ASTNode} returns a node */ function foo(hi){} ok 16270 valid-jsdoc valid /** * Foo * @param {{foo:String, bar, baz:Array}} hi - desc * @returns {ASTNode} returns a node */ function foo(hi){} ok 16271 valid-jsdoc valid /** * Foo * @param {{String}} hi - desc * @returns {ASTNode} returns a node */ function foo(hi){} ok 16272 valid-jsdoc valid /** * Foo * @param {{foo:string, astnode:Object, bar}} hi - desc * @returns {ASTNode} returns a node */ function foo(hi){} ok 16273 valid-jsdoc invalid call( /** * Doc for a function expression in a call expression. * @param {string} bogusName This is the param description. * @return {string} This is the return description. */ function(argName) { return 'the return'; } ); ok 16274 valid-jsdoc invalid /** @@foo */ function foo(){} ok 16275 valid-jsdoc invalid /** * Create a new thing. */ var thing = new Thing({ /** * Missing return tag. */ foo: function() { return 'bar'; } }); ok 16276 valid-jsdoc invalid /** @@returns {void} Foo */ function foo(){} ok 16277 valid-jsdoc invalid /** Foo @returns {void Foo */ function foo(){} ok 16278 valid-jsdoc invalid /** Foo @return {void} Foo */ function foo(){} ok 16279 valid-jsdoc invalid /** Foo @argument {int} bar baz */ function foo(bar){} ok 16280 valid-jsdoc invalid /** Foo */ function foo(){} ok 16281 valid-jsdoc invalid /** Foo @return {void} Foo */ foo.bar = () => {} ok 16282 valid-jsdoc invalid /** Foo @param {void Foo */ function foo(){} ok 16283 valid-jsdoc invalid /** Foo @param {} p Bar */ function foo(){} ok 16284 valid-jsdoc invalid /** Foo @param {void Foo */ function foo(){} ok 16285 valid-jsdoc invalid /** Foo * @param p Desc */ function foo(){} ok 16286 valid-jsdoc invalid /** * Foo * @param {string} p */ function foo(){} ok 16287 valid-jsdoc invalid /** * Foo * @param {string} p */ var foo = function(){} ok 16288 valid-jsdoc invalid /** * Foo * @param {string} p */ var foo = function(){} ok 16289 valid-jsdoc invalid /** * Description for a */ var A = class { /** * Description for method. * @param {object[]} xs - xs */ print(xs) { this.a = xs; } }; ok 16290 valid-jsdoc invalid /** * Foo * @returns {string} */ function foo(){} ok 16291 valid-jsdoc invalid /** * Foo * @returns {string} something */ function foo(p){} ok 16292 valid-jsdoc invalid /** * Foo * @returns {string} something */ var foo = function foo(a = 1){} ok 16293 valid-jsdoc invalid /** * Foo * @param {string} a Description * @param {string} b Description * @returns {string} something */ var foo = function foo(b, a = 1){} ok 16294 valid-jsdoc invalid /** * Foo * @param {string} p desc * @param {string} p desc */ function foo(){} ok 16295 valid-jsdoc invalid /** * Foo * @param {string} a desc @returns {void}*/ function foo(b){} ok 16296 valid-jsdoc invalid /** * Foo * @override * @param {string} a desc */ function foo(b){} ok 16297 valid-jsdoc invalid /** * Foo * @inheritdoc * @param {string} a desc */ function foo(b){} ok 16298 valid-jsdoc invalid /** * Foo * @param {string} a desc */ function foo(a){var t = false; if(t) {return t;}} ok 16299 valid-jsdoc invalid /** * Foo * @param {string} a desc */ function foo(a){var t = false; if(t) {return null;}} ok 16300 valid-jsdoc invalid /** * Foo * @param {string} a desc @returns {MyClass}*/ function foo(a){var t = false; if(t) {process(t);}} ok 16301 valid-jsdoc invalid /** * Does something. * @param {string} a - this is a * @return {Array<number>} The result of doing it */ export function doSomething(a) { } ok 16302 valid-jsdoc invalid /** * Does something. * @param {string} a - this is a * @return {Array<number>} The result of doing it */ export default function doSomething(a) { } ok 16303 valid-jsdoc invalid /** foo */ var foo = () => bar(); ok 16304 valid-jsdoc invalid /** foo */ var foo = () => { return bar(); }; ok 16305 valid-jsdoc invalid /** @returns {object} foo */ var foo = () => { bar(); }; ok 16306 valid-jsdoc invalid /** * @param fields [Array] */ function foo(){} ok 16307 valid-jsdoc invalid /** * Start with caps and end with period * @return {void} */ function foo(){} ok 16308 valid-jsdoc invalid /** Foo @return Foo */ function foo(){} ok 16309 valid-jsdoc invalid /** Foo @return sdf */ function foo(){} ok 16310 valid-jsdoc invalid /** * Description for A */ class A { /** * Description for constructor * @param {object[]} xs - xs */ constructor(xs) { this.a = xs; } } ok 16311 valid-jsdoc invalid /** * Description for a */ var A = class { /** * Description for constructor. * @param {object[]} xs - xs */ print(xs) { this.a = xs; } }; ok 16312 valid-jsdoc invalid /** * Description for A. */ class A { /** * Description for constructor. * @param {object[]} xs - xs * @returns {void} */ constructor(xs) { this.a = xs; } /** * Description for method. */ print(xs) { this.a = xs; } } ok 16313 valid-jsdoc invalid /** * Use of this with an invalid type expression * @this {not.a.valid.type.expression */ function foo() {} ok 16314 valid-jsdoc invalid /** * Use of this with a type that is not a member expression * @this {Array<string>} */ function foo() {} ok 16315 valid-jsdoc invalid /** * An async function. Options requires return. */ async function a() {} ok 16316 valid-jsdoc invalid /** * Foo * @param {String} hi - desc * @returns {Astnode} returns a node */ function foo(hi){} ok 16317 valid-jsdoc invalid /** * Foo * @param {{20:String}} hi - desc * @returns {Astnode} returns a node */ function foo(hi){} ok 16318 valid-jsdoc invalid /** * Foo * @param {String|number|test} hi - desc * @returns {Astnode} returns a node */ function foo(hi){} ok 16319 valid-jsdoc invalid /** * Foo * @param {Array.<String>} hi - desc * @returns {Astnode} returns a node */ function foo(hi){} ok 16320 valid-jsdoc invalid /** * Foo * @param {Array.<{id: Number, votes: Number}>} hi - desc * @returns {Array.<{summary: String}>} desc */ function foo(hi){} ok 16321 valid-jsdoc invalid /** * Foo * @param {Array.<[String, Number]>} hi - desc * @returns {Array.<[String, String]>} desc */ function foo(hi){} ok 16322 valid-jsdoc invalid /** * Foo * @param {object<String,object<String, Number>>} hi - because why not * @returns {Boolean} desc */ function foo(hi){} ok 16323 valid-jsdoc invalid /** * Foo * @param {{foo:String, astnode:Object, bar}} hi - desc * @returns {ASTnode} returns a node */ function foo(hi){} ok 16324 valid-typeof valid typeof foo === 'string' ok 16325 valid-typeof valid typeof foo === 'object' ok 16326 valid-typeof valid typeof foo === 'function' ok 16327 valid-typeof valid typeof foo === 'undefined' ok 16328 valid-typeof valid typeof foo === 'boolean' ok 16329 valid-typeof valid typeof foo === 'number' ok 16330 valid-typeof valid 'string' === typeof foo ok 16331 valid-typeof valid 'object' === typeof foo ok 16332 valid-typeof valid 'function' === typeof foo ok 16333 valid-typeof valid 'undefined' === typeof foo ok 16334 valid-typeof valid 'boolean' === typeof foo ok 16335 valid-typeof valid 'number' === typeof foo ok 16336 valid-typeof valid typeof foo === typeof bar ok 16337 valid-typeof valid typeof foo === baz ok 16338 valid-typeof valid typeof foo !== someType ok 16339 valid-typeof valid typeof bar != someType ok 16340 valid-typeof valid someType === typeof bar ok 16341 valid-typeof valid someType == typeof bar ok 16342 valid-typeof valid typeof foo == 'string' ok 16343 valid-typeof valid typeof(foo) === 'string' ok 16344 valid-typeof valid typeof(foo) !== 'string' ok 16345 valid-typeof valid typeof(foo) == 'string' ok 16346 valid-typeof valid typeof(foo) != 'string' ok 16347 valid-typeof valid var oddUse = typeof foo + 'thing' ok 16348 valid-typeof valid typeof foo === 'number' ok 16349 valid-typeof valid typeof foo === "number" ok 16350 valid-typeof valid var baz = typeof foo + 'thing' ok 16351 valid-typeof valid typeof foo === typeof bar ok 16352 valid-typeof valid typeof foo === `string` ok 16353 valid-typeof valid `object` === typeof foo ok 16354 valid-typeof valid typeof foo === `str${somethingElse}` ok 16355 valid-typeof invalid typeof foo === 'strnig' ok 16356 valid-typeof invalid 'strnig' === typeof foo ok 16357 valid-typeof invalid if (typeof bar === 'umdefined') {} ok 16358 valid-typeof invalid typeof foo !== 'strnig' ok 16359 valid-typeof invalid 'strnig' !== typeof foo ok 16360 valid-typeof invalid if (typeof bar !== 'umdefined') {} ok 16361 valid-typeof invalid typeof foo != 'strnig' ok 16362 valid-typeof invalid 'strnig' != typeof foo ok 16363 valid-typeof invalid if (typeof bar != 'umdefined') {} ok 16364 valid-typeof invalid typeof foo == 'strnig' ok 16365 valid-typeof invalid 'strnig' == typeof foo ok 16366 valid-typeof invalid if (typeof bar == 'umdefined') {} ok 16367 valid-typeof invalid if (typeof bar === `umdefined`) {} ok 16368 valid-typeof invalid typeof foo == 'invalid string' ok 16369 valid-typeof invalid typeof foo == Object ok 16370 valid-typeof invalid typeof foo === undefined ok 16371 valid-typeof invalid undefined === typeof foo ok 16372 valid-typeof invalid undefined == typeof foo ok 16373 valid-typeof invalid typeof foo === `undefined${foo}` ok 16374 valid-typeof invalid typeof foo === `${string}` ok 16375 vars-on-top valid var first = 0; function foo() { first = 2; } ok 16376 vars-on-top valid function foo() { } ok 16377 vars-on-top valid function foo() { var first; if (true) { first = true; } else { first = 1; } } ok 16378 vars-on-top valid function foo() { var first; var second = 1; var third; var fourth = 1, fifth, sixth = third; var seventh; if (true) { third = true; } first = second; } ok 16379 vars-on-top valid function foo() { var i; for (i = 0; i < 10; i++) { alert(i); } } ok 16380 vars-on-top valid function foo() { var outer; function inner() { var inner = 1; var outer = inner; } outer = 1; } ok 16381 vars-on-top valid function foo() { var first; //Hello var second = 1; first = second; } ok 16382 vars-on-top valid function foo() { var first; /* Hello Clarice */ var second = 1; first = second; } ok 16383 vars-on-top valid function foo() { var first; var second = 1; function bar(){ var first; first = 5; } first = second; } ok 16384 vars-on-top valid function foo() { var first; var second = 1; function bar(){ var third; third = 5; } first = second; } ok 16385 vars-on-top valid function foo() { var first; var bar = function(){ var third; third = 5; } first = 5; } ok 16386 vars-on-top valid function foo() { var first; first.onclick(function(){ var third; third = 5; }); first = 5; } ok 16387 vars-on-top valid function foo() { var i = 0; for (let j = 0; j < 10; j++) { alert(j); } i = i + 1; } ok 16388 vars-on-top valid 'use strict'; var x; f(); ok 16389 vars-on-top valid 'use strict'; 'directive'; var x; var y; f(); ok 16390 vars-on-top valid function f() { 'use strict'; var x; f(); } ok 16391 vars-on-top valid function f() { 'use strict'; 'directive'; var x; var y; f(); } ok 16392 vars-on-top valid import React from 'react'; var y; function f() { 'use strict'; var x; var y; f(); } ok 16393 vars-on-top valid 'use strict'; import React from 'react'; var y; function f() { 'use strict'; var x; var y; f(); } ok 16394 vars-on-top valid import React from 'react'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 16395 vars-on-top valid import * as foo from 'mod.js'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 16396 vars-on-top valid import { square, diag } from 'lib'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 16397 vars-on-top valid import { default as foo } from 'lib'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 16398 vars-on-top valid import 'src/mylib'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 16399 vars-on-top valid import theDefault, { named1, named2 } from 'src/mylib'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 16400 vars-on-top valid export var x; var y; var z; ok 16401 vars-on-top valid var x; export var y; var z; ok 16402 vars-on-top valid var x; var y; export var z; ok 16403 vars-on-top invalid var first = 0; function foo() { first = 2; second = 2; } var second = 0; ok 16404 vars-on-top invalid function foo() { var first; first = 1; first = 2; first = 3; first = 4; var second = 1; second = 2; first = second; } ok 16405 vars-on-top invalid function foo() { var first; if (true) { var second = true; } first = second; } ok 16406 vars-on-top invalid function foo() { for (var i = 0; i < 10; i++) { alert(i); } } ok 16407 vars-on-top invalid function foo() { var first = 10; var i; for (i = 0; i < first; i ++) { var second = i; } } ok 16408 vars-on-top invalid function foo() { var first = 10; var i; switch (first) { case 10: var hello = 1; break; } } ok 16409 vars-on-top invalid function foo() { var first = 10; var i; try { var hello = 1; } catch (e) { alert('error'); } } ok 16410 vars-on-top invalid function foo() { var first = 10; var i; try { asdf; } catch (e) { var hello = 1; } } ok 16411 vars-on-top invalid function foo() { var first = 10; while (first) { var hello = 1; } } ok 16412 vars-on-top invalid function foo() { var first = 10; do { var hello = 1; } while (first == 10); } ok 16413 vars-on-top invalid function foo() { var first = [1,2,3]; for (var item in first) { item++; } } ok 16414 vars-on-top invalid function foo() { var first = [1,2,3]; var item; for (item in first) { var hello = item; } } ok 16415 vars-on-top invalid var foo = () => { var first = [1,2,3]; var item; for (item in first) { var hello = item; } } ok 16416 vars-on-top invalid 'use strict'; 0; var x; f(); ok 16417 vars-on-top invalid 'use strict'; var x; 'directive'; var y; f(); ok 16418 vars-on-top invalid function f() { 'use strict'; 0; var x; f(); } ok 16419 vars-on-top invalid function f() { 'use strict'; var x; 'directive'; var y; f(); } ok 16420 vars-on-top invalid export function f() {} var x; ok 16421 vars-on-top invalid var x; export function f() {} var y; ok 16422 vars-on-top invalid import {foo} from 'foo'; export {foo}; var test = 1; ok 16423 vars-on-top invalid export {foo} from 'foo'; var test = 1; ok 16424 vars-on-top invalid export * from 'foo'; var test = 1; ok 16425 wrap-iife valid (function(){ }()); ok 16426 wrap-iife valid (function(){ })(); ok 16427 wrap-iife valid (function a(){ }()); ok 16428 wrap-iife valid (function a(){ })(); ok 16429 wrap-iife valid (function(){ }()) ok 16430 wrap-iife valid (function(){ })() ok 16431 wrap-iife valid (function a(){ }()); ok 16432 wrap-iife valid (function a(){ })(); ok 16433 wrap-iife valid foo.bar(); ok 16434 wrap-iife valid var a = function(){return 1;}; ok 16435 wrap-iife valid window.bar = (function() { return 3; }.call(this, arg1)); ok 16436 wrap-iife valid window.bar = (function() { return 3; }).call(this, arg1); ok 16437 wrap-iife valid window.bar = (function() { return 3; }.apply(this, arg1)); ok 16438 wrap-iife valid window.bar = (function() { return 3; }).apply(this, arg1); ok 16439 wrap-iife valid window.bar = function() { return 3; }.call(this, arg1); ok 16440 wrap-iife valid window.bar = function() { return 3; }.call(this, arg1); ok 16441 wrap-iife valid window.bar = function() { return 3; }[call](this, arg1); ok 16442 wrap-iife valid window.bar = function() { return 3; }[apply](this, arg1); ok 16443 wrap-iife valid window.bar = function() { return 3; }[foo](this, arg1); ok 16444 wrap-iife valid var a = function(){return 1;}.bind(this); ok 16445 wrap-iife valid var a = function(){return 1;}.bind(this).apply(that); ok 16446 wrap-iife invalid 0, function(){ }(); ok 16447 wrap-iife invalid [function(){ }()]; ok 16448 wrap-iife invalid var a = function(){ }(); ok 16449 wrap-iife invalid (function(){ }(), 0); ok 16450 wrap-iife invalid (function a(){ })(); ok 16451 wrap-iife invalid (function a(){ }()); ok 16452 wrap-iife invalid ( /* a */ function /* b */ foo /* c */ ( /* d */ bar /* e */ ) /* f */ { /* g */ return; /* h */ } /* i */ ( /* j */ baz /* k */) /* l */ ) /* m */ ; ok 16453 wrap-iife invalid ( /* a */ function /* b */ foo /* c */ ( /* d */ bar /* e */ ) /* f */ { /* g */ return; /* h */ } /* i */ ) /* j */ ( /* k */ baz /* l */) /* m */ ; ok 16454 wrap-iife invalid +function(){return 1;}() ok 16455 wrap-iife invalid +function(){return 1;}() ok 16456 wrap-iife invalid window.bar = function() { return 3; }.call(this, arg1); ok 16457 wrap-iife invalid window.bar = function() { return 3; }['call'](this, arg1); ok 16458 wrap-iife invalid window.bar = function() { return 3; }.call(this, arg1); ok 16459 wrap-iife invalid window.bar = (function() { return 3; }.call(this, arg1)); ok 16460 wrap-iife invalid window.bar = (function() { return 3; }).call(this, arg1); ok 16461 wrap-regex valid (/foo/).test(bar); ok 16462 wrap-regex valid (/foo/ig).test(bar); ok 16463 wrap-regex valid /foo/; ok 16464 wrap-regex valid var f = 0; ok 16465 wrap-regex valid a[/b/]; ok 16466 wrap-regex invalid /foo/.test(bar); ok 16467 wrap-regex invalid /foo/ig.test(bar); ok 16468 wrap-regex invalid if(/foo/ig.test(bar)); ok 16469 yield-star-spacing valid function *foo(){ yield foo; } ok 16470 yield-star-spacing valid function *foo(){ yield* foo; } ok 16471 yield-star-spacing valid function *foo(){ yield foo; } ok 16472 yield-star-spacing valid function *foo(){ yield* foo; } ok 16473 yield-star-spacing valid function *foo(){ yield* foo(); } ok 16474 yield-star-spacing valid function *foo(){ yield* 0 } ok 16475 yield-star-spacing valid function *foo(){ yield* []; } ok 16476 yield-star-spacing valid function *foo(){ var result = yield* foo(); } ok 16477 yield-star-spacing valid function *foo(){ var result = yield* (foo()); } ok 16478 yield-star-spacing valid function *foo(){ yield foo; } ok 16479 yield-star-spacing valid function *foo(){ yield *foo; } ok 16480 yield-star-spacing valid function *foo(){ yield *foo(); } ok 16481 yield-star-spacing valid function *foo(){ yield *0 } ok 16482 yield-star-spacing valid function *foo(){ yield *[]; } ok 16483 yield-star-spacing valid function *foo(){ var result = yield *foo(); } ok 16484 yield-star-spacing valid function *foo(){ yield foo; } ok 16485 yield-star-spacing valid function *foo(){ yield * foo; } ok 16486 yield-star-spacing valid function *foo(){ yield * foo(); } ok 16487 yield-star-spacing valid function *foo(){ yield * 0 } ok 16488 yield-star-spacing valid function *foo(){ yield * []; } ok 16489 yield-star-spacing valid function *foo(){ var result = yield * foo(); } ok 16490 yield-star-spacing valid function *foo(){ yield foo; } ok 16491 yield-star-spacing valid function *foo(){ yield*foo; } ok 16492 yield-star-spacing valid function *foo(){ yield*foo(); } ok 16493 yield-star-spacing valid function *foo(){ yield*0 } ok 16494 yield-star-spacing valid function *foo(){ yield*[]; } ok 16495 yield-star-spacing valid function *foo(){ var result = yield*foo(); } ok 16496 yield-star-spacing invalid function *foo(){ yield *foo1; } ok 16497 yield-star-spacing invalid function *foo(){ yield *foo1; } ok 16498 yield-star-spacing invalid function *foo(){ yield * foo; } ok 16499 yield-star-spacing invalid function *foo(){ yield*foo2; } ok 16500 yield-star-spacing invalid function *foo(){ yield* foo; } ok 16501 yield-star-spacing invalid function *foo(){ yield * foo; } ok 16502 yield-star-spacing invalid function *foo(){ yield*foo; } ok 16503 yield-star-spacing invalid function *foo(){ yield* foo; } ok 16504 yield-star-spacing invalid function *foo(){ yield *foo3; } ok 16505 yield-star-spacing invalid function *foo(){ yield*foo4; } ok 16506 yield-star-spacing invalid function *foo(){ yield* foo; } ok 16507 yield-star-spacing invalid function *foo(){ yield *foo; } ok 16508 yield-star-spacing invalid function *foo(){ yield * foo; } ok 16509 yoda valid if (value === "red") {} ok 16510 yoda valid if (value === value) {} ok 16511 yoda valid if (value != 5) {} ok 16512 yoda valid if (5 & foo) {} ok 16513 yoda valid if (5 === 4) {} ok 16514 yoda valid if ("blue" === value) {} ok 16515 yoda valid if (value === value) {} ok 16516 yoda valid if (4 != value) {} ok 16517 yoda valid if (foo & 4) {} ok 16518 yoda valid if (5 === 4) {} ok 16519 yoda valid if (0 < x && x <= 1) {} ok 16520 yoda valid if (x < 0 || 1 <= x) {} ok 16521 yoda valid if (0 <= x && x < 1) {} ok 16522 yoda valid if (x <= 'bar' || 'foo' < x) {} ok 16523 yoda valid if ('blue' < x.y && x.y < 'green') {} ok 16524 yoda valid if (0 <= x['y'] && x['y'] <= 100) {} ok 16525 yoda valid if (a < 0 && (0 < b && b < 1)) {} ok 16526 yoda valid if ((0 < a && a < 1) && b < 0) {} ok 16527 yoda valid if (a < 4 || (b[c[0]].d['e'] < 0 || 1 <= b[c[0]].d['e'])) {} ok 16528 yoda valid if (-1 < x && x < 0) {} ok 16529 yoda valid if (0 <= this.prop && this.prop <= 1) {} ok 16530 yoda valid if (0 <= index && index < list.length) {} ok 16531 yoda valid if (ZERO <= index && index < 100) {} ok 16532 yoda valid if (value <= MIN || 10 < value) {} ok 16533 yoda valid if (value <= 0 || MAX < value) {} ok 16534 yoda valid if (0 <= a.b && a["b"] <= 100) {} ok 16535 yoda valid if (0 < x && x <= 1) {} ok 16536 yoda valid if (x !== 'foo' && 'foo' !== x) {} ok 16537 yoda valid if (x < 2 && x !== -3) {} ok 16538 yoda invalid if ("red" == value) {} ok 16539 yoda invalid if (true === value) {} ok 16540 yoda invalid if (5 != value) {} ok 16541 yoda invalid if (null !== value) {} ok 16542 yoda invalid if ("red" <= value) {} ok 16543 yoda invalid if (true >= value) {} ok 16544 yoda invalid var foo = (5 < value) ? true : false ok 16545 yoda invalid function foo() { return (null > value); } ok 16546 yoda invalid if (-1 < str.indexOf(substr)) {} ok 16547 yoda invalid if (value == "red") {} ok 16548 yoda invalid if (value === true) {} ok 16549 yoda invalid if (a < 0 && 0 <= b && b < 1) {} ok 16550 yoda invalid if (0 <= a && a < 1 && b < 1) {} ok 16551 yoda invalid if (1 < a && a < 0) {} ok 16552 yoda invalid 0 < a && a < 1 ok 16553 yoda invalid var a = b < 0 || 1 <= b; ok 16554 yoda invalid if (0 <= x && x < -1) {} ok 16555 yoda invalid var a = (b < 0 && 0 <= b); ok 16556 yoda invalid if (0 <= a[b] && a['b'] < 1) {} ok 16557 yoda invalid if (0 <= a[b] && a.b < 1) {} ok 16558 yoda invalid if (0 <= a[b()] && a[b()] < 1) {} ok 16559 yoda invalid if (3 == a) {} ok 16560 yoda invalid foo(3 === a); ok 16561 yoda invalid foo(a === 3); ok 16562 yoda invalid if (0 <= x && x < 1) {} ok 16563 yoda invalid if ( /* a */ 0 /* b */ < /* c */ foo /* d */ ) {} ok 16564 yoda invalid if ( /* a */ foo /* b */ > /* c */ 0 /* d */ ) {} ok 16565 yoda invalid if (foo()===1) {} ok 16566 yoda invalid if (foo() === 1) {} ok 16567 yoda invalid while (0 === (a)); ok 16568 yoda invalid while (0 === (a = b)); ok 16569 yoda invalid while ((a) === 0); ok 16570 yoda invalid while ((a = b) === 0); ok 16571 yoda invalid if (((((((((((foo)))))))))) === ((((((5))))))); ok 16572 RuleTester should not throw an error when everything passes ok 16573 RuleTester should throw an error when valid code is invalid ok 16574 RuleTester should throw an error when valid code is invalid ok 16575 RuleTester should throw an error if invalid code is valid ok 16576 RuleTester should throw an error when the error message is wrong ok 16577 RuleTester should throw an error when the error message regex does not match ok 16578 RuleTester should throw an error when the error is not a supported type ok 16579 RuleTester should throw an error when the error is a string and it does not match error message ok 16580 RuleTester should throw an error when the error is a string and it does not match error message ok 16581 RuleTester should not throw an error when the error is a string and it matches error message ok 16582 RuleTester should not throw an error when the error is a regex and it matches error message ok 16583 RuleTester should not throw an error when the error is a regex in an object and it matches error message ok 16584 RuleTester should throw an error when the expected output doesn't match ok 16585 RuleTester should use strict equality to compare output ok 16586 RuleTester should throw an error when the expected output doesn't match and errors is just a number ok 16587 RuleTester should not throw an error when the expected output is null and no errors produce output ok 16588 RuleTester should throw an error when the expected output is null and problems produce output ok 16589 RuleTester should throw an error when the expected output is null and only some problems produce output ok 16590 RuleTester should throw an error if invalid code specifies wrong type ok 16591 RuleTester should throw an error if invalid code specifies wrong line ok 16592 RuleTester should not skip line assertion if line is a falsy value ok 16593 RuleTester should throw an error if invalid code specifies wrong column ok 16594 RuleTester should not skip column assertion if column is a falsy value ok 16595 RuleTester should throw an error if invalid code specifies wrong endLine ok 16596 RuleTester should throw an error if invalid code specifies wrong endColumn ok 16597 RuleTester should throw an error if invalid code has the wrong number of errors ok 16598 RuleTester should throw an error if invalid code does not have errors ok 16599 RuleTester should throw an error if invalid code has the wrong explicit number of errors ok 16600 RuleTester should throw an error if there's a parsing error and output doesn't match ok 16601 RuleTester should not throw an error if invalid code has at least an expected empty error object ok 16602 RuleTester should pass-through the globals config of valid tests to the to rule ok 16603 RuleTester should pass-through the globals config of invalid tests to the to rule ok 16604 RuleTester should pass-through the settings config to rules ok 16605 RuleTester should pass-through the filename to the rule ok 16606 RuleTester should pass-through the options to the rule ok 16607 RuleTester should throw an error if the options are an object ok 16608 RuleTester should throw an error if the options are a number ok 16609 RuleTester should pass-through the parser to the rule ok 16610 RuleTester should prevent invalid options schemas ok 16611 RuleTester should prevent schema violations in options ok 16612 RuleTester throw an error when an unknown config option is included ok 16613 RuleTester throw an error when an invalid config value is included ok 16614 RuleTester should pass-through the tester config to the rule ok 16615 RuleTester should correctly set the globals configuration ok 16616 RuleTester should correctly reset the global configuration ok 16617 RuleTester should enforce the global configuration to be an object ok 16618 RuleTester should pass-through the globals config to the tester then to the to rule ok 16619 RuleTester should throw an error if AST was modified ok 16620 RuleTester should throw an error if AST was modified (at Program) ok 16621 RuleTester should throw an error if AST was modified (at Program:exit) ok 16622 RuleTester should throw an error if no test scenarios given ok 16623 RuleTester should throw an error if no acceptable test scenario object is given ok 16624 RuleTester should assert match if message provided in both test and result. ok 16625 RuleTester should assert match between messageId if provided in both test and result. ok 16626 RuleTester should assert match between resulting message output if messageId and data provided in both test and result ok 16627 RuleTester should throw if user tests for both message and messageId ok 16628 RuleTester should throw if user tests for messageId but the rule doesn't use the messageId meta syntax. ok 16629 RuleTester should throw if user tests for messageId not listed in the rule's meta syntax. ok 16630 RuleTester should throw if data provided without messageId. ok 16631 RuleTester naming test cases should use the first argument as the name of the test suite ok 16632 RuleTester naming test cases should use the test code as the name of the tests for valid code (string form) ok 16633 RuleTester naming test cases should use the test code as the name of the tests for valid code (object form) ok 16634 RuleTester naming test cases should use the test code as the name of the tests for invalid code ok 16635 RuleTester naming test cases should use the empty string as the name of the test if the test case is an empty string ok 16636 TokenStore when calling getTokens should retrieve all tokens for root node ok 16637 TokenStore when calling getTokens should retrieve all tokens for binary expression ok 16638 TokenStore when calling getTokens should retrieve all tokens plus one before for binary expression ok 16639 TokenStore when calling getTokens should retrieve all tokens plus one after for binary expression ok 16640 TokenStore when calling getTokens should retrieve all tokens plus two before and one after for binary expression ok 16641 TokenStore when calling getTokens should retrieve all matched tokens for root node with filter ok 16642 TokenStore when calling getTokens should retrieve all tokens and comments in the node for root node with includeComments option ok 16643 TokenStore when calling getTokens should retrieve matched tokens and comments in the node for root node with includeComments and filter options ok 16644 TokenStore when calling getTokens should retrieve all tokens and comments in the node for binary expression with includeComments option ok 16645 TokenStore when calling getTokensBefore should retrieve zero tokens before a node ok 16646 TokenStore when calling getTokensBefore should retrieve one token before a node ok 16647 TokenStore when calling getTokensBefore should retrieve more than one token before a node ok 16648 TokenStore when calling getTokensBefore should retrieve all tokens before a node ok 16649 TokenStore when calling getTokensBefore should retrieve more than one token before a node with count option ok 16650 TokenStore when calling getTokensBefore should retrieve matched tokens before a node with count and filter options ok 16651 TokenStore when calling getTokensBefore should retrieve all matched tokens before a node with filter option ok 16652 TokenStore when calling getTokensBefore should retrieve no tokens before the root node ok 16653 TokenStore when calling getTokensBefore should retrieve tokens and comments before a node with count and includeComments option ok 16654 TokenStore when calling getTokensBefore should retrieve all tokens and comments before a node with includeComments option only ok 16655 TokenStore when calling getTokensBefore should retrieve all tokens and comments before a node with includeComments and filter options ok 16656 TokenStore when calling getTokenBefore should retrieve one token before a node ok 16657 TokenStore when calling getTokenBefore should skip a given number of tokens ok 16658 TokenStore when calling getTokenBefore should skip a given number of tokens with skip option ok 16659 TokenStore when calling getTokenBefore should retrieve matched token with filter option ok 16660 TokenStore when calling getTokenBefore should retrieve matched token with skip and filter options ok 16661 TokenStore when calling getTokenBefore should retrieve one token or comment before a node with includeComments option ok 16662 TokenStore when calling getTokenBefore should retrieve one token or comment before a node with includeComments and skip options ok 16663 TokenStore when calling getTokenBefore should retrieve one token or comment before a node with includeComments and skip and filter options ok 16664 TokenStore when calling getTokenBefore should retrieve the previous node if the comment at the end of source code is specified. ok 16665 TokenStore when calling getTokenBefore should retrieve the previous comment if the first token is specified. ok 16666 TokenStore when calling getTokenBefore should retrieve null if the first comment is specified. ok 16667 TokenStore when calling getTokensAfter should retrieve zero tokens after a node ok 16668 TokenStore when calling getTokensAfter should retrieve one token after a node ok 16669 TokenStore when calling getTokensAfter should retrieve more than one token after a node ok 16670 TokenStore when calling getTokensAfter should retrieve all tokens after a node ok 16671 TokenStore when calling getTokensAfter should retrieve more than one token after a node with count option ok 16672 TokenStore when calling getTokensAfter should retrieve all matched tokens after a node with filter option ok 16673 TokenStore when calling getTokensAfter should retrieve matched tokens after a node with count and filter options ok 16674 TokenStore when calling getTokensAfter should retrieve all tokens and comments after a node with includeComments option ok 16675 TokenStore when calling getTokensAfter should retrieve several tokens and comments after a node with includeComments and count options ok 16676 TokenStore when calling getTokensAfter should retrieve matched tokens and comments after a node with includeComments and count and filter options ok 16677 TokenStore when calling getTokenAfter should retrieve one token after a node ok 16678 TokenStore when calling getTokenAfter should skip a given number of tokens ok 16679 TokenStore when calling getTokenAfter should skip a given number of tokens with skip option ok 16680 TokenStore when calling getTokenAfter should retrieve matched token with filter option ok 16681 TokenStore when calling getTokenAfter should retrieve matched token with filter and skip options ok 16682 TokenStore when calling getTokenAfter should retrieve one token or comment after a node with includeComments option ok 16683 TokenStore when calling getTokenAfter should retrieve one token or comment after a node with includeComments and skip options ok 16684 TokenStore when calling getTokenAfter should retrieve one token or comment after a node with includeComments and skip and filter options ok 16685 TokenStore when calling getTokenAfter should retrieve the next node if the comment at the first of source code is specified. ok 16686 TokenStore when calling getTokenAfter should retrieve the next comment if the last token is specified. ok 16687 TokenStore when calling getTokenAfter should retrieve null if the last comment is specified. ok 16688 TokenStore when calling getFirstTokens should retrieve zero tokens from a node's token stream ok 16689 TokenStore when calling getFirstTokens should retrieve one token from a node's token stream ok 16690 TokenStore when calling getFirstTokens should retrieve more than one token from a node's token stream ok 16691 TokenStore when calling getFirstTokens should retrieve all tokens from a node's token stream ok 16692 TokenStore when calling getFirstTokens should retrieve more than one token from a node's token stream with count option ok 16693 TokenStore when calling getFirstTokens should retrieve matched tokens from a node's token stream with filter option ok 16694 TokenStore when calling getFirstTokens should retrieve matched tokens from a node's token stream with filter and count options ok 16695 TokenStore when calling getFirstTokens should retrieve all tokens and comments from a node's token stream with includeComments option ok 16696 TokenStore when calling getFirstTokens should retrieve several tokens and comments from a node's token stream with includeComments and count options ok 16697 TokenStore when calling getFirstTokens should retrieve several tokens and comments from a node's token stream with includeComments and count and filter options ok 16698 TokenStore when calling getFirstToken should retrieve the first token of a node's token stream ok 16699 TokenStore when calling getFirstToken should skip a given number of tokens ok 16700 TokenStore when calling getFirstToken should skip a given number of tokens with skip option ok 16701 TokenStore when calling getFirstToken should retrieve matched token with filter option ok 16702 TokenStore when calling getFirstToken should retrieve matched token with filter and skip options ok 16703 TokenStore when calling getFirstToken should retrieve the first token or comment of a node's token stream with includeComments option ok 16704 TokenStore when calling getFirstToken should retrieve the first matched token or comment of a node's token stream with includeComments and skip options ok 16705 TokenStore when calling getFirstToken should retrieve the first matched token or comment of a node's token stream with includeComments and skip and filter options ok 16706 TokenStore when calling getFirstToken should retrieve the first comment if the comment is at the last of nodes ok 16707 TokenStore when calling getFirstToken should retrieve the first token (without includeComments option) if the comment is at the last of nodes ok 16708 TokenStore when calling getLastTokens should retrieve zero tokens from the end of a node's token stream ok 16709 TokenStore when calling getLastTokens should retrieve one token from the end of a node's token stream ok 16710 TokenStore when calling getLastTokens should retrieve more than one token from the end of a node's token stream ok 16711 TokenStore when calling getLastTokens should retrieve all tokens from the end of a node's token stream ok 16712 TokenStore when calling getLastTokens should retrieve more than one token from the end of a node's token stream with count option ok 16713 TokenStore when calling getLastTokens should retrieve matched tokens from the end of a node's token stream with filter option ok 16714 TokenStore when calling getLastTokens should retrieve matched tokens from the end of a node's token stream with filter and count options ok 16715 TokenStore when calling getLastTokens should retrieve all tokens from the end of a node's token stream with includeComments option ok 16716 TokenStore when calling getLastTokens should retrieve matched tokens from the end of a node's token stream with includeComments and count options ok 16717 TokenStore when calling getLastTokens should retrieve matched tokens from the end of a node's token stream with includeComments and count and filter options ok 16718 TokenStore when calling getLastToken should retrieve the last token of a node's token stream ok 16719 TokenStore when calling getLastToken should skip a given number of tokens ok 16720 TokenStore when calling getLastToken should skip a given number of tokens with skip option ok 16721 TokenStore when calling getLastToken should retrieve the last matched token of a node's token stream with filter option ok 16722 TokenStore when calling getLastToken should retrieve the last matched token of a node's token stream with filter and skip options ok 16723 TokenStore when calling getLastToken should retrieve the last token of a node's token stream with includeComments option ok 16724 TokenStore when calling getLastToken should retrieve the last token of a node's token stream with includeComments and skip options ok 16725 TokenStore when calling getLastToken should retrieve the last token of a node's token stream with includeComments and skip and filter options ok 16726 TokenStore when calling getLastToken should retrieve the last comment if the comment is at the last of nodes ok 16727 TokenStore when calling getLastToken should retrieve the last token (without includeComments option) if the comment is at the last of nodes ok 16728 TokenStore when calling getFirstTokensBetween should retrieve zero tokens between adjacent nodes ok 16729 TokenStore when calling getFirstTokensBetween should retrieve multiple tokens between non-adjacent nodes with count option ok 16730 TokenStore when calling getFirstTokensBetween should retrieve matched tokens between non-adjacent nodes with filter option ok 16731 TokenStore when calling getFirstTokensBetween should retrieve all tokens between non-adjacent nodes with empty object option ok 16732 TokenStore when calling getFirstTokensBetween should retrieve multiple tokens between non-adjacent nodes with includeComments option ok 16733 TokenStore when calling getFirstTokensBetween should retrieve multiple tokens between non-adjacent nodes with includeComments and count options ok 16734 TokenStore when calling getFirstTokensBetween should retrieve multiple tokens and comments between non-adjacent nodes with includeComments and filter options ok 16735 TokenStore when calling getFirstTokenBetween should return null between adjacent nodes ok 16736 TokenStore when calling getFirstTokenBetween should retrieve one token between non-adjacent nodes with count option ok 16737 TokenStore when calling getFirstTokenBetween should retrieve one token between non-adjacent nodes with skip option ok 16738 TokenStore when calling getFirstTokenBetween should return null if it's skipped beyond the right token ok 16739 TokenStore when calling getFirstTokenBetween should retrieve the first matched token between non-adjacent nodes with filter option ok 16740 TokenStore when calling getFirstTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments option ok 16741 TokenStore when calling getFirstTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments and skip options ok 16742 TokenStore when calling getFirstTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments and skip and filter options ok 16743 TokenStore when calling getLastTokensBetween should retrieve zero tokens between adjacent nodes ok 16744 TokenStore when calling getLastTokensBetween should retrieve multiple tokens between non-adjacent nodes with count option ok 16745 TokenStore when calling getLastTokensBetween should retrieve matched tokens between non-adjacent nodes with filter option ok 16746 TokenStore when calling getLastTokensBetween should retrieve all tokens between non-adjacent nodes with empty object option ok 16747 TokenStore when calling getLastTokensBetween should retrieve all tokens and comments between non-adjacent nodes with includeComments option ok 16748 TokenStore when calling getLastTokensBetween should retrieve multiple tokens between non-adjacent nodes with includeComments and count options ok 16749 TokenStore when calling getLastTokensBetween should retrieve multiple tokens and comments between non-adjacent nodes with includeComments and filter options ok 16750 TokenStore when calling getLastTokenBetween should return null between adjacent nodes ok 16751 TokenStore when calling getLastTokenBetween should retrieve one token between non-adjacent nodes with count option ok 16752 TokenStore when calling getLastTokenBetween should retrieve one token between non-adjacent nodes with skip option ok 16753 TokenStore when calling getLastTokenBetween should return null if it's skipped beyond the right token ok 16754 TokenStore when calling getLastTokenBetween should retrieve the first matched token between non-adjacent nodes with filter option ok 16755 TokenStore when calling getLastTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments option ok 16756 TokenStore when calling getLastTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments and skip options ok 16757 TokenStore when calling getLastTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments and skip and filter options ok 16758 TokenStore when calling getTokensBetween should retrieve zero tokens between adjacent nodes ok 16759 TokenStore when calling getTokensBetween should retrieve one token between nodes ok 16760 TokenStore when calling getTokensBetween should retrieve multiple tokens between non-adjacent nodes ok 16761 TokenStore when calling getTokensBetween should retrieve surrounding tokens when asked for padding ok 16762 TokenStore when calling getTokenByRangeStart should return identifier token ok 16763 TokenStore when calling getTokenByRangeStart should return null when token doesn't exist ok 16764 TokenStore when calling getTokenByRangeStart should return a comment token when includeComments is true ok 16765 TokenStore when calling getTokenByRangeStart should not return a comment token at the supplied index when includeComments is false ok 16766 TokenStore when calling getTokenByRangeStart should not return comment tokens by default ok 16767 TokenStore when calling getTokenOrCommentBefore should retrieve one token or comment before a node ok 16768 TokenStore when calling getTokenOrCommentBefore should skip a given number of tokens ok 16769 TokenStore when calling getTokenOrCommentAfter should retrieve one token or comment after a node ok 16770 TokenStore when calling getTokenOrCommentAfter should skip a given number of tokens ok 16771 TokenStore when calling getFirstToken & getTokenAfter should retrieve all tokens and comments in the node ok 16772 TokenStore when calling getFirstToken & getTokenAfter should retrieve all tokens and comments in the node (no spaces) ok 16773 TokenStore when calling getLastToken & getTokenBefore should retrieve all tokens and comments in the node ok 16774 TokenStore when calling getLastToken & getTokenBefore should retrieve all tokens and comments in the node (no spaces) ok 16775 TokenStore when calling commentsExistBetween should retrieve false if comments don't exist ok 16776 TokenStore when calling commentsExistBetween should retrieve true if comments exist ok 16777 TokenStore getCommentsBefore should retrieve comments before a node ok 16778 TokenStore getCommentsBefore should retrieve comments before a token ok 16779 TokenStore getCommentsBefore should retrieve multiple comments before a node ok 16780 TokenStore getCommentsBefore should retrieve comments before a Program node ok 16781 TokenStore getCommentsBefore should return an empty array if there are no comments before a node or token ok 16782 TokenStore getCommentsAfter should retrieve comments after a node ok 16783 TokenStore getCommentsAfter should retrieve comments after a token ok 16784 TokenStore getCommentsAfter should retrieve multiple comments after a node ok 16785 TokenStore getCommentsAfter should retrieve comments after a Program node ok 16786 TokenStore getCommentsAfter should return an empty array if there are no comments after a node or token ok 16787 TokenStore getCommentsInside should retrieve comments inside a node ok 16788 TokenStore getCommentsInside should return an empty array if a node does not contain any comments ok 16789 apply-disable-directives /* eslint-disable */ comments without rules keeps problems before the comment on the same line ok 16790 apply-disable-directives /* eslint-disable */ comments without rules keeps problems on a previous line before the comment ok 16791 apply-disable-directives /* eslint-disable */ comments without rules filters problems at the same location as the comment ok 16792 apply-disable-directives /* eslint-disable */ comments without rules filters out problems after the comment on the same line ok 16793 apply-disable-directives /* eslint-disable */ comments without rules filters out problems on a later line than the comment ok 16794 apply-disable-directives /* eslint-disable */ comments with rules filters problems after the comment that have the same ruleId ok 16795 apply-disable-directives /* eslint-disable */ comments with rules filters problems in the same location as the comment that have the same ruleId ok 16796 apply-disable-directives /* eslint-disable */ comments with rules keeps problems after the comment that have a different ruleId ok 16797 apply-disable-directives /* eslint-disable */ comments with rules keeps problems before the comment that have the same ruleId ok 16798 apply-disable-directives eslint-enable comments without rules keeps problems after the eslint-enable comment ok 16799 apply-disable-directives eslint-enable comments without rules keeps problems in the same location as the eslint-enable comment ok 16800 apply-disable-directives eslint-enable comments without rules filters out problems before the eslint-enable comment ok 16801 apply-disable-directives eslint-enable comments without rules filter out problems if disable all then enable foo and then disable foo ok 16802 apply-disable-directives eslint-enable comments without rules filter out problems if disable all then enable foo and then disable all ok 16803 apply-disable-directives eslint-enable comments without rules keeps problems before the eslint-enable comment if there is no corresponding disable comment ok 16804 apply-disable-directives eslint-enable comments with rules keeps problems after the comment that have the same ruleId as the eslint-enable comment ok 16805 apply-disable-directives eslint-enable comments with rules keeps problems in the same location as the comment that have the same ruleId as the eslint-enable comment ok 16806 apply-disable-directives eslint-enable comments with rules filters problems after the comment that have a different ruleId as the eslint-enable comment ok 16807 apply-disable-directives eslint-enable comments with rules reenables reporting correctly even when followed by another enable comment ok 16808 apply-disable-directives eslint-disable-line comments without rules keeps problems on a previous line ok 16809 apply-disable-directives eslint-disable-line comments without rules filters problems before the comment on the same line ok 16810 apply-disable-directives eslint-disable-line comments without rules filters problems after the comment on the same line ok 16811 apply-disable-directives eslint-disable-line comments without rules keeps problems on a following line ok 16812 apply-disable-directives eslint-disable-line comments with rules filters problems on the current line that match the ruleId ok 16813 apply-disable-directives eslint-disable-line comments with rules keeps problems on the current line that do not match the ruleId ok 16814 apply-disable-directives eslint-disable-line comments with rules filters problems on the current line that do not match the ruleId if preceded by a disable comment ok 16815 apply-disable-directives eslint-disable-line comments with rules handles consecutive comments appropriately ok 16816 apply-disable-directives eslint-disable-next-line comments without rules filters problems on the next line ok 16817 apply-disable-directives eslint-disable-next-line comments without rules keeps problems on the same line ok 16818 apply-disable-directives eslint-disable-next-line comments without rules keeps problems after the next line ok 16819 apply-disable-directives eslint-disable-next-line comments without rules filters problems on the next line even if there is an eslint-enable comment on the same line ok 16820 apply-disable-directives eslint-disable-next-line comments with rules filters problems on the next line that match the ruleId ok 16821 apply-disable-directives eslint-disable-next-line comments with rules keeps problems on the next line that do not match the ruleId ok 16822 apply-disable-directives unrecognized directive types throws a TypeError when it encounters an unrecognized directive ok 16823 apply-disable-directives unused directives Adds a problem for /* eslint-disable */ ok 16824 apply-disable-directives unused directives Does not add a problem for /* eslint-disable */ /* (problem) */ ok 16825 apply-disable-directives unused directives Adds a problem for /* eslint-disable foo */ ok 16826 apply-disable-directives unused directives Adds a problem for /* eslint-disable foo */ /* (problem from another rule) */ ok 16827 apply-disable-directives unused directives Adds a problem for /* (problem from foo) */ /* eslint-disable */ /* eslint-enable foo */ ok 16828 apply-disable-directives unused directives Adds a problem for /* eslint-disable */ /* eslint-enable */ ok 16829 apply-disable-directives unused directives Adds two problems for /* eslint-disable */ /* eslint-disable */ ok 16830 apply-disable-directives unused directives Adds a problem for /* eslint-disable */ /* eslint-disable */ /* (problem) */ ok 16831 apply-disable-directives unused directives Adds a problem for /* eslint-disable foo */ /* eslint-disable */ /* (problem from foo) */ ok 16832 apply-disable-directives unused directives Does not add a problem for /* eslint-disable foo */ /* (problem from foo) */ ok 16833 apply-disable-directives unused directives Adds a problem for /* eslint-disable */ /* eslint-disable foo */ /* (problem from foo) */ ok 16834 apply-disable-directives unused directives Adds a problem for /* eslint-disable */ /* eslint-disable foo */ /* (problem from another rule) */ ok 16835 apply-disable-directives unused directives Adds a problem for /* eslint-disable foo */ /* eslint-enable foo */ /* (problem from foo) */ ok 16836 apply-disable-directives unused directives Adds a problem for /* eslint-disable foo */ /* eslint-enable */ /* (problem from foo) */ ok 16837 apply-disable-directives unused directives Adds two problems for /* eslint-disable */ /* eslint-disable foo */ /* eslint-enable foo */ /* (problem from foo) */ ok 16838 apply-disable-directives unused directives Adds a problem for // eslint-disable-line ok 16839 apply-disable-directives unused directives Does not add a problem for // eslint-disable-line (problem) ok 16840 apply-disable-directives unused directives Adds a problem for // eslint-disable-next-line ok 16841 apply-disable-directives unused directives Does not add a problem for // eslint-disable-next-line \n (problem) ok 16842 apply-disable-directives unused directives adds two problems for /* eslint-disable */ // eslint-disable-line ok 16843 apply-disable-directives unused directives Does not add problems when reportUnusedDisableDirectives: false is used ok 16844 ast-utils isTokenOnSameLine should return false if the tokens are not on the same line ok 16845 ast-utils isTokenOnSameLine should return true if the tokens are on the same line ok 16846 ast-utils isNullOrUndefined should return true if the argument is null ok 16847 ast-utils isNullOrUndefined should return true if the argument is undefined ok 16848 ast-utils isNullOrUndefined should return false if the argument is a number ok 16849 ast-utils isNullOrUndefined should return false if the argument is a string ok 16850 ast-utils isNullOrUndefined should return false if the argument is a boolean ok 16851 ast-utils isNullOrUndefined should return false if the argument is an object ok 16852 ast-utils isNullOrUndefined should return false if the argument is a unicode regex ok 16853 ast-utils checkReference should return true if reference is assigned for catch ok 16854 ast-utils checkReference should return true if reference is assigned for const ok 16855 ast-utils checkReference should return false if reference is not assigned for const ok 16856 ast-utils checkReference should return true if reference is assigned for class ok 16857 ast-utils checkReference should return false if reference is not assigned for class ok 16858 ast-utils isDirectiveComment should return false if it is not a directive line comment ok 16859 ast-utils isDirectiveComment should return false if it is not a directive block comment ok 16860 ast-utils isDirectiveComment should return true if it is a directive line comment ok 16861 ast-utils isDirectiveComment should return true if it is a directive block comment ok 16862 ast-utils isParenthesised should return false for not parenthesised nodes ok 16863 ast-utils isParenthesised should return true for not parenthesised nodes ok 16864 ast-utils isFunction should return true for FunctionDeclaration ok 16865 ast-utils isFunction should return true for FunctionExpression ok 16866 ast-utils isFunction should return true for AllowFunctionExpression ok 16867 ast-utils isFunction should return false for Program, VariableDeclaration, BlockStatement ok 16868 ast-utils isLoop should return true for DoWhileStatement ok 16869 ast-utils isLoop should return true for ForInStatement ok 16870 ast-utils isLoop should return true for ForOfStatement ok 16871 ast-utils isLoop should return true for ForStatement ok 16872 ast-utils isLoop should return true for WhileStatement ok 16873 ast-utils isLoop should return false for Program, VariableDeclaration, BlockStatement ok 16874 ast-utils isInLoop should return true for a loop itself ok 16875 ast-utils isInLoop should return true for a loop condition ok 16876 ast-utils isInLoop should return true for a loop assignee ok 16877 ast-utils isInLoop should return true for a node within a loop body ok 16878 ast-utils isInLoop should return false for a node outside a loop body ok 16879 ast-utils isInLoop should return false when the loop is not in the current function ok 16880 ast-utils getStaticPropertyName should return 'b' for `a.b` ok 16881 ast-utils getStaticPropertyName should return 'b' for `a['b']` ok 16882 ast-utils getStaticPropertyName should return 'b' for `a[`b`]` ok 16883 ast-utils getStaticPropertyName should return '100' for `a[100]` ok 16884 ast-utils getStaticPropertyName should return null for `a[b]` ok 16885 ast-utils getStaticPropertyName should return null for `a['a' + 'b']` ok 16886 ast-utils getStaticPropertyName should return null for `a[tag`b`]` ok 16887 ast-utils getStaticPropertyName should return null for `a[`${b}`]` ok 16888 ast-utils getStaticPropertyName should return 'b' for `b: 1` ok 16889 ast-utils getStaticPropertyName should return 'b' for `b() {}` ok 16890 ast-utils getStaticPropertyName should return 'b' for `get b() {}` ok 16891 ast-utils getStaticPropertyName should return 'b' for `['b']: 1` ok 16892 ast-utils getStaticPropertyName should return 'b' for `['b']() {}` ok 16893 ast-utils getStaticPropertyName should return 'b' for `[`b`]: 1` ok 16894 ast-utils getStaticPropertyName should return '100' for` [100]: 1` ok 16895 ast-utils getStaticPropertyName should return null for `[b]: 1` ok 16896 ast-utils getStaticPropertyName should return null for `['a' + 'b']: 1` ok 16897 ast-utils getStaticPropertyName should return null for `[tag`b`]: 1` ok 16898 ast-utils getStaticPropertyName should return null for `[`${b}`]: 1` ok 16899 ast-utils getStaticPropertyName should return null for non member expressions ok 16900 ast-utils getDirectivePrologue should return empty array if node is not a Program, FunctionDeclaration, FunctionExpression, or ArrowFunctionExpression ok 16901 ast-utils getDirectivePrologue should return empty array if node is a braceless ArrowFunctionExpression node ok 16902 ast-utils getDirectivePrologue should return empty array if there are no directives in Program body ok 16903 ast-utils getDirectivePrologue should return empty array if there are no directives in FunctionDeclaration body ok 16904 ast-utils getDirectivePrologue should return empty array if there are no directives in FunctionExpression body ok 16905 ast-utils getDirectivePrologue should return empty array if there are no directives in ArrowFunctionExpression body ok 16906 ast-utils getDirectivePrologue should return directives in Program body ok 16907 ast-utils getDirectivePrologue should return directives in FunctionDeclaration body ok 16908 ast-utils getDirectivePrologue should return directives in FunctionExpression body ok 16909 ast-utils getDirectivePrologue should return directives in ArrowFunctionExpression body ok 16910 ast-utils isDecimalInteger should return true for 0 ok 16911 ast-utils isDecimalInteger should return true for 5 ok 16912 ast-utils isDecimalInteger should return false for 5. ok 16913 ast-utils isDecimalInteger should return false for 5.0 ok 16914 ast-utils isDecimalInteger should return false for 05 ok 16915 ast-utils isDecimalInteger should return false for 0x5 ok 16916 ast-utils isDecimalInteger should return false for 5e0 ok 16917 ast-utils isDecimalInteger should return false for 5e-0 ok 16918 ast-utils isDecimalInteger should return false for '5' ok 16919 ast-utils getFunctionNameWithKind should return "function 'foo'" for "function foo() {}". ok 16920 ast-utils getFunctionNameWithKind should return "function 'foo'" for "(function foo() {})". ok 16921 ast-utils getFunctionNameWithKind should return "function" for "(function() {})". ok 16922 ast-utils getFunctionNameWithKind should return "generator function 'foo'" for "function* foo() {}". ok 16923 ast-utils getFunctionNameWithKind should return "generator function 'foo'" for "(function* foo() {})". ok 16924 ast-utils getFunctionNameWithKind should return "generator function" for "(function*() {})". ok 16925 ast-utils getFunctionNameWithKind should return "arrow function" for "() => {}". ok 16926 ast-utils getFunctionNameWithKind should return "async arrow function" for "async () => {}". ok 16927 ast-utils getFunctionNameWithKind should return "method 'foo'" for "({ foo: function foo() {} })". ok 16928 ast-utils getFunctionNameWithKind should return "method 'foo'" for "({ foo: function() {} })". ok 16929 ast-utils getFunctionNameWithKind should return "method 'foo'" for "({ ['foo']: function() {} })". ok 16930 ast-utils getFunctionNameWithKind should return "method" for "({ [foo]: function() {} })". ok 16931 ast-utils getFunctionNameWithKind should return "method 'foo'" for "({ foo() {} })". ok 16932 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "({ foo: function* foo() {} })". ok 16933 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "({ foo: function*() {} })". ok 16934 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "({ ['foo']: function*() {} })". ok 16935 ast-utils getFunctionNameWithKind should return "generator method" for "({ [foo]: function*() {} })". ok 16936 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "({ *foo() {} })". ok 16937 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "({ foo: async function foo() {} })". ok 16938 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "({ foo: async function() {} })". ok 16939 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "({ ['foo']: async function() {} })". ok 16940 ast-utils getFunctionNameWithKind should return "async method" for "({ [foo]: async function() {} })". ok 16941 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "({ async foo() {} })". ok 16942 ast-utils getFunctionNameWithKind should return "getter 'foo'" for "({ get foo() {} })". ok 16943 ast-utils getFunctionNameWithKind should return "setter 'foo'" for "({ set foo(a) {} })". ok 16944 ast-utils getFunctionNameWithKind should return "constructor" for "class A { constructor() {} }". ok 16945 ast-utils getFunctionNameWithKind should return "method 'foo'" for "class A { foo() {} }". ok 16946 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "class A { *foo() {} }". ok 16947 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "class A { async foo() {} }". ok 16948 ast-utils getFunctionNameWithKind should return "method 'foo'" for "class A { ['foo']() {} }". ok 16949 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "class A { *['foo']() {} }". ok 16950 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "class A { async ['foo']() {} }". ok 16951 ast-utils getFunctionNameWithKind should return "method" for "class A { [foo]() {} }". ok 16952 ast-utils getFunctionNameWithKind should return "generator method" for "class A { *[foo]() {} }". ok 16953 ast-utils getFunctionNameWithKind should return "async method" for "class A { async [foo]() {} }". ok 16954 ast-utils getFunctionNameWithKind should return "getter 'foo'" for "class A { get foo() {} }". ok 16955 ast-utils getFunctionNameWithKind should return "setter 'foo'" for "class A { set foo(a) {} }". ok 16956 ast-utils getFunctionNameWithKind should return "static method 'foo'" for "class A { static foo() {} }". ok 16957 ast-utils getFunctionNameWithKind should return "static generator method 'foo'" for "class A { static *foo() {} }". ok 16958 ast-utils getFunctionNameWithKind should return "static async method 'foo'" for "class A { static async foo() {} }". ok 16959 ast-utils getFunctionNameWithKind should return "static getter 'foo'" for "class A { static get foo() {} }". ok 16960 ast-utils getFunctionNameWithKind should return "static setter 'foo'" for "class A { static set foo(a) {} }". ok 16961 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}" for "function foo() {}". ok 16962 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":1},"end":{"line":1,"column":13}}" for "(function foo() {})". ok 16963 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":1},"end":{"line":1,"column":9}}" for "(function() {})". ok 16964 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}" for "function* foo() {}". ok 16965 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":1},"end":{"line":1,"column":14}}" for "(function* foo() {})". ok 16966 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":1},"end":{"line":1,"column":10}}" for "(function*() {})". ok 16967 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":5}}" for "() => {}". ok 16968 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":9},"end":{"line":1,"column":11}}" for "async () => {}". ok 16969 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":20}}" for "({ foo: function foo() {} })". ok 16970 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":16}}" for "({ foo: function() {} })". ok 16971 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":20}}" for "({ ['foo']: function() {} })". ok 16972 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":18}}" for "({ [foo]: function() {} })". ok 16973 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":6}}" for "({ foo() {} })". ok 16974 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":21}}" for "({ foo: function* foo() {} })". ok 16975 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":17}}" for "({ foo: function*() {} })". ok 16976 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":21}}" for "({ ['foo']: function*() {} })". ok 16977 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":19}}" for "({ [foo]: function*() {} })". ok 16978 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":7}}" for "({ *foo() {} })". ok 16979 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":26}}" for "({ foo: async function foo() {} })". ok 16980 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":22}}" for "({ foo: async function() {} })". ok 16981 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":26}}" for "({ ['foo']: async function() {} })". ok 16982 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":24}}" for "({ [foo]: async function() {} })". ok 16983 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":12}}" for "({ async foo() {} })". ok 16984 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":10}}" for "({ get foo() {} })". ok 16985 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":10}}" for "({ set foo(a) {} })". ok 16986 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":21}}" for "class A { constructor() {} }". ok 16987 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":13}}" for "class A { foo() {} }". ok 16988 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":14}}" for "class A { *foo() {} }". ok 16989 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":19}}" for "class A { async foo() {} }". ok 16990 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":17}}" for "class A { ['foo']() {} }". ok 16991 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":18}}" for "class A { *['foo']() {} }". ok 16992 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":23}}" for "class A { async ['foo']() {} }". ok 16993 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":15}}" for "class A { [foo]() {} }". ok 16994 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":16}}" for "class A { *[foo]() {} }". ok 16995 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":21}}" for "class A { async [foo]() {} }". ok 16996 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":17}}" for "class A { get foo() {} }". ok 16997 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":17}}" for "class A { set foo(a) {} }". ok 16998 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":20}}" for "class A { static foo() {} }". ok 16999 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":21}}" for "class A { static *foo() {} }". ok 17000 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":26}}" for "class A { static async foo() {} }". ok 17001 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":24}}" for "class A { static get foo() {} }". ok 17002 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":24}}" for "class A { static set foo(a) {} }". ok 17003 ast-utils isEmptyBlock should return true for {} ok 17004 ast-utils isEmptyBlock should return false for { a } ok 17005 ast-utils isEmptyBlock should return false for a ok 17006 ast-utils isEmptyFunction should return true for (function foo() {}) ok 17007 ast-utils isEmptyFunction should return false for (function foo() { a }) ok 17008 ast-utils isEmptyFunction should return true for (a) => {} ok 17009 ast-utils isEmptyFunction should return false for (a) => { a } ok 17010 ast-utils isEmptyFunction should return false for (a) => a ok 17011 ast-utils getParenthesisedText should return (((foo))) for (((foo))); bar; ok 17012 ast-utils getParenthesisedText should return (/* comment */(((foo.bar())))) for (/* comment */(((foo.bar())))); baz(); ok 17013 ast-utils getParenthesisedText should return (foo, bar) for (foo, bar) ok 17014 ast-utils couldBeError returns false for 5 ok 17015 ast-utils couldBeError returns false for null ok 17016 ast-utils couldBeError returns false for true ok 17017 ast-utils couldBeError returns false for 'foo' ok 17018 ast-utils couldBeError returns false for `foo` ok 17019 ast-utils couldBeError returns true for foo ok 17020 ast-utils couldBeError returns true for new Foo ok 17021 ast-utils couldBeError returns true for Foo() ok 17022 ast-utils couldBeError returns true for foo`bar` ok 17023 ast-utils couldBeError returns true for foo.bar ok 17024 ast-utils couldBeError returns true for (foo = bar) ok 17025 ast-utils couldBeError returns false for (foo = 1) ok 17026 ast-utils couldBeError returns false for (1, 2, 3) ok 17027 ast-utils couldBeError returns false for (foo, 2, 3) ok 17028 ast-utils couldBeError returns true for (1, 2, foo) ok 17029 ast-utils couldBeError returns false for 1 && 2 ok 17030 ast-utils couldBeError returns true for 1 && foo ok 17031 ast-utils couldBeError returns true for foo && 2 ok 17032 ast-utils couldBeError returns false for foo ? 1 : 2 ok 17033 ast-utils couldBeError returns true for foo ? bar : 2 ok 17034 ast-utils couldBeError returns true for foo ? 1 : bar ok 17035 ast-utils couldBeError returns false for [1, 2, 3] ok 17036 ast-utils couldBeError returns false for ({ foo: 1 }) ok 17037 ast-utils isArrowToken should return false for '('. ok 17038 ast-utils isArrowToken should return false for ')'. ok 17039 ast-utils isArrowToken should return true for '=>'. ok 17040 ast-utils isArrowToken should return false for '5'. ok 17041 ast-utils isClosingBraceToken should return false for 'if'. ok 17042 ast-utils isClosingBraceToken should return false for '('. ok 17043 ast-utils isClosingBraceToken should return false for 'obj'. ok 17044 ast-utils isClosingBraceToken should return false for '&&'. ok 17045 ast-utils isClosingBraceToken should return false for 'foo'. ok 17046 ast-utils isClosingBraceToken should return false for ')'. ok 17047 ast-utils isClosingBraceToken should return false for '{'. ok 17048 ast-utils isClosingBraceToken should return false for 'obj'. ok 17049 ast-utils isClosingBraceToken should return false for '['. ok 17050 ast-utils isClosingBraceToken should return false for 'foo'. ok 17051 ast-utils isClosingBraceToken should return false for ']'. ok 17052 ast-utils isClosingBraceToken should return false for '('. ok 17053 ast-utils isClosingBraceToken should return false for ')'. ok 17054 ast-utils isClosingBraceToken should return false for ';'. ok 17055 ast-utils isClosingBraceToken should return true for '}'. ok 17056 ast-utils isNotClosingBraceToken should return false for 'if'. ok 17057 ast-utils isNotClosingBraceToken should return false for '('. ok 17058 ast-utils isNotClosingBraceToken should return false for 'obj'. ok 17059 ast-utils isNotClosingBraceToken should return false for '&&'. ok 17060 ast-utils isNotClosingBraceToken should return false for 'foo'. ok 17061 ast-utils isNotClosingBraceToken should return false for ')'. ok 17062 ast-utils isNotClosingBraceToken should return false for '{'. ok 17063 ast-utils isNotClosingBraceToken should return false for 'obj'. ok 17064 ast-utils isNotClosingBraceToken should return false for '['. ok 17065 ast-utils isNotClosingBraceToken should return false for 'foo'. ok 17066 ast-utils isNotClosingBraceToken should return false for ']'. ok 17067 ast-utils isNotClosingBraceToken should return false for '('. ok 17068 ast-utils isNotClosingBraceToken should return false for ')'. ok 17069 ast-utils isNotClosingBraceToken should return false for ';'. ok 17070 ast-utils isNotClosingBraceToken should return true for '}'. ok 17071 ast-utils isClosingBracketToken should return false for 'if'. ok 17072 ast-utils isClosingBracketToken should return false for '('. ok 17073 ast-utils isClosingBracketToken should return false for 'obj'. ok 17074 ast-utils isClosingBracketToken should return false for '&&'. ok 17075 ast-utils isClosingBracketToken should return false for 'foo'. ok 17076 ast-utils isClosingBracketToken should return false for ')'. ok 17077 ast-utils isClosingBracketToken should return false for '{'. ok 17078 ast-utils isClosingBracketToken should return false for 'obj'. ok 17079 ast-utils isClosingBracketToken should return false for '['. ok 17080 ast-utils isClosingBracketToken should return false for 'foo'. ok 17081 ast-utils isClosingBracketToken should return true for ']'. ok 17082 ast-utils isClosingBracketToken should return false for '('. ok 17083 ast-utils isClosingBracketToken should return false for ')'. ok 17084 ast-utils isClosingBracketToken should return false for ';'. ok 17085 ast-utils isClosingBracketToken should return false for '}'. ok 17086 ast-utils isNotClosingBracketToken should return false for 'if'. ok 17087 ast-utils isNotClosingBracketToken should return false for '('. ok 17088 ast-utils isNotClosingBracketToken should return false for 'obj'. ok 17089 ast-utils isNotClosingBracketToken should return false for '&&'. ok 17090 ast-utils isNotClosingBracketToken should return false for 'foo'. ok 17091 ast-utils isNotClosingBracketToken should return false for ')'. ok 17092 ast-utils isNotClosingBracketToken should return false for '{'. ok 17093 ast-utils isNotClosingBracketToken should return false for 'obj'. ok 17094 ast-utils isNotClosingBracketToken should return false for '['. ok 17095 ast-utils isNotClosingBracketToken should return false for 'foo'. ok 17096 ast-utils isNotClosingBracketToken should return true for ']'. ok 17097 ast-utils isNotClosingBracketToken should return false for '('. ok 17098 ast-utils isNotClosingBracketToken should return false for ')'. ok 17099 ast-utils isNotClosingBracketToken should return false for ';'. ok 17100 ast-utils isNotClosingBracketToken should return false for '}'. ok 17101 ast-utils isClosingParenToken should return false for 'if'. ok 17102 ast-utils isClosingParenToken should return false for '('. ok 17103 ast-utils isClosingParenToken should return false for 'obj'. ok 17104 ast-utils isClosingParenToken should return false for '&&'. ok 17105 ast-utils isClosingParenToken should return false for 'foo'. ok 17106 ast-utils isClosingParenToken should return true for ')'. ok 17107 ast-utils isClosingParenToken should return false for '{'. ok 17108 ast-utils isClosingParenToken should return false for 'obj'. ok 17109 ast-utils isClosingParenToken should return false for '['. ok 17110 ast-utils isClosingParenToken should return false for 'foo'. ok 17111 ast-utils isClosingParenToken should return false for ']'. ok 17112 ast-utils isClosingParenToken should return false for '('. ok 17113 ast-utils isClosingParenToken should return true for ')'. ok 17114 ast-utils isClosingParenToken should return false for ';'. ok 17115 ast-utils isClosingParenToken should return false for '}'. ok 17116 ast-utils isNotClosingParenToken should return false for 'if'. ok 17117 ast-utils isNotClosingParenToken should return false for '('. ok 17118 ast-utils isNotClosingParenToken should return false for 'obj'. ok 17119 ast-utils isNotClosingParenToken should return false for '&&'. ok 17120 ast-utils isNotClosingParenToken should return false for 'foo'. ok 17121 ast-utils isNotClosingParenToken should return true for ')'. ok 17122 ast-utils isNotClosingParenToken should return false for '{'. ok 17123 ast-utils isNotClosingParenToken should return false for 'obj'. ok 17124 ast-utils isNotClosingParenToken should return false for '['. ok 17125 ast-utils isNotClosingParenToken should return false for 'foo'. ok 17126 ast-utils isNotClosingParenToken should return false for ']'. ok 17127 ast-utils isNotClosingParenToken should return false for '('. ok 17128 ast-utils isNotClosingParenToken should return true for ')'. ok 17129 ast-utils isNotClosingParenToken should return false for ';'. ok 17130 ast-utils isNotClosingParenToken should return false for '}'. ok 17131 ast-utils isColonToken should return false for 'const'. ok 17132 ast-utils isColonToken should return false for 'obj'. ok 17133 ast-utils isColonToken should return false for '='. ok 17134 ast-utils isColonToken should return false for '{'. ok 17135 ast-utils isColonToken should return false for 'foo'. ok 17136 ast-utils isColonToken should return true for ':'. ok 17137 ast-utils isColonToken should return false for '1'. ok 17138 ast-utils isColonToken should return false for ','. ok 17139 ast-utils isColonToken should return false for 'bar'. ok 17140 ast-utils isColonToken should return true for ':'. ok 17141 ast-utils isColonToken should return false for '2'. ok 17142 ast-utils isColonToken should return false for '}'. ok 17143 ast-utils isColonToken should return false for ';'. ok 17144 ast-utils isNotColonToken should return false for 'const'. ok 17145 ast-utils isNotColonToken should return false for 'obj'. ok 17146 ast-utils isNotColonToken should return false for '='. ok 17147 ast-utils isNotColonToken should return false for '{'. ok 17148 ast-utils isNotColonToken should return false for 'foo'. ok 17149 ast-utils isNotColonToken should return true for ':'. ok 17150 ast-utils isNotColonToken should return false for '1'. ok 17151 ast-utils isNotColonToken should return false for ','. ok 17152 ast-utils isNotColonToken should return false for 'bar'. ok 17153 ast-utils isNotColonToken should return true for ':'. ok 17154 ast-utils isNotColonToken should return false for '2'. ok 17155 ast-utils isNotColonToken should return false for '}'. ok 17156 ast-utils isNotColonToken should return false for ';'. ok 17157 ast-utils isCommaToken should return false for 'const'. ok 17158 ast-utils isCommaToken should return false for 'obj'. ok 17159 ast-utils isCommaToken should return false for '='. ok 17160 ast-utils isCommaToken should return false for '{'. ok 17161 ast-utils isCommaToken should return false for 'foo'. ok 17162 ast-utils isCommaToken should return false for ':'. ok 17163 ast-utils isCommaToken should return false for '1'. ok 17164 ast-utils isCommaToken should return true for ','. ok 17165 ast-utils isCommaToken should return false for 'bar'. ok 17166 ast-utils isCommaToken should return false for ':'. ok 17167 ast-utils isCommaToken should return false for '2'. ok 17168 ast-utils isCommaToken should return false for '}'. ok 17169 ast-utils isCommaToken should return false for ';'. ok 17170 ast-utils isNotCommaToken should return false for 'const'. ok 17171 ast-utils isNotCommaToken should return false for 'obj'. ok 17172 ast-utils isNotCommaToken should return false for '='. ok 17173 ast-utils isNotCommaToken should return false for '{'. ok 17174 ast-utils isNotCommaToken should return false for 'foo'. ok 17175 ast-utils isNotCommaToken should return false for ':'. ok 17176 ast-utils isNotCommaToken should return false for '1'. ok 17177 ast-utils isNotCommaToken should return true for ','. ok 17178 ast-utils isNotCommaToken should return false for 'bar'. ok 17179 ast-utils isNotCommaToken should return false for ':'. ok 17180 ast-utils isNotCommaToken should return false for '2'. ok 17181 ast-utils isNotCommaToken should return false for '}'. ok 17182 ast-utils isNotCommaToken should return false for ';'. ok 17183 ast-utils isCommentToken should return false for 'const'. ok 17184 ast-utils isCommentToken should return false for 'obj'. ok 17185 ast-utils isCommentToken should return false for '='. ok 17186 ast-utils isCommentToken should return false for '{'. ok 17187 ast-utils isCommentToken should return false for 'foo'. ok 17188 ast-utils isCommentToken should return false for ':'. ok 17189 ast-utils isCommentToken should return false for '1'. ok 17190 ast-utils isCommentToken should return false for ','. ok 17191 ast-utils isCommentToken should return false for 'bar'. ok 17192 ast-utils isCommentToken should return false for ':'. ok 17193 ast-utils isCommentToken should return false for '2'. ok 17194 ast-utils isCommentToken should return false for '}'. ok 17195 ast-utils isCommentToken should return false for ';'. ok 17196 ast-utils isCommentToken should return true for 'block'. ok 17197 ast-utils isCommentToken should return true for 'line'. ok 17198 ast-utils isKeywordToken should return true for 'const'. ok 17199 ast-utils isKeywordToken should return false for 'obj'. ok 17200 ast-utils isKeywordToken should return false for '='. ok 17201 ast-utils isKeywordToken should return false for '{'. ok 17202 ast-utils isKeywordToken should return false for 'foo'. ok 17203 ast-utils isKeywordToken should return false for ':'. ok 17204 ast-utils isKeywordToken should return false for '1'. ok 17205 ast-utils isKeywordToken should return false for ','. ok 17206 ast-utils isKeywordToken should return false for 'bar'. ok 17207 ast-utils isKeywordToken should return false for ':'. ok 17208 ast-utils isKeywordToken should return false for '2'. ok 17209 ast-utils isKeywordToken should return false for '}'. ok 17210 ast-utils isKeywordToken should return false for ';'. ok 17211 ast-utils isOpeningBraceToken should return false for 'if'. ok 17212 ast-utils isOpeningBraceToken should return false for '('. ok 17213 ast-utils isOpeningBraceToken should return false for 'obj'. ok 17214 ast-utils isOpeningBraceToken should return false for '&&'. ok 17215 ast-utils isOpeningBraceToken should return false for 'foo'. ok 17216 ast-utils isOpeningBraceToken should return false for ')'. ok 17217 ast-utils isOpeningBraceToken should return true for '{'. ok 17218 ast-utils isOpeningBraceToken should return false for 'obj'. ok 17219 ast-utils isOpeningBraceToken should return false for '['. ok 17220 ast-utils isOpeningBraceToken should return false for 'foo'. ok 17221 ast-utils isOpeningBraceToken should return false for ']'. ok 17222 ast-utils isOpeningBraceToken should return false for '('. ok 17223 ast-utils isOpeningBraceToken should return false for ')'. ok 17224 ast-utils isOpeningBraceToken should return false for ';'. ok 17225 ast-utils isOpeningBraceToken should return false for '}'. ok 17226 ast-utils isNotOpeningBraceToken should return false for 'if'. ok 17227 ast-utils isNotOpeningBraceToken should return false for '('. ok 17228 ast-utils isNotOpeningBraceToken should return false for 'obj'. ok 17229 ast-utils isNotOpeningBraceToken should return false for '&&'. ok 17230 ast-utils isNotOpeningBraceToken should return false for 'foo'. ok 17231 ast-utils isNotOpeningBraceToken should return false for ')'. ok 17232 ast-utils isNotOpeningBraceToken should return true for '{'. ok 17233 ast-utils isNotOpeningBraceToken should return false for 'obj'. ok 17234 ast-utils isNotOpeningBraceToken should return false for '['. ok 17235 ast-utils isNotOpeningBraceToken should return false for 'foo'. ok 17236 ast-utils isNotOpeningBraceToken should return false for ']'. ok 17237 ast-utils isNotOpeningBraceToken should return false for '('. ok 17238 ast-utils isNotOpeningBraceToken should return false for ')'. ok 17239 ast-utils isNotOpeningBraceToken should return false for ';'. ok 17240 ast-utils isNotOpeningBraceToken should return false for '}'. ok 17241 ast-utils isOpeningBracketToken should return false for 'if'. ok 17242 ast-utils isOpeningBracketToken should return false for '('. ok 17243 ast-utils isOpeningBracketToken should return false for 'obj'. ok 17244 ast-utils isOpeningBracketToken should return false for '&&'. ok 17245 ast-utils isOpeningBracketToken should return false for 'foo'. ok 17246 ast-utils isOpeningBracketToken should return false for ')'. ok 17247 ast-utils isOpeningBracketToken should return false for '{'. ok 17248 ast-utils isOpeningBracketToken should return false for 'obj'. ok 17249 ast-utils isOpeningBracketToken should return true for '['. ok 17250 ast-utils isOpeningBracketToken should return false for 'foo'. ok 17251 ast-utils isOpeningBracketToken should return false for ']'. ok 17252 ast-utils isOpeningBracketToken should return false for '('. ok 17253 ast-utils isOpeningBracketToken should return false for ')'. ok 17254 ast-utils isOpeningBracketToken should return false for ';'. ok 17255 ast-utils isOpeningBracketToken should return false for '}'. ok 17256 ast-utils isNotOpeningBracketToken should return false for 'if'. ok 17257 ast-utils isNotOpeningBracketToken should return false for '('. ok 17258 ast-utils isNotOpeningBracketToken should return false for 'obj'. ok 17259 ast-utils isNotOpeningBracketToken should return false for '&&'. ok 17260 ast-utils isNotOpeningBracketToken should return false for 'foo'. ok 17261 ast-utils isNotOpeningBracketToken should return false for ')'. ok 17262 ast-utils isNotOpeningBracketToken should return false for '{'. ok 17263 ast-utils isNotOpeningBracketToken should return false for 'obj'. ok 17264 ast-utils isNotOpeningBracketToken should return true for '['. ok 17265 ast-utils isNotOpeningBracketToken should return false for 'foo'. ok 17266 ast-utils isNotOpeningBracketToken should return false for ']'. ok 17267 ast-utils isNotOpeningBracketToken should return false for '('. ok 17268 ast-utils isNotOpeningBracketToken should return false for ')'. ok 17269 ast-utils isNotOpeningBracketToken should return false for ';'. ok 17270 ast-utils isNotOpeningBracketToken should return false for '}'. ok 17271 ast-utils isOpeningParenToken should return false for 'if'. ok 17272 ast-utils isOpeningParenToken should return true for '('. ok 17273 ast-utils isOpeningParenToken should return false for 'obj'. ok 17274 ast-utils isOpeningParenToken should return false for '&&'. ok 17275 ast-utils isOpeningParenToken should return false for 'foo'. ok 17276 ast-utils isOpeningParenToken should return false for ')'. ok 17277 ast-utils isOpeningParenToken should return false for '{'. ok 17278 ast-utils isOpeningParenToken should return false for 'obj'. ok 17279 ast-utils isOpeningParenToken should return false for '['. ok 17280 ast-utils isOpeningParenToken should return false for 'foo'. ok 17281 ast-utils isOpeningParenToken should return false for ']'. ok 17282 ast-utils isOpeningParenToken should return true for '('. ok 17283 ast-utils isOpeningParenToken should return false for ')'. ok 17284 ast-utils isOpeningParenToken should return false for ';'. ok 17285 ast-utils isOpeningParenToken should return false for '}'. ok 17286 ast-utils isNotOpeningParenToken should return false for 'if'. ok 17287 ast-utils isNotOpeningParenToken should return true for '('. ok 17288 ast-utils isNotOpeningParenToken should return false for 'obj'. ok 17289 ast-utils isNotOpeningParenToken should return false for '&&'. ok 17290 ast-utils isNotOpeningParenToken should return false for 'foo'. ok 17291 ast-utils isNotOpeningParenToken should return false for ')'. ok 17292 ast-utils isNotOpeningParenToken should return false for '{'. ok 17293 ast-utils isNotOpeningParenToken should return false for 'obj'. ok 17294 ast-utils isNotOpeningParenToken should return false for '['. ok 17295 ast-utils isNotOpeningParenToken should return false for 'foo'. ok 17296 ast-utils isNotOpeningParenToken should return false for ']'. ok 17297 ast-utils isNotOpeningParenToken should return true for '('. ok 17298 ast-utils isNotOpeningParenToken should return false for ')'. ok 17299 ast-utils isNotOpeningParenToken should return false for ';'. ok 17300 ast-utils isNotOpeningParenToken should return false for '}'. ok 17301 ast-utils isSemicolonToken should return false for 'if'. ok 17302 ast-utils isSemicolonToken should return false for '('. ok 17303 ast-utils isSemicolonToken should return false for 'obj'. ok 17304 ast-utils isSemicolonToken should return false for '&&'. ok 17305 ast-utils isSemicolonToken should return false for 'foo'. ok 17306 ast-utils isSemicolonToken should return false for ')'. ok 17307 ast-utils isSemicolonToken should return false for '{'. ok 17308 ast-utils isSemicolonToken should return false for 'obj'. ok 17309 ast-utils isSemicolonToken should return false for '['. ok 17310 ast-utils isSemicolonToken should return false for 'foo'. ok 17311 ast-utils isSemicolonToken should return false for ']'. ok 17312 ast-utils isSemicolonToken should return false for '('. ok 17313 ast-utils isSemicolonToken should return false for ')'. ok 17314 ast-utils isSemicolonToken should return true for ';'. ok 17315 ast-utils isSemicolonToken should return false for '}'. ok 17316 ast-utils isNotSemicolonToken should return false for 'if'. ok 17317 ast-utils isNotSemicolonToken should return false for '('. ok 17318 ast-utils isNotSemicolonToken should return false for 'obj'. ok 17319 ast-utils isNotSemicolonToken should return false for '&&'. ok 17320 ast-utils isNotSemicolonToken should return false for 'foo'. ok 17321 ast-utils isNotSemicolonToken should return false for ')'. ok 17322 ast-utils isNotSemicolonToken should return false for '{'. ok 17323 ast-utils isNotSemicolonToken should return false for 'obj'. ok 17324 ast-utils isNotSemicolonToken should return false for '['. ok 17325 ast-utils isNotSemicolonToken should return false for 'foo'. ok 17326 ast-utils isNotSemicolonToken should return false for ']'. ok 17327 ast-utils isNotSemicolonToken should return false for '('. ok 17328 ast-utils isNotSemicolonToken should return false for ')'. ok 17329 ast-utils isNotSemicolonToken should return true for ';'. ok 17330 ast-utils isNotSemicolonToken should return false for '}'. ok 17331 ast-utils isNullLiteral returns false for 5 ok 17332 ast-utils isNullLiteral returns true for null ok 17333 ast-utils isNullLiteral returns false for /abc/u ok 17334 ast-utils isNullLiteral returns false for true ok 17335 ast-utils isNullLiteral returns false for 'null' ok 17336 ast-utils isNullLiteral returns false for foo ok 17337 ast-utils createGlobalLinebreakMatcher returns a regular expression with the g flag ok 17338 ast-utils createGlobalLinebreakMatcher returns unique objects on each call ok 17339 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo ok 17340 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo bar ok 17341 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo ok 17342 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo bar ok 17343 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo bar ok 17344 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo 
bar ok 17345 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo
bar ok 17346 ast-utils canTokensBeAdjacent foo, bar ok 17347 ast-utils canTokensBeAdjacent ;foo, bar ok 17348 ast-utils canTokensBeAdjacent ;, bar ok 17349 ast-utils canTokensBeAdjacent ), bar ok 17350 ast-utils canTokensBeAdjacent foo0, bar ok 17351 ast-utils canTokensBeAdjacent foo;, bar ok 17352 ast-utils canTokensBeAdjacent foo, 0 ok 17353 ast-utils canTokensBeAdjacent of, .2 ok 17354 ast-utils canTokensBeAdjacent 2, .2 ok 17355 ast-utils canTokensBeAdjacent of, 'foo' ok 17356 ast-utils canTokensBeAdjacent foo, `bar` ok 17357 ast-utils canTokensBeAdjacent `foo`, in ok 17358 ast-utils canTokensBeAdjacent of, 0.2 ok 17359 ast-utils canTokensBeAdjacent of, 0. ok 17360 ast-utils canTokensBeAdjacent .2, foo ok 17361 ast-utils canTokensBeAdjacent 2., foo ok 17362 ast-utils canTokensBeAdjacent +, - ok 17363 ast-utils canTokensBeAdjacent ++, - ok 17364 ast-utils canTokensBeAdjacent +, -- ok 17365 ast-utils canTokensBeAdjacent ++, -- ok 17366 ast-utils canTokensBeAdjacent -, + ok 17367 ast-utils canTokensBeAdjacent --, + ok 17368 ast-utils canTokensBeAdjacent -, ++ ok 17369 ast-utils canTokensBeAdjacent --, ++ ok 17370 ast-utils canTokensBeAdjacent +, + ok 17371 ast-utils canTokensBeAdjacent -, - ok 17372 ast-utils canTokensBeAdjacent ++, + ok 17373 ast-utils canTokensBeAdjacent --, - ok 17374 ast-utils canTokensBeAdjacent +, ++ ok 17375 ast-utils canTokensBeAdjacent -, -- ok 17376 ast-utils equalTokens should return true if tokens are equal ok 17377 ast-utils equalTokens should return false if tokens are not equal ok 17378 ConfigCommentParser parseJsonConfig should parse JSON config with one item ok 17379 ConfigCommentParser parseJsonConfig should parse JSON config with two items ok 17380 ConfigCommentParser parseJsonConfig should parse JSON config with two comma-separated items ok 17381 ConfigCommentParser parseJsonConfig should parse JSON config with two items and a string severity ok 17382 ConfigCommentParser parseJsonConfig should parse JSON config with two items and options ok 17383 ConfigCommentParser parseJsonConfig should parse JSON config with two items and options from plugins ok 17384 ConfigCommentParser parseStringConfig should parse String config with one item ok 17385 ConfigCommentParser parseStringConfig should parse String config with one item and no value ok 17386 ConfigCommentParser parseStringConfig should parse String config with two items ok 17387 ConfigCommentParser parseStringConfig should parse String config with two comma-separated items ok 17388 ConfigCommentParser parseStringConfig should parse String config with two comma-separated items and no values ok 17389 ConfigCommentParser parseListConfig should parse list config with one item ok 17390 ConfigCommentParser parseListConfig should parse list config with two items ok 17391 ConfigCommentParser parseListConfig should parse list config with two items and exta whitespace ok 17392 FileFinder findAllInDirectoryAndParents() a file present in the cwd should be found, and returned as the first element of an array ok 17393 FileFinder findAllInDirectoryAndParents() a file present in a parent directory should be found, and returned as the first element of an array ok 17394 FileFinder findAllInDirectoryAndParents() a relative file present in a parent directory should be found, and returned as the first element of an array ok 17395 FileFinder findAllInDirectoryAndParents() searching for multiple files should return only the first specified file ok 17396 FileFinder findAllInDirectoryAndParents() searching for multiple files should return the second file when the first is missing ok 17397 FileFinder findAllInDirectoryAndParents() searching for multiple files should return multiple files when the first is missing and more than one filename is requested ok 17398 FileFinder findAllInDirectoryAndParents() two files present with the same name in parent directories should both be found, and returned in an array ok 17399 FileFinder findAllInDirectoryAndParents() two files present with the same name in parent directories should be in the cache after they have been found ok 17400 FileFinder findAllInDirectoryAndParents() an absent file should not be found, and an empty array returned ok 17401 FileFinder findAllInDirectoryAndParents() Not consider directory with expected file names should only find one package.json from the root ok 17402 FixTracker replaceTextRange should expand to include an explicitly retained range ok 17403 FixTracker replaceTextRange ignores a retained range that's smaller than the replaced range ok 17404 FixTracker replaceTextRange allows an unspecified retained range ok 17405 FixTracker remove should expand to include an explicitly retained range ok 17406 FixTracker retainEnclosingFunction handles a normal enclosing function ok 17407 FixTracker retainEnclosingFunction handles the case when there is no enclosing function ok 17408 FixTracker retainSurroungingTokens handles a change to a binary operator ok 17409 interpolate() passes through text without {{ }} ok 17410 interpolate() passes through text with {{ }} that don’t match a key ok 17411 interpolate() Properly interpolates keys in {{ }} ok 17412 ModuleResolver resolve() with leche,,/usr/share/nodejs/leche/lib/leche.js should find the correct location of a file ok 17413 ModuleResolver resolve() with foo,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/module-resolver/node_modules,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/module-resolver/node_modules/foo.js should find the correct location of a file ok 17414 naming normalizePackageName() with foo,eslint-config-foo should return eslint-config-foo when passed foo ok 17415 naming normalizePackageName() with eslint-config-foo,eslint-config-foo should return eslint-config-foo when passed eslint-config-foo ok 17416 naming normalizePackageName() with @z/foo,@z/eslint-config-foo should return @z/eslint-config-foo when passed @z/foo ok 17417 naming normalizePackageName() with @z\foo,@z/eslint-config-foo should return @z/eslint-config-foo when passed @z\foo ok 17418 naming normalizePackageName() with @z\foo\bar.js,@z/eslint-config-foo/bar.js should return @z/eslint-config-foo/bar.js when passed @z\foo\bar.js ok 17419 naming normalizePackageName() with @z/eslint-config,@z/eslint-config should return @z/eslint-config when passed @z/eslint-config ok 17420 naming normalizePackageName() with @z/eslint-config-foo,@z/eslint-config-foo should return @z/eslint-config-foo when passed @z/eslint-config-foo ok 17421 naming getShorthandName() with foo,foo should return foo when passed foo ok 17422 naming getShorthandName() with eslint-config-foo,foo should return foo when passed eslint-config-foo ok 17423 naming getShorthandName() with @z,@z should return @z when passed @z ok 17424 naming getShorthandName() with @z/eslint-config,@z should return @z when passed @z/eslint-config ok 17425 naming getShorthandName() with @z/foo,@z/foo should return @z/foo when passed @z/foo ok 17426 naming getShorthandName() with @z/eslint-config-foo,@z/foo should return @z/foo when passed @z/eslint-config-foo ok 17427 naming getNamespaceFromTerm() should remove namepace when passed with namepace ok 17428 pathUtil convertPathToPosix() should remove a leading './' ok 17429 pathUtil convertPathToPosix() should remove interior '../' ok 17430 pathUtil convertPathToPosix() should not remove a leading '../' ok 17431 pathUtil convertPathToPosix() should convert windows path seperators into posix style path seperators ok 17432 pathUtil getRelativePath() should return a path relative to the provided base path ok 17433 pathUtil getRelativePath() should throw if the base path is not absolute ok 17434 pathUtil getRelativePath() should treat relative file path arguments as being relative to process.cwd ok 17435 pathUtil getRelativePath() should strip a leading '/' if no baseDir is provided ok 17436 createReportTranslator old-style call with location should extract the location correctly ok 17437 createReportTranslator old-style call without location should use the start location and end location of the node ok 17438 createReportTranslator new-style call with all options should include the new-style options in the report ok 17439 createReportTranslator new-style call with all options should translate the messageId into a message ok 17440 createReportTranslator new-style call with all options should throw when both messageId and message are provided ok 17441 createReportTranslator new-style call with all options should throw when an invalid messageId is provided ok 17442 createReportTranslator new-style call with all options should throw when no message is provided ok 17443 createReportTranslator combining autofixes should merge fixes to one if 'fix' function returns an array of fixes. ok 17444 createReportTranslator combining autofixes should merge fixes to one if 'fix' function returns an iterator of fixes. ok 17445 createReportTranslator combining autofixes should pass through fixes if only one is present ok 17446 createReportTranslator combining autofixes should handle inserting BOM correctly. ok 17447 createReportTranslator combining autofixes should handle removing BOM correctly. ok 17448 createReportTranslator combining autofixes should throw an assertion error if ranges are overlapped. ok 17449 createReportTranslator combining autofixes should include a fix passed as the last argument when location is passed ok 17450 createReportTranslator message interpolation should correctly parse a message when being passed all options in an old-style report ok 17451 createReportTranslator message interpolation should correctly parse a message when being passed all options in a new-style report ok 17452 createReportTranslator message interpolation should correctly parse a message with object keys as numbers ok 17453 createReportTranslator message interpolation should correctly parse a message with array ok 17454 createReportTranslator message interpolation should allow template parameter with inner whitespace ok 17455 createReportTranslator message interpolation should allow template parameter with non-identifier characters ok 17456 createReportTranslator message interpolation should allow template parameter wrapped in braces ok 17457 createReportTranslator message interpolation should ignore template parameter with no specified value ok 17458 createReportTranslator message interpolation should handle leading whitespace in template parameter ok 17459 createReportTranslator message interpolation should handle trailing whitespace in template parameter ok 17460 createReportTranslator message interpolation should still allow inner whitespace as well as leading/trailing ok 17461 createReportTranslator message interpolation should still allow non-identifier characters as well as leading/trailing whitespace ok 17462 createReportTranslator location inference should use the provided location when given in an old-style call ok 17463 createReportTranslator location inference should use the provided location when given in an new-style call ok 17464 createReportTranslator location inference should extract the start and end locations from a node if no location is provided ok 17465 createReportTranslator location inference should have 'endLine' and 'endColumn' when 'loc' property has 'end' property. ok 17466 createReportTranslator location inference should not have 'endLine' and 'endColumn' when 'loc' property does not have 'end' property. ok 17467 createReportTranslator location inference should infer an 'endLine' and 'endColumn' property when using the object-based context.report API ok 17468 createReportTranslator converting old-style calls should include a fix passed as the last argument when location is not passed ok 17469 createReportTranslator validation should throw an error if node is not an object ok 17470 createReportTranslator validation should not throw an error if location is provided and node is not in an old-style call ok 17471 createReportTranslator validation should not throw an error if location is provided and node is not in a new-style call ok 17472 createReportTranslator validation should throw an error if neither node nor location is provided ok 17473 RuleFixer insertTextBefore should return an object with the correct information when called ok 17474 RuleFixer insertTextBeforeRange should return an object with the correct information when called ok 17475 RuleFixer insertTextAfter should return an object with the correct information when called ok 17476 RuleFixer insertTextAfterRange should return an object with the correct information when called ok 17477 RuleFixer removeAfter should return an object with the correct information when called ok 17478 RuleFixer removeAfterRange should return an object with the correct information when called ok 17479 RuleFixer replaceText should return an object with the correct information when called ok 17480 RuleFixer replaceTextRange should return an object with the correct information when called ok 17481 safe-emitter emit() and on() allows listeners to be registered calls them when emitted ok 17482 safe-emitter emit() and on() calls listeners with no `this` value ok 17483 SourceCodeFixer constructor Should not be able to add anything to this ok 17484 SourceCodeFixer applyFixes() with no BOM shouldFix parameter Should not perform any fixes if 'shouldFix' is false ok 17485 SourceCodeFixer applyFixes() with no BOM shouldFix parameter Should perform fixes if 'shouldFix' is not provided ok 17486 SourceCodeFixer applyFixes() with no BOM shouldFix parameter should call a function provided as 'shouldFix' for each message ok 17487 SourceCodeFixer applyFixes() with no BOM shouldFix parameter should provide a message object as an argument to 'shouldFix' ok 17488 SourceCodeFixer applyFixes() with no BOM shouldFix parameter should not perform fixes if 'shouldFix' function returns false ok 17489 SourceCodeFixer applyFixes() with no BOM shouldFix parameter should return original text as output if 'shouldFix' function prevents all fixes ok 17490 SourceCodeFixer applyFixes() with no BOM shouldFix parameter should only apply fixes for which the 'shouldFix' function returns true ok 17491 SourceCodeFixer applyFixes() with no BOM shouldFix parameter is called without access to internal eslint state ok 17492 SourceCodeFixer applyFixes() with no BOM Text Insertion should insert text at the end of the code ok 17493 SourceCodeFixer applyFixes() with no BOM Text Insertion should insert text at the beginning of the code ok 17494 SourceCodeFixer applyFixes() with no BOM Text Insertion should insert text in the middle of the code ok 17495 SourceCodeFixer applyFixes() with no BOM Text Insertion should insert text at the beginning, middle, and end of the code ok 17496 SourceCodeFixer applyFixes() with no BOM Text Insertion should ignore reversed ranges ok 17497 SourceCodeFixer applyFixes() with no BOM Text Replacement should replace text at the end of the code ok 17498 SourceCodeFixer applyFixes() with no BOM Text Replacement should replace text at the beginning of the code ok 17499 SourceCodeFixer applyFixes() with no BOM Text Replacement should replace text in the middle of the code ok 17500 SourceCodeFixer applyFixes() with no BOM Text Replacement should replace text at the beginning and end of the code ok 17501 SourceCodeFixer applyFixes() with no BOM Text Removal should remove text at the start of the code ok 17502 SourceCodeFixer applyFixes() with no BOM Text Removal should remove text in the middle of the code ok 17503 SourceCodeFixer applyFixes() with no BOM Text Removal should remove text towards the end of the code ok 17504 SourceCodeFixer applyFixes() with no BOM Text Removal should remove text at the beginning, middle, and end of the code ok 17505 SourceCodeFixer applyFixes() with no BOM Combination should replace text at the beginning, remove text in the middle, and insert text at the end ok 17506 SourceCodeFixer applyFixes() with no BOM Combination should only apply one fix when ranges overlap ok 17507 SourceCodeFixer applyFixes() with no BOM Combination should apply one fix when the end of one range is the same as the start of a previous range overlap ok 17508 SourceCodeFixer applyFixes() with no BOM Combination should only apply one fix when ranges overlap and one message has no fix ok 17509 SourceCodeFixer applyFixes() with no BOM Combination should apply the same fix when ranges overlap regardless of order ok 17510 SourceCodeFixer applyFixes() with no BOM No Fixes should only apply one fix when ranges overlap and one message has no fix ok 17511 SourceCodeFixer applyFixes() with no BOM No Fixes should sort the no fix messages correctly ok 17512 SourceCodeFixer applyFixes() with no BOM BOM manipulations should insert BOM with an insertion of '' at 0 ok 17513 SourceCodeFixer applyFixes() with no BOM BOM manipulations should insert BOM with an insertion of 'foobar' at 0 ok 17514 SourceCodeFixer applyFixes() with no BOM BOM manipulations should remove BOM with a negative range ok 17515 SourceCodeFixer applyFixes() with no BOM BOM manipulations should replace BOM with a negative range and 'foobar' ok 17516 SourceCodeFixer applyFixes() with BOM Text Insertion should insert text at the end of the code ok 17517 SourceCodeFixer applyFixes() with BOM Text Insertion should insert text at the beginning of the code ok 17518 SourceCodeFixer applyFixes() with BOM Text Insertion should insert text in the middle of the code ok 17519 SourceCodeFixer applyFixes() with BOM Text Insertion should insert text at the beginning, middle, and end of the code ok 17520 SourceCodeFixer applyFixes() with BOM Text Insertion should ignore reversed ranges ok 17521 SourceCodeFixer applyFixes() with BOM Text Replacement should replace text at the end of the code ok 17522 SourceCodeFixer applyFixes() with BOM Text Replacement should replace text at the beginning of the code ok 17523 SourceCodeFixer applyFixes() with BOM Text Replacement should replace text in the middle of the code ok 17524 SourceCodeFixer applyFixes() with BOM Text Replacement should replace text at the beginning and end of the code ok 17525 SourceCodeFixer applyFixes() with BOM Text Removal should remove text at the start of the code ok 17526 SourceCodeFixer applyFixes() with BOM Text Removal should remove text in the middle of the code ok 17527 SourceCodeFixer applyFixes() with BOM Text Removal should remove text towards the end of the code ok 17528 SourceCodeFixer applyFixes() with BOM Text Removal should remove text at the beginning, middle, and end of the code ok 17529 SourceCodeFixer applyFixes() with BOM Combination should replace text at the beginning, remove text in the middle, and insert text at the end ok 17530 SourceCodeFixer applyFixes() with BOM Combination should only apply one fix when ranges overlap ok 17531 SourceCodeFixer applyFixes() with BOM Combination should apply one fix when the end of one range is the same as the start of a previous range overlap ok 17532 SourceCodeFixer applyFixes() with BOM Combination should only apply one fix when ranges overlap and one message has no fix ok 17533 SourceCodeFixer applyFixes() with BOM Combination should apply the same fix when ranges overlap regardless of order ok 17534 SourceCodeFixer applyFixes() with BOM No Fixes should only apply one fix when ranges overlap and one message has no fix ok 17535 SourceCodeFixer applyFixes() with BOM BOM manipulations should insert BOM with an insertion of '' at 0 ok 17536 SourceCodeFixer applyFixes() with BOM BOM manipulations should insert BOM with an insertion of 'foobar' at 0 ok 17537 SourceCodeFixer applyFixes() with BOM BOM manipulations should remove BOM with a negative range ok 17538 SourceCodeFixer applyFixes() with BOM BOM manipulations should replace BOM with a negative range and 'foobar' ok 17539 Traverser traverses all keys except 'parent', 'leadingComments', and 'trailingComments' ok 17540 Traverser traverses AST as using 'visitorKeys' option if given # tests 17540 # pass 17540 # fail 0 1..17540 NODE_PATH=packages:tools mocha --no-timeout --reporter tap tests/bin/eslint.js tests/lib/config.js tests/lib/config/config-file.js tests/lib/config/config-initializer.js tests/lib/formatters/codeframe.js tests/lib/formatters/stylish.js tests/lib/linter.js tests/lib/rules/camelcase.js tests/lib/rules/id-length.js tests/lib/rules/id-match.js tests/lib/rules/require-await.js tests/lib/util/glob-utils.js tests/lib/util/ignored-paths.js tests/lib/util/lint-result-cache.js tests/lib/util/node-event-generator.js tests/lib/util/npm-utils.js tests/lib/util/source-code-utils.js | debian/tap-todo \ '^bin/eslint.js handling crashes prints the error message to stderr in the event of a crash$' \ '^bin/eslint.js handling crashes prints the error message exactly once to stderr in the event of a crash$' \ '^bin/eslint.js emitting a warning for ecmaFeatures does not emit a warning when it does not find an ecmaFeatures option$' \ '^bin/eslint.js emitting a warning for ecmaFeatures emits a warning when it finds an ecmaFeatures option$' \ '^Config "before each" hook for "should not modify baseConfig when format is specified"$' \ '^Config "after each" hook for "should not modify baseConfig when format is specified"$' \ '^ConfigFile write\(\) "before each" hook for "should make sure js config files match linting rules"$' \ '^ConfigFile write\(\) "after each" hook for "should make sure js config files match linting rules"$' \ '^configInitializer "after each" hook for "should create default config"$' \ '^formatter:codeframe "before each" hook for "should return nothing"$' \ '^formatter:codeframe "after each" hook for "should return nothing"$' \ '^formatter:stylish "before each" hook for "should not return message"$' \ '^formatter:stylish "after each" hook for "should not return message"$' \ '^Linter "before each" hook for "should return same version as instance property"$' \ '^Linter "after each" hook for "should return same version as instance property"$' \ '^camelcase valid var \{ category_id = 1 \} = query;$' \ '^camelcase invalid var \{ category_id = 1 \} = query;$' \ '^camelcase invalid var \{ category_id \} = query;$' \ '^camelcase invalid function foo\(\{ no_camelcased = .default value. \}\) \{\};$' \ '^camelcase invalid const no_camelcased = 0; function foo\(\{ camelcased_value = no_camelcased\}\) \{\}$' \ '^camelcase invalid const \{ no_camelcased = false \} = bar;$' \ '^camelcase invalid const \{ no_camelcased = foo_bar \} = bar;$' \ '^id-length invalid var \{ x\} = \{\};$' \ '^id-match valid var \{ category_id = 1 \} = query;$' \ '^id-match invalid var \{ category_id \} = query;$' \ '^id-match invalid var \{ category_id = 1 \} = query;$' \ '^id-match invalid function foo\(\{ no_camelcased \}\) \{\};$' \ '^id-match invalid function foo\(\{ no_camelcased = .default value. \}\) \{\};$' \ '^id-match invalid const no_camelcased = 0; function foo\(\{ camelcased_value = no_camelcased \}\) \{\}$' \ '^id-match invalid const \{ no_camelcased = false \} = bar;$' \ '^require-await valid async function foo\(\) \{ await async \(\) => \{ await doSomething\(\) \} \}$' \ '^require-await invalid async function foo\(\) \{ await async \(\) => \{ doSomething\(\) \} \}$' \ '^NodeEventGenerator parsing an invalid selector throws a useful error$' \ '^IgnoredPaths contains should return false for files outside of the cwd \(with no ignore file provided\)$' \ '^IgnoredPaths getIgnoredFoldersGlobChecker should ignore default folders when there is no eslintignore file$' \ '^LintResultCache "before all" hook in "LintResultCache"$' \ '^globUtils listFilesToProcess\(\) should return an ignored file, if ignore option is turned off$' \ '^npmUtils "before each" hook for "should not find a direct dependency of the project"$' \ '^npmUtils "after each" hook for "should not find a direct dependency of the project"$' \ '^SourceCodeUtil "after each" hook for "should handle single string filename arguments"$' ok 1 bin/eslint.js reading from stdin has exit code 0 if no linting errors are reported ok 2 bin/eslint.js reading from stdin has exit code 0 if no linting errors are reported ok 3 bin/eslint.js reading from stdin has exit code 1 if a syntax error is thrown ok 4 bin/eslint.js reading from stdin has exit code 1 if a linting error occurs ok 5 bin/eslint.js reading from stdin gives a detailed error message if no config file is found in / ok 6 bin/eslint.js reading from stdin successfully reads from an asynchronous pipe ok 7 bin/eslint.js running on files has exit code 0 if no linting errors occur ok 8 bin/eslint.js running on files has exit code 0 if a linting warning is reported ok 9 bin/eslint.js running on files has exit code 1 if a linting error is reported ok 10 bin/eslint.js running on files has exit code 1 if a syntax error is thrown ok 11 bin/eslint.js automatically fixing files has exit code 0 and fixes a file if all rules can be fixed ok 12 bin/eslint.js automatically fixing files has exit code 0, fixes errors in a file, and does not report or fix warnings if --quiet and --fix are used ok 13 bin/eslint.js automatically fixing files has exit code 1 and fixes a file if not all rules can be fixed ok 14 bin/eslint.js cache files when no cache file exists creates a cache file when the --cache flag is used ok 15 bin/eslint.js cache files when a valid cache file already exists can lint with an existing cache file and the --cache flag ok 16 bin/eslint.js cache files when a valid cache file already exists updates the cache file when the source file is modified ok 17 bin/eslint.js cache files when a valid cache file already exists deletes the cache file when run without the --cache argument ok 18 bin/eslint.js cache files when an invalid cache file already exists overwrites the invalid cache file with a valid one when the --cache argument is used ok 19 bin/eslint.js cache files when an invalid cache file already exists deletes the invalid cache file when the --cache argument is not used # TODO: not ok 20 bin/eslint.js handling crashes prints the error message to stderr in the event of a crash expected 'SyntaxError: Expected " ", ".", or [^ [\\],():#!=><~+.] but "[" found.\nOccurred while linting /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/Makefile.js\n at peg$buildStructuredError (/usr/share/nodejs/esquery/dist/esquery.js:408:15)\n at Object.peg$parse [as parse] (/usr/share/nodejs/esquery/dist/esquery.js:2509:14)\n at Function.parse (/usr/share/nodejs/esquery/dist/esquery.js:2927:20)\n at tryParseSelector (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:160:24)\n at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:175:28\n at memoized (/usr/share/nodejs/lodash/lodash.js:10581:27)\n at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:221:30\n at Array.forEach (<anonymous>)\n at new NodeEventGenerator (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:220:30)\n at runRules (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/linter.js:745:49)\n' to include 'Syntax error in selector' AssertionError: expected 'SyntaxError: Expected " ", ".", or [^ [\\],():#!=><~+.] but "[" found.\nOccurred while linting /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/Makefile.js\n at peg$buildStructuredError (/usr/share/nodejs/esquery/dist/esquery.js:408:15)\n at Object.peg$parse [as parse] (/usr/share/nodejs/esquery/dist/esquery.js:2509:14)\n at Function.parse (/usr/share/nodejs/esquery/dist/esquery.js:2927:20)\n at tryParseSelector (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:160:24)\n at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:175:28\n at memoized (/usr/share/nodejs/lodash/lodash.js:10581:27)\n at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:221:30\n at Array.forEach (<anonymous>)\n at new NodeEventGenerator (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:220:30)\n at runRules (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/linter.js:745:49)\n' to include 'Syntax error in selector' at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/bin/eslint.js:330:24 at processTicksAndRejections (internal/process/task_queues.js:97:5) at async Promise.all (index 1) # TODO: not ok 21 bin/eslint.js handling crashes prints the error message exactly once to stderr in the event of a crash expected 'SyntaxError: Expected " ", ".", or [^ [\\],():#!=><~+.] but "[" found.\nOccurred while linting /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/Makefile.js\n at peg$buildStructuredError (/usr/share/nodejs/esquery/dist/esquery.js:408:15)\n at Object.peg$parse [as parse] (/usr/share/nodejs/esquery/dist/esquery.js:2509:14)\n at Function.parse (/usr/share/nodejs/esquery/dist/esquery.js:2927:20)\n at tryParseSelector (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:160:24)\n at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:175:28\n at memoized (/usr/share/nodejs/lodash/lodash.js:10581:27)\n at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:221:30\n at Array.forEach (<anonymous>)\n at new NodeEventGenerator (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:220:30)\n at runRules (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/linter.js:745:49)\n' to include 'Syntax error in selector' AssertionError: expected 'SyntaxError: Expected " ", ".", or [^ [\\],():#!=><~+.] but "[" found.\nOccurred while linting /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/Makefile.js\n at peg$buildStructuredError (/usr/share/nodejs/esquery/dist/esquery.js:408:15)\n at Object.peg$parse [as parse] (/usr/share/nodejs/esquery/dist/esquery.js:2509:14)\n at Function.parse (/usr/share/nodejs/esquery/dist/esquery.js:2927:20)\n at tryParseSelector (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:160:24)\n at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:175:28\n at memoized (/usr/share/nodejs/lodash/lodash.js:10581:27)\n at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:221:30\n at Array.forEach (<anonymous>)\n at new NodeEventGenerator (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/node-event-generator.js:220:30)\n at runRules (/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/linter.js:745:49)\n' to include 'Syntax error in selector' at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/bin/eslint.js:343:24 at processTicksAndRejections (internal/process/task_queues.js:97:5) at async Promise.all (index 1) ok 22 bin/eslint.js handling crashes prints the error message pointing to line of code # TODO: not ok 23 bin/eslint.js emitting a warning for ecmaFeatures does not emit a warning when it does not find an ecmaFeatures option Expected an exit code of 0 but got 1.: expected 1 to equal 0 AssertionError: Expected an exit code of 0 but got 1.: expected 1 to equal 0 at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/bin/eslint.js:30:16 at processTicksAndRejections (internal/process/task_queues.js:97:5) at async Promise.all (index 0) # TODO: not ok 24 bin/eslint.js emitting a warning for ecmaFeatures emits a warning when it finds an ecmaFeatures option Expected an exit code of 0 but got 1.: expected 1 to equal 0 AssertionError: Expected an exit code of 0 but got 1.: expected 1 to equal 0 at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/bin/eslint.js:30:16 at processTicksAndRejections (internal/process/task_queues.js:97:5) at async Promise.all (index 0) # TODO: not ok 25 Config "before each" hook for "should not modify baseConfig when format is specified" Cannot read property 'create' of undefined TypeError: Cannot read property 'create' of undefined at Context.<anonymous> (tests/lib/config.js:142:33) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 25 Config "after each" hook for "should not modify baseConfig when format is specified" Cannot read property 'verifyAndRestore' of undefined TypeError: Cannot read property 'verifyAndRestore' of undefined at Context.<anonymous> (tests/lib/config.js:146:17) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 25 ConfigFile CONFIG_FILES should be present when imported ok 26 ConfigFile applyExtends() should apply extension 'foo' when specified from root directory config ok 27 ConfigFile applyExtends() should apply all rules when extends config includes 'eslint:all' ok 28 ConfigFile applyExtends() should throw an error when extends config module is not found ok 29 ConfigFile applyExtends() should throw an error when an eslint config is not found ok 30 ConfigFile applyExtends() should throw an error when a parser in a plugin config is not found ok 31 ConfigFile applyExtends() should throw an error when a plugin config is not found ok 32 ConfigFile applyExtends() should apply extensions recursively when specified from package ok 33 ConfigFile applyExtends() should apply extensions when specified from a JavaScript file ok 34 ConfigFile applyExtends() should apply extensions when specified from a YAML file ok 35 ConfigFile applyExtends() should apply extensions when specified from a JSON file ok 36 ConfigFile applyExtends() should apply extensions when specified from a package.json file in a sibling directory ok 37 ConfigFile load() should throw error if file doesnt exist ok 38 ConfigFile load() should load information from a legacy file ok 39 ConfigFile load() should load information from a JavaScript file ok 40 ConfigFile load() should throw error when loading invalid JavaScript file ok 41 ConfigFile load() should interpret parser module name when present in a JavaScript file ok 42 ConfigFile load() should interpret parser path when present in a JavaScript file ok 43 ConfigFile load() should interpret parser module name or path when parser is set to default parser in a JavaScript file ok 44 ConfigFile load() should load information from a JSON file ok 45 ConfigFile load() should load fresh information from a JSON file ok 46 ConfigFile load() should load information from a package.json file ok 47 ConfigFile load() should throw error when loading invalid package.json file ok 48 ConfigFile load() should load fresh information from a package.json file ok 49 ConfigFile load() should load fresh information from a .eslintrc.js file ok 50 ConfigFile load() should load information from a YAML file ok 51 ConfigFile load() should load information from a YAML file ok 52 ConfigFile load() should load information from a YML file ok 53 ConfigFile load() should load information from a YML file and apply extensions ok 54 ConfigFile load() should load information from `extends` chain. ok 55 ConfigFile load() should load information from `extends` chain with relative path. ok 56 ConfigFile load() should load information from `extends` chain in .eslintrc with relative path. ok 57 ConfigFile load() should load information from `parser` in .eslintrc with relative path. ok 58 ConfigFile load() throws an error including the config file name if the config file is invalid ok 59 ConfigFile load() even if it's in another directory, should load information from `extends` chain in .eslintrc with relative path. ok 60 ConfigFile load() even if it's in another directory, should load information from `parser` in .eslintrc with relative path. ok 61 ConfigFile load() Plugins should load information from a YML file and load plugins ok 62 ConfigFile load() Plugins should load two separate configs from a plugin ok 63 ConfigFile load() even if config files have Unicode BOM, should read the JSON config file correctly. ok 64 ConfigFile load() even if config files have Unicode BOM, should read the YAML config file correctly. ok 65 ConfigFile load() even if config files have Unicode BOM, should read the config in package.json correctly. ok 66 ConfigFile resolve() Relative to CWD with .eslintrc,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/.eslintrc should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/.eslintrc when passed .eslintrc ok 67 ConfigFile resolve() Relative to CWD with eslint-config-foo,/build/eslint-Vxf7U1/node_modules/eslint-config-foo/index.js should return /build/eslint-Vxf7U1/node_modules/eslint-config-foo/index.js when passed eslint-config-foo ok 68 ConfigFile resolve() Relative to CWD with foo,/build/eslint-Vxf7U1/node_modules/eslint-config-foo/index.js should return /build/eslint-Vxf7U1/node_modules/eslint-config-foo/index.js when passed foo ok 69 ConfigFile resolve() Relative to CWD with eslint-configfoo,/build/eslint-Vxf7U1/node_modules/eslint-config-eslint-configfoo/index.js should return /build/eslint-Vxf7U1/node_modules/eslint-config-eslint-configfoo/index.js when passed eslint-configfoo ok 70 ConfigFile resolve() Relative to CWD with @foo/eslint-config,/build/eslint-Vxf7U1/node_modules/@foo/eslint-config/index.js should return /build/eslint-Vxf7U1/node_modules/@foo/eslint-config/index.js when passed @foo/eslint-config ok 71 ConfigFile resolve() Relative to CWD with @foo/bar,/build/eslint-Vxf7U1/node_modules/@foo/eslint-config-bar/index.js should return /build/eslint-Vxf7U1/node_modules/@foo/eslint-config-bar/index.js when passed @foo/bar ok 72 ConfigFile resolve() Relative to CWD with plugin:foo/bar,/build/eslint-Vxf7U1/node_modules/eslint-plugin-foo/index.js should return /build/eslint-Vxf7U1/node_modules/eslint-plugin-foo/index.js when passed plugin:foo/bar ok 73 ConfigFile resolve() Relative to config file with .eslintrc,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar/.eslintrc,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar/.eslintrc when passed .eslintrc ok 74 ConfigFile resolve() Relative to config file with eslint-config-foo,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/index.js,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/index.js when passed eslint-config-foo ok 75 ConfigFile resolve() Relative to config file with foo,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/index.js,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/index.js when passed foo ok 76 ConfigFile resolve() Relative to config file with eslint-configfoo,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-eslint-configfoo/index.js,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-eslint-configfoo/index.js when passed eslint-configfoo ok 77 ConfigFile resolve() Relative to config file with @foo/eslint-config,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/@foo/eslint-config/index.js,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/@foo/eslint-config/index.js when passed @foo/eslint-config ok 78 ConfigFile resolve() Relative to config file with @foo/bar,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/@foo/eslint-config-bar/index.js,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/@foo/eslint-config-bar/index.js when passed @foo/bar ok 79 ConfigFile resolve() Relative to config file with plugin:@foo/bar/baz,/build/eslint-Vxf7U1/node_modules/@foo/eslint-plugin-bar/index.js,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/node_modules/@foo/eslint-plugin-bar/index.js when passed plugin:@foo/bar/baz ok 80 ConfigFile resolve() Relative to config file with eslint-config-foo/bar,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/bar/index.json,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/bar/index.json when passed eslint-config-foo/bar ok 81 ConfigFile resolve() Relative to config file with eslint-config-foo/bar,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/bar.json,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/bar.json when passed eslint-config-foo/bar ok 82 ConfigFile resolve() Relative to config file with eslint-config-foo/bar,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/bar/index.js,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/bar/index.js when passed eslint-config-foo/bar ok 83 ConfigFile resolve() Relative to config file with eslint-config-foo/bar,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/bar.js,/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/foo/bar should return /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/node_modules/eslint-config-foo/bar.js when passed eslint-config-foo/bar ok 84 ConfigFile getBaseDir() should return project path when config file is in home directory ok 85 ConfigFile getBaseDir() should return project path when config file is in an ancestor directory of the project path ok 86 ConfigFile getBaseDir() should return config file path when config file is in a descendant directory of the project path ok 87 ConfigFile getBaseDir() should return project path when config file is not an ancestor or descendant of the project path ok 88 ConfigFile getLookupPath() should return project path when config file is in home directory ok 89 ConfigFile getLookupPath() should return project path when config file is in an ancestor directory of the project path ok 90 ConfigFile getLookupPath() should return config file path when config file is in a descendant directory of the project path ok 91 ConfigFile getLookupPath() should return project path when config file is not an ancestor or descendant of the project path ok 92 ConfigFile getFilenameFromDirectory() with /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/config-file/legacy,.eslintrc should return .eslintrc when passed /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/config-file/legacy ok 93 ConfigFile getFilenameFromDirectory() with /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/config-file/yaml,.eslintrc.yaml should return .eslintrc.yaml when passed /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/config-file/yaml ok 94 ConfigFile getFilenameFromDirectory() with /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/config-file/yml,.eslintrc.yml should return .eslintrc.yml when passed /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/config-file/yml ok 95 ConfigFile getFilenameFromDirectory() with /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/config-file/json,.eslintrc.json should return .eslintrc.json when passed /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/config-file/json ok 96 ConfigFile getFilenameFromDirectory() with /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/config-file/js,.eslintrc.js should return .eslintrc.js when passed /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/tests/fixtures/config-file/js # TODO: not ok 97 ConfigFile write() "before each" hook for "should make sure js config files match linting rules" Cannot read property 'create' of undefined TypeError: Cannot read property 'create' of undefined at Context.<anonymous> (tests/lib/config/config-file.js:1224:37) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 97 ConfigFile write() "after each" hook for "should make sure js config files match linting rules" Cannot read property 'verifyAndRestore' of undefined TypeError: Cannot read property 'verifyAndRestore' of undefined at Context.<anonymous> (tests/lib/config/config-file.js:1238:21) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 97 configInitializer processAnswers() prompt should create default config # TODO: not ok 98 configInitializer "after each" hook for "should create default config" log.info.reset is not a function TypeError: log.info.reset is not a function at Context.<anonymous> (tests/lib/config/config-initializer.js:103:18) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 98 formatter:codeframe "before each" hook for "should return nothing" Cannot read property 'create' of undefined TypeError: Cannot read property 'create' of undefined at Context.<anonymous> (tests/lib/formatters/codeframe.js:48:33) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 98 formatter:codeframe "after each" hook for "should return nothing" Cannot read property 'verifyAndRestore' of undefined TypeError: Cannot read property 'verifyAndRestore' of undefined at Context.<anonymous> (tests/lib/formatters/codeframe.js:52:17) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 98 formatter:stylish "before each" hook for "should not return message" Cannot read property 'create' of undefined TypeError: Cannot read property 'create' of undefined at Context.<anonymous> (tests/lib/formatters/stylish.js:51:33) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 98 formatter:stylish "after each" hook for "should not return message" Cannot read property 'verifyAndRestore' of undefined TypeError: Cannot read property 'verifyAndRestore' of undefined at Context.<anonymous> (tests/lib/formatters/stylish.js:57:17) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 98 Linter "before each" hook for "should return same version as instance property" Cannot read property 'create' of undefined TypeError: Cannot read property 'create' of undefined at Context.<anonymous> (tests/lib/linter.js:73:33) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 98 Linter "after each" hook for "should return same version as instance property" Cannot read property 'verifyAndRestore' of undefined TypeError: Cannot read property 'verifyAndRestore' of undefined at Context.<anonymous> (tests/lib/linter.js:77:17) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 98 camelcase valid firstName = "Nicholas" ok 99 camelcase valid FIRST_NAME = "Nicholas" ok 100 camelcase valid __myPrivateVariable = "Patrick" ok 101 camelcase valid myPrivateVariable_ = "Patrick" ok 102 camelcase valid function doSomething(){} ok 103 camelcase valid do_something() ok 104 camelcase valid new do_something ok 105 camelcase valid new do_something() ok 106 camelcase valid foo.do_something() ok 107 camelcase valid var foo = bar.baz_boom; ok 108 camelcase valid var foo = bar.baz_boom.something; ok 109 camelcase valid foo.boom_pow.qux = bar.baz_boom.something; ok 110 camelcase valid if (bar.baz_boom) {} ok 111 camelcase valid var obj = { key: foo.bar_baz }; ok 112 camelcase valid var arr = [foo.bar_baz]; ok 113 camelcase valid [foo.bar_baz] ok 114 camelcase valid var arr = [foo.bar_baz.qux]; ok 115 camelcase valid [foo.bar_baz.nesting] ok 116 camelcase valid if (foo.bar_baz === boom.bam_pow) { [foo.baz_boom] } ok 117 camelcase valid var o = {key: 1} ok 118 camelcase valid var o = {_leading: 1} ok 119 camelcase valid var o = {trailing_: 1} ok 120 camelcase valid var o = {bar_baz: 1} ok 121 camelcase valid var o = {_leading: 1} ok 122 camelcase valid var o = {trailing_: 1} ok 123 camelcase valid obj.a_b = 2; ok 124 camelcase valid obj._a = 2; ok 125 camelcase valid obj.a_ = 2; ok 126 camelcase valid obj._a = 2; ok 127 camelcase valid obj.a_ = 2; ok 128 camelcase valid var obj = { a_a: 1 }; obj.a_b = 2; ok 129 camelcase valid obj.foo_bar = function(){}; ok 130 camelcase valid var { category_id } = query; ok 131 camelcase valid var { category_id: category_id } = query; # TODO: not ok 132 camelcase valid var { category_id = 1 } = query; Should have no errors but had 1: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 } ] AssertionError [ERR_ASSERTION]: Should have no errors but had 1: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 } ] at testValidTemplate (lib/testers/rule-tester.js:415:20) at Context.<anonymous> (lib/testers/rule-tester.js:584:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 133 camelcase valid var { [{category_id} = query]: categoryId } = query; ok 134 camelcase valid var { category_id: category } = query; ok 135 camelcase valid var { _leading } = query; ok 136 camelcase valid var { trailing_ } = query; ok 137 camelcase valid import { camelCased } from "external module"; ok 138 camelcase valid import { _leading } from "external module"; ok 139 camelcase valid import { trailing_ } from "external module"; ok 140 camelcase valid import { no_camelcased as camelCased } from "external-module"; ok 141 camelcase valid import { no_camelcased as _leading } from "external-module"; ok 142 camelcase valid import { no_camelcased as trailing_ } from "external-module"; ok 143 camelcase valid import { no_camelcased as camelCased, anoterCamelCased } from "external-module"; ok 144 camelcase valid function foo({ no_camelcased: camelCased }) {}; ok 145 camelcase valid function foo({ no_camelcased: _leading }) {}; ok 146 camelcase valid function foo({ no_camelcased: trailing_ }) {}; ok 147 camelcase valid function foo({ camelCased = 'default value' }) {}; ok 148 camelcase valid function foo({ _leading = 'default value' }) {}; ok 149 camelcase valid function foo({ trailing_ = 'default value' }) {}; ok 150 camelcase valid function foo({ camelCased }) {}; ok 151 camelcase valid function foo({ _leading }) {} ok 152 camelcase valid function foo({ trailing_ }) {} ok 153 camelcase valid ignored_foo = 0; ok 154 camelcase valid ignored_foo = 0; ignored_bar = 1; ok 155 camelcase valid user_id = 0; ok 156 camelcase valid __option_foo__ = 0; ok 157 camelcase valid foo = { [computedBar]: 0 }; ok 158 camelcase invalid first_name = "Nicholas" ok 159 camelcase invalid __private_first_name = "Patrick" ok 160 camelcase invalid function foo_bar(){} ok 161 camelcase invalid obj.foo_bar = function(){}; ok 162 camelcase invalid bar_baz.foo = function(){}; ok 163 camelcase invalid [foo_bar.baz] ok 164 camelcase invalid if (foo.bar_baz === boom.bam_pow) { [foo_bar.baz] } ok 165 camelcase invalid foo.bar_baz = boom.bam_pow ok 166 camelcase invalid var foo = { bar_baz: boom.bam_pow } ok 167 camelcase invalid var foo = { bar_baz: boom.bam_pow } ok 168 camelcase invalid foo.qux.boom_pow = { bar: boom.bam_pow } ok 169 camelcase invalid var o = {bar_baz: 1} ok 170 camelcase invalid obj.a_b = 2; ok 171 camelcase invalid var { category_id: category_alias } = query; ok 172 camelcase invalid var { category_id: category_alias } = query; ok 173 camelcase invalid var { [category_id]: categoryId } = query; ok 174 camelcase invalid var { [category_id]: categoryId } = query; ok 175 camelcase invalid var { category_id: categoryId, ...other_props } = query; ok 176 camelcase invalid var { category_id } = query; ok 177 camelcase invalid var { category_id: category_id } = query; # TODO: not ok 178 camelcase invalid var { category_id = 1 } = query; Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 179 camelcase invalid import no_camelcased from "external-module"; ok 180 camelcase invalid import * as no_camelcased from "external-module"; ok 181 camelcase invalid import { no_camelcased } from "external-module"; ok 182 camelcase invalid import { no_camelcased as no_camel_cased } from "external module"; ok 183 camelcase invalid import { camelCased as no_camel_cased } from "external module"; ok 184 camelcase invalid import { camelCased, no_camelcased } from "external-module"; ok 185 camelcase invalid import { no_camelcased as camelCased, another_no_camelcased } from "external-module"; ok 186 camelcase invalid import camelCased, { no_camelcased } from "external-module"; ok 187 camelcase invalid import no_camelcased, { another_no_camelcased as camelCased } from "external-module"; ok 188 camelcase invalid function foo({ no_camelcased }) {}; # TODO: not ok 189 camelcase invalid function foo({ no_camelcased = 'default value' }) {}; Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 29 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 29 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 29 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 29 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 190 camelcase invalid const no_camelcased = 0; function foo({ camelcased_value = no_camelcased}) {} Should have 2 errors but had 3: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 20 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'camelcased_value' is not in camel case.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 57 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'camelcased_value' is not in camel case.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 57 } ] AssertionError [ERR_ASSERTION]: Should have 2 errors but had 3: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 20 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'camelcased_value' is not in camel case.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 57 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'camelcased_value' is not in camel case.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 57 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 191 camelcase invalid const { bar: no_camelcased } = foo; ok 192 camelcase invalid function foo({ value_1: my_default }) {} ok 193 camelcase invalid function foo({ isCamelcased: no_camelcased }) {}; ok 194 camelcase invalid var { foo: bar_baz = 1 } = quz; # TODO: not ok 195 camelcase invalid const { no_camelcased = false } = bar; Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 196 camelcase invalid const { no_camelcased = foo_bar } = bar; Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 197 camelcase invalid not_ignored_foo = 0; ok 198 camelcase invalid not_ignored_foo = 0; ok 199 camelcase invalid foo = { [computed_bar]: 0 }; ok 200 id-length valid var xyz; ok 201 id-length valid var xy = 1; ok 202 id-length valid function xyz() {}; ok 203 id-length valid function xyz(abc, de) {}; ok 204 id-length valid var obj = { abc: 1, de: 2 }; ok 205 id-length valid var obj = { 'a': 1, bc: 2 }; ok 206 id-length valid var obj = {}; obj['a'] = 2; ok 207 id-length valid abc = d; ok 208 id-length valid try { blah(); } catch (err) { /* pass */ } ok 209 id-length valid var handler = function ($e) {}; ok 210 id-length valid var _a = 2 ok 211 id-length valid var _ad$$ = new $; ok 212 id-length valid var xyz = new ΣΣ(); ok 213 id-length valid unrelatedExpressionThatNeedsToBeIgnored(); ok 214 id-length valid var obj = { 'a': 1, bc: 2 }; obj.tk = obj.a; ok 215 id-length valid var query = location.query.q || ''; ok 216 id-length valid var query = location.query.q ? location.query.q : '' ok 217 id-length valid var x = Foo(42) ok 218 id-length valid var x = Foo(42) ok 219 id-length valid foo.$x = Foo(42) ok 220 id-length valid var lalala = Foo(42) ok 221 id-length valid for (var q, h=0; h < 10; h++) { console.log(h); q++; } ok 222 id-length valid (num) => { num * num }; ok 223 id-length valid function foo(num = 0) { } ok 224 id-length valid class MyClass { } ok 225 id-length valid class Foo { method() {} } ok 226 id-length valid function foo(...args) { } ok 227 id-length valid var { prop } = {}; ok 228 id-length valid var { prop: a } = {}; ok 229 id-length valid var { prop: [x] } = {}; ok 230 id-length valid import something from 'y'; ok 231 id-length valid export var num = 0; ok 232 id-length valid ({ prop: obj.x.y.something } = {}); ok 233 id-length valid ({ prop: obj.longName } = {}); ok 234 id-length valid var obj = { a: 1, bc: 2 }; ok 235 id-length valid var obj = {}; obj.a = 1; obj.bc = 2; ok 236 id-length valid ({ a: obj.x.y.z } = {}); ok 237 id-length valid ({ prop: obj.x } = {}); ok 238 id-length valid var obj = { aaaaa: 1 }; ok 239 id-length valid var obj = {}; obj.aaaaa = 1; ok 240 id-length valid ({ a: obj.x.y.z } = {}); ok 241 id-length valid ({ prop: obj.xxxxx } = {}); ok 242 id-length invalid var x = 1; ok 243 id-length invalid var x; ok 244 id-length invalid obj.e = document.body; ok 245 id-length invalid function x() {}; ok 246 id-length invalid function xyz(a) {}; ok 247 id-length invalid var obj = { a: 1, bc: 2 }; ok 248 id-length invalid try { blah(); } catch (e) { /* pass */ } ok 249 id-length invalid var handler = function (e) {}; ok 250 id-length invalid for (var i=0; i < 10; i++) { console.log(i); } ok 251 id-length invalid var j=0; while (j > -10) { console.log(--j); } ok 252 id-length invalid var _$xt_$ = Foo(42) ok 253 id-length invalid var _$x$_t$ = Foo(42) ok 254 id-length invalid (a) => { a * a }; ok 255 id-length invalid function foo(x = 0) { } ok 256 id-length invalid class x { } ok 257 id-length invalid class Foo { x() {} } ok 258 id-length invalid function foo(...x) { } # TODO: not ok 259 id-length invalid var { x} = {}; Should have 2 errors but had 1: [ { ruleId: 'id-length', severity: 1, message: "Identifier name 'x' is too short (< 2).", line: 1, column: 7, nodeType: 'Identifier', messageId: 'tooShort', endLine: 1, endColumn: 8 } ] AssertionError [ERR_ASSERTION]: Should have 2 errors but had 1: [ { ruleId: 'id-length', severity: 1, message: "Identifier name 'x' is too short (< 2).", line: 1, column: 7, nodeType: 'Identifier', messageId: 'tooShort', endLine: 1, endColumn: 8 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 260 id-length invalid var { x: a} = {}; ok 261 id-length invalid var { a: [x]} = {}; ok 262 id-length invalid import x from 'y'; ok 263 id-length invalid export var x = 0; ok 264 id-length invalid ({ a: obj.x.y.z } = {}); ok 265 id-length invalid ({ prop: obj.x } = {}); ok 266 id-length invalid var x = 1; ok 267 id-match valid __foo = "Matthieu" ok 268 id-match valid firstname = "Matthieu" ok 269 id-match valid first_name = "Matthieu" ok 270 id-match valid firstname = "Matthieu" ok 271 id-match valid last_Name = "Larcher" ok 272 id-match valid param = "none" ok 273 id-match valid function noUnder(){} ok 274 id-match valid no_under() ok 275 id-match valid foo.no_under2() ok 276 id-match valid var foo = bar.no_under3; ok 277 id-match valid var foo = bar.no_under4.something; ok 278 id-match valid foo.no_under5.qux = bar.no_under6.something; ok 279 id-match valid if (bar.no_under7) {} ok 280 id-match valid var obj = { key: foo.no_under8 }; ok 281 id-match valid var arr = [foo.no_under9]; ok 282 id-match valid [foo.no_under10] ok 283 id-match valid var arr = [foo.no_under11.qux]; ok 284 id-match valid [foo.no_under12.nesting] ok 285 id-match valid if (foo.no_under13 === boom.no_under14) { [foo.no_under15] } ok 286 id-match valid var myArray = new Array(); var myDate = new Date(); ok 287 id-match valid var x = obj._foo; ok 288 id-match valid var obj = {key: no_under} ok 289 id-match valid var {key_no_under: key} = {} ok 290 id-match valid var { category_id } = query; ok 291 id-match valid var { category_id: category_id } = query; # TODO: not ok 292 id-match valid var { category_id = 1 } = query; Should have no errors but had 1: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] AssertionError [ERR_ASSERTION]: Should have no errors but had 1: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] at testValidTemplate (lib/testers/rule-tester.js:415:20) at Context.<anonymous> (lib/testers/rule-tester.js:584:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 293 id-match valid var o = {key: 1} ok 294 id-match valid var o = {no_under16: 1} ok 295 id-match valid obj.no_under17 = 2; ok 296 id-match valid var obj = { no_under18: 1 }; obj.no_under19 = 2; ok 297 id-match valid obj.no_under20 = function(){}; ok 298 id-match valid var x = obj._foo2; ok 299 id-match invalid var __foo = "Matthieu" ok 300 id-match invalid first_name = "Matthieu" ok 301 id-match invalid first_name = "Matthieu" ok 302 id-match invalid Last_Name = "Larcher" ok 303 id-match invalid var obj = {key: no_under} ok 304 id-match invalid function no_under21(){} ok 305 id-match invalid obj.no_under22 = function(){}; ok 306 id-match invalid no_under23.foo = function(){}; ok 307 id-match invalid [no_under24.baz] ok 308 id-match invalid if (foo.bar_baz === boom.bam_pow) { [no_under25.baz] } ok 309 id-match invalid foo.no_under26 = boom.bam_pow ok 310 id-match invalid var foo = { no_under27: boom.bam_pow } ok 311 id-match invalid foo.qux.no_under28 = { bar: boom.bam_pow } ok 312 id-match invalid var o = {no_under29: 1} ok 313 id-match invalid obj.no_under30 = 2; ok 314 id-match invalid var { category_id: category_alias } = query; ok 315 id-match invalid var { category_id: category_alias } = query; ok 316 id-match invalid var { category_id: categoryId, ...other_props } = query; # TODO: not ok 317 id-match invalid var { category_id } = query; Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 318 id-match invalid var { category_id = 1 } = query; Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 319 id-match invalid import no_camelcased from "external-module"; ok 320 id-match invalid import * as no_camelcased from "external-module"; ok 321 id-match invalid import { no_camelcased } from "external-module"; ok 322 id-match invalid import { no_camelcased as no_camel_cased } from "external module"; ok 323 id-match invalid import { camelCased as no_camel_cased } from "external module"; ok 324 id-match invalid import { camelCased, no_camelcased } from "external-module"; ok 325 id-match invalid import { no_camelcased as camelCased, another_no_camelcased } from "external-module"; ok 326 id-match invalid import camelCased, { no_camelcased } from "external-module"; ok 327 id-match invalid import no_camelcased, { another_no_camelcased as camelCased } from "external-module"; # TODO: not ok 328 id-match invalid function foo({ no_camelcased }) {}; Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 329 id-match invalid function foo({ no_camelcased = 'default value' }) {}; Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 330 id-match invalid const no_camelcased = 0; function foo({ camelcased_value = no_camelcased }) {} Should have 2 errors but had 3: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 20 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'camelcased_value' does not match the pattern '^[^_]+$'.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 57 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'camelcased_value' does not match the pattern '^[^_]+$'.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 57 } ] AssertionError [ERR_ASSERTION]: Should have 2 errors but had 3: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 20 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'camelcased_value' does not match the pattern '^[^_]+$'.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 57 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'camelcased_value' does not match the pattern '^[^_]+$'.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 57 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 331 id-match invalid const { bar: no_camelcased } = foo; ok 332 id-match invalid function foo({ value_1: my_default }) {} ok 333 id-match invalid function foo({ isCamelcased: no_camelcased }) {}; ok 334 id-match invalid var { foo: bar_baz = 1 } = quz; # TODO: not ok 335 id-match invalid const { no_camelcased = false } = bar; Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 22 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 22 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 22 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 22 } ] at testInvalidTemplate (lib/testers/rule-tester.js:462:24) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 336 require-await valid async function foo() { await doSomething() } ok 337 require-await valid (async function() { await doSomething() }) ok 338 require-await valid async () => { await doSomething() } ok 339 require-await valid async () => await doSomething() ok 340 require-await valid ({ async foo() { await doSomething() } }) ok 341 require-await valid class A { async foo() { await doSomething() } } ok 342 require-await valid (class { async foo() { await doSomething() } }) # TODO: not ok 343 require-await valid async function foo() { await async () => { await doSomething() } } Should have no errors but had 1: [ { ruleId: null, fatal: true, severity: 2, message: 'Parsing error: Unexpected token =>', line: 1, column: 39 } ] AssertionError [ERR_ASSERTION]: Should have no errors but had 1: [ { ruleId: null, fatal: true, severity: 2, message: 'Parsing error: Unexpected token =>', line: 1, column: 39 } ] at testValidTemplate (lib/testers/rule-tester.js:415:20) at Context.<anonymous> (lib/testers/rule-tester.js:584:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 344 require-await valid async function foo() {} ok 345 require-await valid async () => {} ok 346 require-await valid function foo() { doSomething() } ok 347 require-await valid async function foo() { for await (x of xs); } ok 348 require-await invalid async function foo() { doSomething() } ok 349 require-await invalid (async function() { doSomething() }) ok 350 require-await invalid async () => { doSomething() } ok 351 require-await invalid async () => doSomething() ok 352 require-await invalid ({ async foo() { doSomething() } }) ok 353 require-await invalid class A { async foo() { doSomething() } } ok 354 require-await invalid (class { async foo() { doSomething() } }) ok 355 require-await invalid async function foo() { async () => { await doSomething() } } # TODO: not ok 356 require-await invalid async function foo() { await async () => { doSomething() } } A fatal parsing error occurred: Parsing error: Unexpected token => AssertionError [ERR_ASSERTION]: A fatal parsing error occurred: Parsing error: Unexpected token => at testInvalidTemplate (lib/testers/rule-tester.js:476:21) at Context.<anonymous> (lib/testers/rule-tester.js:592:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 357 globUtils resolveFileGlobPatterns() should convert a directory name with no provided extensions into a glob pattern ok 358 globUtils resolveFileGlobPatterns() should not convert path with globInputPaths option false ok 359 globUtils resolveFileGlobPatterns() should convert an absolute directory name with no provided extensions into a posix glob pattern ok 360 globUtils resolveFileGlobPatterns() should convert a directory name with a single provided extension into a glob pattern ok 361 globUtils resolveFileGlobPatterns() should convert a directory name with multiple provided extensions into a glob pattern ok 362 globUtils resolveFileGlobPatterns() should convert multiple directory names into glob patterns ok 363 globUtils resolveFileGlobPatterns() should remove leading './' from glob patterns ok 364 globUtils resolveFileGlobPatterns() should convert a directory name with a trailing '/' into a glob pattern ok 365 globUtils resolveFileGlobPatterns() should return filenames as they are ok 366 globUtils resolveFileGlobPatterns() should convert backslashes into forward slashes ok 367 globUtils listFilesToProcess() should return an array with a resolved (absolute) filename ok 368 globUtils listFilesToProcess() should return an array with a unmodified filename ok 369 globUtils listFilesToProcess() should return all files matching a glob pattern ok 370 globUtils listFilesToProcess() should return all files matching multiple glob patterns ok 371 globUtils listFilesToProcess() should ignore hidden files for standard glob patterns ok 372 globUtils listFilesToProcess() should return hidden files if included in glob pattern ok 373 globUtils listFilesToProcess() should ignore default ignored files if not passed explicitly ok 374 globUtils listFilesToProcess() should ignore and warn for default ignored files when passed explicitly ok 375 globUtils listFilesToProcess() should ignore default ignored files if not passed explicitly even if ignore is false ok 376 globUtils listFilesToProcess() should not ignore default ignored files when passed explicitly if ignore is false ok 377 globUtils listFilesToProcess() should throw an error for a file which does not exist ok 378 globUtils listFilesToProcess() should throw if a folder that does not have any applicable files is linted ok 379 globUtils listFilesToProcess() should throw if only ignored files match a glob ok 380 globUtils listFilesToProcess() should throw an error if no files match a glob ok 381 globUtils listFilesToProcess() should ignore empty patterns # TODO: not ok 382 globUtils listFilesToProcess() should return an ignored file, if ignore option is turned off path should be a `path.relative()`d string, but got "../../../tmp/eslint/tests/fixtures/glob-util/ignored" RangeError: path should be a `path.relative()`d string, but got "../../../tmp/eslint/tests/fixtures/glob-util/ignored" at throwError (/usr/share/nodejs/ignore/index.js:337:9) at checkPath (/usr/share/nodejs/ignore/index.js:356:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:473:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:512:17) at /usr/share/nodejs/ignore/index.js:516:26 at GlobSync.<anonymous> (lib/util/ignored-paths.js:376:21) at GlobSync._readdir (lib/util/glob.js:55:21) at GlobSync._processGlobStar (/usr/share/nodejs/glob/sync.js:350:22) at GlobSync._process (/usr/share/nodejs/glob/sync.js:130:10) at GlobSync (/usr/share/nodejs/glob/sync.js:48:10) at new GlobSync (lib/util/glob.js:37:10) at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/glob-utils.js:243:16 at Array.map (<anonymous>) at Object.listFilesToProcess (lib/util/glob-utils.js:207:61) at Context.<anonymous> (tests/lib/util/glob-utils.js:342:38) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 383 globUtils listFilesToProcess() should ignore a file from a glob if it matches a pattern in an ignore file ok 384 globUtils listFilesToProcess() should ignore a file from a glob if matching a specified ignore pattern ok 385 globUtils listFilesToProcess() should return a file only once if listed in more than 1 pattern ok 386 globUtils listFilesToProcess() should set 'ignored: true' for files that are explicitly specified but ignored ok 387 globUtils listFilesToProcess() should not return files from default ignored folders ok 388 globUtils listFilesToProcess() should return unignored files from default ignored folders ok 389 IgnoredPaths initialization should load .eslintignore from cwd when explicitly passed ok 390 IgnoredPaths initialization should set baseDir to cwd when no ignore file was loaded ok 391 IgnoredPaths initialization should not travel to parent directories to find .eslintignore when it's missing and cwd is provided ok 392 IgnoredPaths initialization should load empty array with ignorePath set to false ok 393 IgnoredPaths initialization should accept an array for options.ignorePattern ok 394 IgnoredPaths initialization should use package.json's eslintIgnore files if no specified .eslintignore file ok 395 IgnoredPaths initialization should use correct message template if failed to parse package.json ok 396 IgnoredPaths initialization should not use package.json's eslintIgnore files if specified .eslintignore file ok 397 IgnoredPaths initialization should error if package.json's eslintIgnore is not an array of file paths ok 398 IgnoredPaths caching file reads should cache readFileSync on same file paths ok 399 IgnoredPaths initialization with ignorePattern should ignore a normal pattern ok 400 IgnoredPaths initialization with ignorePath should set baseDir to directory containing ignorePath if provided ok 401 IgnoredPaths initialization with ignorePath should set the common ancestor directory of cwd and ignorePath to baseDir (in the case that 'ignoreFilePath' and 'cwd' are siblings) ok 402 IgnoredPaths initialization with ignorePath should set the common ancestor directory of cwd and ignorePath to baseDir ok 403 IgnoredPaths initialization with ignorePath file not named .eslintignore should work when cwd is a parent directory ok 404 IgnoredPaths initialization with ignorePath file not named .eslintignore should work when the file is in the cwd ok 405 IgnoredPaths initialization with ignorePath file not named .eslintignore should work when cwd is a subdirectory ok 406 IgnoredPaths initialization without ignorePath should not load an ignore file if none is in cwd ok 407 IgnoredPaths initialization with invalid file should throw error ok 408 IgnoredPaths contains should throw if initialized with invalid options ok 409 IgnoredPaths contains should not throw if given a relative filename ok 410 IgnoredPaths contains should return true for files which match an ignorePattern even if they do not exist on the filesystem # TODO: not ok 411 IgnoredPaths contains should return false for files outside of the cwd (with no ignore file provided) path should be a `path.relative()`d string, but got "../undef.js" RangeError: path should be a `path.relative()`d string, but got "../undef.js" at throwError (/usr/share/nodejs/ignore/index.js:337:9) at checkPath (/usr/share/nodejs/ignore/index.js:356:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:473:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:512:17) at /usr/share/nodejs/ignore/index.js:516:26 at Array.filter (<anonymous>) at Ignore.filter (/usr/share/nodejs/ignore/index.js:520:29) at IgnoredPaths.contains (lib/util/ignored-paths.js:334:39) at Context.<anonymous> (tests/lib/util/ignored-paths.js:345:41) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 412 IgnoredPaths contains should return false for files outside of ignorePath's directory ok 413 IgnoredPaths contains should return true for file matching an ignore pattern exactly ok 414 IgnoredPaths contains should return false for file matching an invalid ignore pattern with leading './' ok 415 IgnoredPaths contains should return false for file in subfolder of cwd matching an ignore pattern with leading '/' ok 416 IgnoredPaths contains should return true for file matching a child of an ignore pattern ok 417 IgnoredPaths contains should return true for file matching a grandchild of an ignore pattern ok 418 IgnoredPaths contains should return true for file matching a child of an ignore pattern with windows line termination ok 419 IgnoredPaths contains should return false for file not matching any ignore pattern ok 420 IgnoredPaths contains should return false for ignored file when unignored with ignore pattern ok 421 IgnoredPaths contains should resolve relative paths from the ignorePath, not cwd ok 422 IgnoredPaths contains should resolve relative paths from the ignorePath when it's in a child directory ok 423 IgnoredPaths contains should resolve relative paths from the ignorePath when it contains negated globs ok 424 IgnoredPaths contains should resolve default ignore patterns from the CWD even when the ignorePath is in a subdirectory ok 425 IgnoredPaths contains should resolve default ignore patterns from the CWD even when the ignorePath is in a parent directory ok 426 IgnoredPaths contains should handle .eslintignore which contains CRLF correctly. ok 427 IgnoredPaths initialization with ignorePath containing commented lines should not include comments in ignore rules ok 428 IgnoredPaths initialization with ignorePath containing negations should ignore a non-negated pattern ok 429 IgnoredPaths initialization with ignorePath containing negations should not ignore a negated pattern ok 430 IgnoredPaths default ignores should contain /bower_components/* ok 431 IgnoredPaths default ignores should contain /node_modules/* ok 432 IgnoredPaths default ignores should always apply defaultPatterns if ignore option is true ok 433 IgnoredPaths default ignores should still apply defaultPatterns if ignore option is is false ok 434 IgnoredPaths default ignores should not ignore files in defaultPatterns within a subdirectory ok 435 IgnoredPaths default ignores should allow subfolders of defaultPatterns to be unignored by ignorePattern ok 436 IgnoredPaths default ignores should allow subfolders of defaultPatterns to be unignored by ignorePath ok 437 IgnoredPaths default ignores should ignore dotfiles ok 438 IgnoredPaths default ignores should ignore directories beginning with a dot ok 439 IgnoredPaths default ignores should still ignore dotfiles when ignore option disabled ok 440 IgnoredPaths default ignores should still ignore directories beginning with a dot when ignore option disabled ok 441 IgnoredPaths default ignores should not ignore absolute paths containing '..' ok 442 IgnoredPaths default ignores should ignore /node_modules/ at top level relative to .eslintignore when loaded ok 443 IgnoredPaths default ignores should ignore /node_modules/ at top level relative to cwd without an .eslintignore ok 444 IgnoredPaths two globstar '**' ignore pattern should ignore files in nested directories ok 445 IgnoredPaths dotfiles option should add at least one pattern when false ok 446 IgnoredPaths dotfiles option should add no patterns when true ok 447 IgnoredPaths dotfiles option should not ignore dotfiles when true ok 448 IgnoredPaths dotfiles option should not ignore directories beginning with a dot when true # TODO: not ok 449 IgnoredPaths getIgnoredFoldersGlobChecker should ignore default folders when there is no eslintignore file path should be a `path.relative()`d string, but got ".." RangeError: path should be a `path.relative()`d string, but got ".." at throwError (/usr/share/nodejs/ignore/index.js:337:9) at checkPath (/usr/share/nodejs/ignore/index.js:356:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:473:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:512:17) at /usr/share/nodejs/ignore/index.js:516:26 at /build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8/lib/util/ignored-paths.js:376:21 at Context.<anonymous> (tests/lib/util/ignored-paths.js:678:28) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 450 IgnoredPaths getIgnoredFoldersGlobChecker should ignore default folders when there is an ignore file without unignored defaults ok 451 IgnoredPaths getIgnoredFoldersGlobChecker should not ignore things which are re-included in ignore file ok 452 IgnoredPaths getIgnoredFoldersGlobChecker should ignore files which we try to re-include in ignore file when ignore option is disabled ok 453 IgnoredPaths getIgnoredFoldersGlobChecker should not ignore dirs which are re-included by ignorePattern ok 454 IgnoredPaths getIgnoredFoldersGlobChecker should not ignore hidden dirs when dotfiles is enabled ok 455 IgnoredPaths getIgnoredFoldersGlobChecker should use the ignorePath's directory as the base to resolve relative paths, not cwd # TODO: not ok 456 LintResultCache "before all" hook in "LintResultCache" Cannot read property 'create' of undefined TypeError: Cannot read property 'create' of undefined at Context.<anonymous> (tests/lib/util/lint-result-cache.js:35:33) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 456 NodeEventGenerator should implement EventGenerator interface should have `emitter` property. ok 457 NodeEventGenerator should implement EventGenerator interface should have `enterNode` property. ok 458 NodeEventGenerator should implement EventGenerator interface should have `leaveNode` property. ok 459 NodeEventGenerator entering a single AST node should generate events for entering AST node. ok 460 NodeEventGenerator entering a single AST node should generate events for exitting AST node. ok 461 NodeEventGenerator entering a single AST node should generate events for AST queries ok 462 NodeEventGenerator traversing the entire AST Program; Program:exit; ExpressionStatement; ExpressionStatement:exit; BinaryExpression; BinaryExpression:exit; Identifier; Identifier:exit ok 463 NodeEventGenerator traversing the entire AST BinaryExpression > Identifier; BinaryExpression; BinaryExpression Literal:exit; BinaryExpression > Identifier:exit; BinaryExpression:exit ok 464 NodeEventGenerator traversing the entire AST BinaryExpression > *[name='foo'] ok 465 NodeEventGenerator traversing the entire AST * ok 466 NodeEventGenerator traversing the entire AST *:not(ExpressionStatement) ok 467 NodeEventGenerator traversing the entire AST CallExpression[callee.name='foo'] ok 468 NodeEventGenerator traversing the entire AST CallExpression[callee.name='bar'] ok 469 NodeEventGenerator traversing the entire AST :not(*) ok 470 NodeEventGenerator traversing the entire AST :matches(Identifier[name='foo'], Identifier[name='bar'], Identifier[name='baz']) ok 471 NodeEventGenerator traversing the entire AST Identifier, Literal[value=5] ok 472 NodeEventGenerator traversing the entire AST Identifier + Literal ok 473 NodeEventGenerator traversing the entire AST Identifier + Literal; Identifier ~ Literal ok 474 NodeEventGenerator traversing the entire AST :expression; :statement ok 475 NodeEventGenerator traversing the entire AST *; :not(*); Identifier; ExpressionStatement > *; ExpressionStatement > Identifier; ExpressionStatement > [name='foo']; Identifier, ReturnStatement; FooStatement; [name = 'foo']; [name='foo']; [name ='foo']; Identifier[name='foo']; [name='foo'][name.length=3]; :not(Program, ExpressionStatement); :not(Program, Identifier) > [name.length=3] ok 476 NodeEventGenerator traversing the entire AST CallExpression, [name='bar'] ok 477 NodeEventGenerator traversing the entire AST [name.length=3]:exit # TODO: not ok 478 NodeEventGenerator parsing an invalid selector throws a useful error The input did not match the regular expression /Syntax error in selector "Foo >" at position 5: Expected " ", "!", .*/u. Input: 'SyntaxError: Expected " ", "!", "#", "*", ".", ":", ":first-child", ":has(", ":last-child", ":matches(", ":not(", ":nth-child(", ":nth-last-child(", "[", or [^ [\\],():#!=><~+.] but end of input found.' AssertionError [ERR_ASSERTION]: The input did not match the regular expression /Syntax error in selector "Foo >" at position 5: Expected " ", "!", .*/u. Input: 'SyntaxError: Expected " ", "!", "#", "*", ".", ":", ":first-child", ":has(", ":last-child", ":matches(", ":not(", ":nth-child(", ":nth-last-child(", "[", or [^ [\\],():#!=><~+.] but end of input found.' at Context.<anonymous> (tests/lib/util/node-event-generator.js:316:20) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Test.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:677:10) at /usr/share/nodejs/mocha/lib/runner.js:801:12 at next (/usr/share/nodejs/mocha/lib/runner.js:594:14) at /usr/share/nodejs/mocha/lib/runner.js:604:7 at next (/usr/share/nodejs/mocha/lib/runner.js:486:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 479 npmUtils "before each" hook for "should not find a direct dependency of the project" Cannot read property 'create' of undefined TypeError: Cannot read property 'create' of undefined at Context.<anonymous> (tests/lib/util/npm-utils.js:27:33) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # TODO: not ok 479 npmUtils "after each" hook for "should not find a direct dependency of the project" Cannot read property 'verifyAndRestore' of undefined TypeError: Cannot read property 'verifyAndRestore' of undefined at Context.<anonymous> (tests/lib/util/npm-utils.js:31:17) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) ok 479 SourceCodeUtil getSourceCodeOfFiles() should handle single string filename arguments # TODO: not ok 480 SourceCodeUtil "after each" hook for "should handle single string filename arguments" log.info.reset is not a function TypeError: log.info.reset is not a function at Context.<anonymous> (tests/lib/util/source-code-utils.js:70:18) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:364:21) at Hook.Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:352:5) at next (/usr/share/nodejs/mocha/lib/runner.js:510:10) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:572:5) at processImmediate (internal/timers.js:461:21) # tests 494 # pass 455 # fail 39 1..494 # skipped 39 # skip-patterns 40 make[1]: Leaving directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' create-stamp debian/debhelper-build-stamp dh_prep -i debian/rules override_dh_install make[1]: Entering directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' dh_install -X.eslintrc.yml make[1]: Leaving directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' debian/rules override_dh_installdocs make[1]: Entering directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' dh_installdocs --all -- README.html README.txt make[1]: Leaving directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' debian/rules override_dh_installchangelogs make[1]: Entering directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' dh_installchangelogs -- CHANGELOG.html CHANGELOG.txt make[1]: Leaving directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' dh_installman -i dh_perl -i dh_link -i dh_strip_nondeterminism -i dh_compress -i dh_fixperms -i debian/rules execute_after_dh_fixperms make[1]: Entering directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' chmod --recursive a-x,a+X -- debian/*/usr/share/nodejs chmod --recursive a+x -- debian/*/usr/share/nodejs/eslint/bin/* make[1]: Leaving directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' dh_missing -i dh_installdeb -i debian/rules override_dh_gencontrol make[1]: Entering directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' dh_gencontrol -- -V"types:Version=4.16.8~5.16.0~dfsg+~4.16.8-5" \ -V"config:Version=5.0.1~5.16.0~dfsg+~4.16.8-5" make[1]: Leaving directory '/build/eslint-Vxf7U1/eslint-5.16.0-dfsg+-4.16.8' dh_md5sums -i dh_builddeb -i dpkg-deb: building package 'eslint' in '../eslint_5.16.0~dfsg+~4.16.8-5_all.deb'. dpkg-genbuildinfo --build=all dpkg-genchanges --build=all >../eslint_5.16.0~dfsg+~4.16.8-5_all.changes dpkg-genchanges: info: binary-only arch-indep upload (source code and arch-specific packages not included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: running special hook: sync-out /build/eslint-Vxf7U1 /tmp/eslint-5.16.0~dfsg+~4.16.8-5pwnabvto I: cleaning package lists and apt cache... W: deleting files in /tmp: eslint I: creating tarball... I: done I: removing tempdir /tmp/mmdebstrap.CYSS94hcrE... I: success in 640.4176 seconds md5: eslint_5.16.0~dfsg+~4.16.8-5_all.deb: OK sha1: eslint_5.16.0~dfsg+~4.16.8-5_all.deb: OK sha256: eslint_5.16.0~dfsg+~4.16.8-5_all.deb: OK Checksums: OK